Seite 1 von 1

Eigenes Betriebssystem

Verfasst: So Apr 22, 2012 9:40 pm
von Kmitska
Hallo Leute,

wollte mich darüber informieren, wie man einen eigenen OS schreiben könnte, also kein OS, das sich auf Linux basiert.

Ich weiß, dass man da mit dem Kernel anfängt, also Driver-Programmierung ist angesagt, oder?
Auch wenn ich mit Kernel-Anfange, wie teile ich meinem Computer mit, dass ich eigenen OS aufsetze (Ja via BIOS laden, aber wie was wo hä!?)
Könnte mir jemand von euch darüber beraten, wäre dankbar. :-)

Wenn wir schon bei dem Thema sind, wie steige ich am Besten in die Hardware-Eben ein? :-)

Kind regards,
Kmitska

Re: Eigenes Betriebssystem

Verfasst: So Apr 22, 2012 9:54 pm
von Kerli
Kmitska hat geschrieben:wollte mich darüber informieren, wie man einen eigenen OS schreiben könnte, also kein OS, das sich auf Linux basiert.
Schon einen Blick ins Wiki geworfen? ;)
http://www.proggen.org/doku.php?id=kernel:start
Kmitska hat geschrieben:Wenn wir schon bei dem Thema sind, wie steige ich am Besten in die Hardware-Eben ein? :-)
Hängt davon ab welche Hardware. Einen guten Einstieg bieten (8-Bit) RISC Mikroprozessoren wie die AVR Serie von Atmel. Empfehlen kann ich da vor allem Arduino, da es sowohl einfach zum Anfangen ist also auch vielfältige Möglichkeiten bietet.

Re: Eigenes Betriebssystem

Verfasst: Mo Apr 23, 2012 6:37 am
von cloidnerux
Ich weiß, dass man da mit dem Kernel anfängt, also Driver-Programmierung ist angesagt, oder?
Auch wenn ich mit Kernel-Anfange, wie teile ich meinem Computer mit, dass ich eigenen OS aufsetze (Ja via BIOS laden, aber wie was wo hä!?)
Das stimmt alles so nicht.
Du fängst an mit einem Bootloader, ein kleiner Assemblerprogramm das vom BIOS aufgerufen wird. Von diesem Programm lädst du dann deinen eigentlichen Kernel und der Darf erstmal den Prozessor initialisieren, den Arbeitsspeicher verwalten, Prozess- und Datenstrukturen aufbauen(du hast kein malloc/new, free/delete). Dann musst du anfangen für das Grundlegenste Treiber zu haben(North/Southbridge, Festplattencontroller, Grafikkarte/Chip, Tastatur/Maus). Dann geht es erst richtig mit Treiberprogrammierung los, denn nun kommt der ganze Rest(Audio, Festplatten, MUltimedia-Geräte, USB und was weiß ich nicht alles), aber bisher nur all das, was dein Computer besitzt. Wenn dein OS mal verbreitet werden soll, dann musst du für noch mehr Hardware Treiber programmieren. Nun solltest du so bei 100k Zeilen Code sein. Nun kann man anfangen eine Abstraktionsschicht einzubauen, dass man dein OS auch mal nutzen kann, Virtuelles Dateisystem, Dienstprogramme, eine Konsole programmieren, das dürften auch nochmal 100k-200k Zeilen code werden und du hast schonmal ein Konsole, nix weiter. Grafische Oberfläche mitsamt allem drum und dran bringen dich dann geschätzt auf 1M Zeilen Code.

Fazit: Ein OS ist kein Wochenendprojekt, vor allem wenn es in irgendeiner art "Produktiv" eingesetzt werden soll.

AVRs bieten einen guten Einstieg in die hardwarenahe Programmierung und wie Kerli schon sagte, ist die ARDUINO Plattform ein guter weg um Einzusteigen. Du kannst dir aber auch irgendein ARM-Evalutationsboard kaufen und dann direkt mit ARM-Programmierung anfangen, dass ist aber etwas Komplizierter.

Re: Eigenes Betriebssystem

Verfasst: Mo Apr 23, 2012 9:26 am
von Xin
Kmitska hat geschrieben:wollte mich darüber informieren, wie man einen eigenen OS schreiben könnte, also kein OS, das sich auf Linux basiert.
Es gibt diverse Autoren, die für entsprechende Bücher bekannt sind.
Dazu gehören Tanenbaum - das Buch hat Linus Torvalds gelesen und darauf aufbauend Linux entwickelt. Weiterhin gibt es den Silberschatz.