Lowlevel
OffZone => Offtopic => Thema gestartet von: RedEagle am 30. October 2005, 15:45
-
Wie der Titel schon sagt, möchte ich langsam mal anfangen ein OS zu schreiben.
Folgende dinge kann ich:
C/C++ (Seit ~3 Jahren (Scheibe zZ eine Textverarbeitung für rtf-Dateien))
Assembly (Grundkentnisse, aber komme gut mit klar -> kann schnell dazulehrnen)
meine Fragen:
1. Reicht das?? (wenn ich noch die Theorie z.b. dieser Seite durcharbeite)
2. Es würde reichen, wenn mein OS nur SingelTasking fähig währe. aber: ist Multitasking viel schwerer/mehr, oder lohnt sich der mehraufwand??
3. Was empfehlt ihr mir für entwichlungssoftware: (bochus/rawwrite/fasm ist klar, aber welcher Compiler?? gcc??)
-
Du musst natürlich noch viel mehr können als nur die Programmiersprachen. Da du aber bei denen schon recht erfahren bist soltle der Rest relativ einfach sein.
Zur 2. Frage: Multitasking hat gigantische Vorteile und ist bei Microkerneln unumgänglich. Aber man kann auch schon brauchbare OS schreiben ohne Multittasking. Wenn du so weit bist kannst du dich ja entscheiden.
3.: Kommt natürlich darauf an, ob du Linux oder Windows (oder noch was anderes) verwendest. Ich empfehle das hier:
o YASM (NASM-Syntax, unterstützt aber 64bit)
o rawwrite, partcopy, dd unter Linux
o Bochs (echter PC sollte aber auch zum Testen bereitstehen)
o Compiler: Wenn du dein OS nur in ASM schreiben willst brauchst du natürlich keinen. Ansonsten ist für ein 32bit/64bit C/C++-OS GCC am sinnvollsten. Für Windows gibt es den gcc-Port djgpp.
-
DANKE
Ich werd's unter Windows schreiben.
-
Es gibt Leute, die probieren Betriebssysteme ohne vorhandene Programmierkenntnisse zu schreiben.
Da du nicht dazu gehörst könntest du was schaffen!
-
Das denke ich auch. Deine Kenntnisse kannst du während dessen auch ganz gut erweitern.
Am wichtigsten ist es, sich kleine Ziele zu stecken und dran zu bleiben. Gerade bei OS-Programmierung stolpert man gerne von einem Problem ins nächste und oft tauchen Probleme erst durch das Lösen anderer auf.
Aber es macht Spaß und es lohnt sich, davon abgesehen, dass es den Horizont erweitert!
-
Wenn wir schon bei Compilern sind: was haben die Leute eigentlich immer gegen die Microsoft Compiler? Sind die langsamer, nicht standardisiert genug oder einfach nur nicht Freeware?
-
Ich denke letzteres... Warum für etwas ziemlich gutes viel Geld ausgeben, wenn man etwas anderes ziemlich gutes schneller (per Netz) und für umsonst kriegt?!
-
Na ja, und die Microsoft Compiler scheinen wohl nicht ganz so für verschiedene Binärformate ausgelegt zu sein ...
Das würde sie natürlich für Betriebssystementwicklung sehr einschränken ...
-
sic est
-
Warum sollte Microsoft auch etwas herstellen, was einen befähigt ein anderes OS zu coden? Wäre irgendwie dämlich oder?
-
Also im Internet liest man oft von Leuten die verdammt dämliche Sachen von Microsoft verlangen ...
-
Es gibt/gab ein OS, das heißt HFMOS (High Flex Modular OS) so weit ich mich erninnere urde das mit dem Visual Studio .Net und natürlich auch dem dazugehörenden Compiler geschrieben.
Aber ich denke nicht, dass das sinnvoll ist. Das gibt nur Probleme mit kompatibilität, dem Linken (welche Formate? Startadresse beeinflussen,...), usw.
@RedEagle:
Falls dus noch nicht kennst: Das hier ist ein wirklich gutes Tut, um mit OSDev im Protected Mode anzufangen: http://www.osdever.net/bkerndev/index.php?the_id=90
-
In .NET kann man kein OS schreiben, da .NET nicht zu nativem x86 Code sondern so wie Java zu Bytecode kompiliert wird. Um .NET Code auszuführen braucht man eine VM oder einen Compiler, der x86 Code generiert.
-
Ich meinte mit .Net ja nur die IDE. Der Compiler kann natürlich auch normalen x86-Code generieren.
-
@DarkThing: Danke für den Link