Frage zum Anfang
-
Huhu,
also ich hab mich jetzt 3-4 Jahre mit C und C++ beschäftigt und kann mich darin nun auch sehr gut bewegen
Nun jetzt will ich aber noch einen drauf setzen und mit Assembler anfangen und in richtung Selfmade-OS (mit C++ und Assembler) coden.
Ich habe den GCC und TASM5 compiler, bin ich damit richtig ausgestattet für in Assembler und C++ zu coden für richtung OS, oder fehlt mir noch etwas wichtiges?
Ich habe Windows2k, kann man darauf ein Dosähnliches/Unixähnliches OS coden, auf Diskette kopieren und beim Booten testen oder haut einem der Win2k PM beim compilieren rein?
Glaubt ihr 3-4 Jahren C++ reichen für Assembler zu lernen und danach erste schritte zu machen?
Mit welchen Informationen und Themen muss man sich zum Anfang gut auseinandersetzen?
Reichen die Tuts aus dem FAQ für erste Schritte?
Danke das wars erstmal
Gruß,
Blue Angel
-
Original erstellt von Blue Angel:
**Ich habe den GCC und TASM5 compiler, bin ich damit richtig ausgestattet für in Assembler und C++ zu coden für richtung OS, oder fehlt mir noch etwas wichtiges?Ich habe Windows2k, kann man darauf ein Dosähnliches/Unixähnliches OS coden, auf Diskette kopieren und beim Booten testen oder haut einem der Win2k PM beim compilieren rein?
**
Also ich mache das atm folgendermaßen:
Meine Tools sind Mingw32-Paket (gcc, ld), NASM, Bochs.
Mit Mingw32/MASM kompiliere ich das ganze zu einem Image, dass ich dann in ein Disketten-Image reinkopiere und dieses dann unter Bochs laufen lasse. Kann ich sehhr empfehlen, weil der ganze testvorgang (und davon gibt es VIELE) damit wesentlich schneller geht. Ich würde an deiner Stelle darauf achten, dass der Assembler Win32-Objektdateien herstellen kann. Sonst wird es nämlich arg schwierig das ganze zu einem großen Image zusammenzulinken. Kommt natürlich auch an, wie du deinen Kernel laden lässt. Ich benutze z.B. GRUB, das ist ein Bootloader der im kernel-Image (was freundlicherweise auf einer FAT oder EXT3 oder ReiserFS oder oder oder Diskette/Festplatte gespeichert werden kann) einen bestimmten header sucht, anhand der Daten den kram in den Speicher lädt und meinen Kernel anspringt. Netter Nebeneffekt ist, dass man sich nicht um das A20-Gate mti seinen >15 Methoden des Anschalten und dämlichen BIOS-Disketten-lesereien rumschlagen muss. Aber auch das ist Geschmackssache**
Glaubt ihr 3-4 Jahren C++ reichen für Assembler zu lernen und danach erste schritte zu machen?
**Solange du das Interesse und die Lust auf Assembler hast, sollte das keine Rolle spielen, aber 3-4 Jahre überhuapt programmiert zu haben können durchaus mal helfen
**
Mit welchen Informationen und Themen muss man sich zum Anfang gut auseinandersetzen?
**Also zuerst natürlich mit Assembler und definitiv auch mit dem Protected Mode. Danach je nachdem ob du einen eigenen Loader schreiben willst oder einen wie GRUB verwendest noch mit BIOS-Aufrufen zum laden deines Kernels.
Danach solltest du dir imho angucken, wie man Makefiles (falls dus noch nicht beherrscht) und Linker-Scripte bastelt. Ist zwar kein sehr kompliziertes Thema, aber doch recht nützlich, da man einen Kernel ja wohl selten aus einer einzigen Datei bastelt. Danach dürfte Memory Management interessant werden und wies danach weitergeht, weiß ich nicht, mein Memory Manager steht noch nicht
-
vielen dank für die Infos
Wenns sonst noch Infos gibt bitte alles her damit
-
Buch-Literatur:
- Moderne Betriebssysteme von Tanenbaum(http://www.amazon.de/exec/obidos/ASIN/3827370191/qid=1049021876/sr=2-2/ref=sr_aps_prod_2_1/028-0851671-4321319)
- PC Intern von Michael TischerLinks:
- http://www.nondot.org/sabre/os/articlesDamit sollte man schon recht weit kommen.