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
Eigenes Betriebssystem
Re: Eigenes Betriebssystem
Schon einen Blick ins Wiki geworfen?Kmitska hat geschrieben:wollte mich darüber informieren, wie man einen eigenen OS schreiben könnte, also kein OS, das sich auf Linux basiert.

http://www.proggen.org/doku.php?id=kernel:start
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.Kmitska hat geschrieben:Wenn wir schon bei dem Thema sind, wie steige ich am Besten in die Hardware-Eben ein?
"Make it idiot-proof and someone will invent an even better idiot." (programmers wisdom)
OpenGL Tutorials und vieles mehr rund ums Programmieren: http://www.tomprogs.at
OpenGL Tutorials und vieles mehr rund ums Programmieren: http://www.tomprogs.at
- cloidnerux
- Moderator
- Beiträge: 3125
- Registriert: Fr Sep 26, 2008 4:37 pm
- Wohnort: Ram (Gibts wirklich)
Re: Eigenes Betriebssystem
Das stimmt alles so nicht.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ä!?)
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.
Redundanz macht wiederholen unnötig.
quod erat expectandum
quod erat expectandum
- Xin
- nur zu Besuch hier
- Beiträge: 8862
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
- Kontaktdaten:
Re: Eigenes Betriebssystem
Es gibt diverse Autoren, die für entsprechende Bücher bekannt sind.Kmitska hat geschrieben:wollte mich darüber informieren, wie man einen eigenen OS schreiben könnte, also kein OS, das sich auf Linux basiert.
Dazu gehören Tanenbaum - das Buch hat Linus Torvalds gelesen und darauf aufbauend Linux entwickelt. Weiterhin gibt es den Silberschatz.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.