Ich würde wirklich gerne verstehen, wie ein Betriebssystem hinter den Kulissen funktioniert. Ich denke jedoch, dass der Kernel der meisten Open-Source-Betriebssysteme zu komplex für Lernzwecke ist, selbst für einen Vollzeitprogrammierer zum Lernen. Gibt es "einfache" Betriebssysteme, die nur zu Lernzwecken entwickelt wurden?
operating-systems
DotNetStudent
quelle
quelle
Antworten:
Andrew Tanenbaums Minix (siehe Betriebssystemdesign und -implementierung ) ist genau für diesen Zweck vorgesehen. Eine andere (wenn auch ziemlich veraltete) Möglichkeit besteht darin, das Lion's Book durchzulesen , das Unix V6 (volles Unix, aber eine Version, die alt genug ist, um noch relativ einfach studiert werden zu können) behandelt. Die offensichtlichen Nachteile des letzteren sind, dass das verwendete C ziemlich veraltet ist, so dass selbst erfahrene C-Programmierer Teile als etwas schwer lesbar empfinden und Sie nicht mit einem modernen Compiler rechnen können, der den Code verdaut.
quelle
Sie sollten ein modernes Unix-ähnliches Xv6-Betriebssystem in Betracht ziehen, das in einem OS-Kurs am MIT verwendet wird. Es scheint auch einige Kursmaterialien zu haben.
Es läuft sowohl in Bochs als auch in Qemu x86-Emulatoren. Ich habe diesen Teil gemacht. Es hat Spaß gemacht.
quelle
Minix ist eine gute Wahl und wird in einer der anderen Antworten beschrieben.
Xinu
Beachten Sie auch XINU - XINU ist kein Unix.
Es ist auch UNIX rückwärts geschrieben.
Es gibt ein Buch von Douglas Comer, das meiner Meinung nach gut geschrieben, gut illustriert und umfangreich ist.
Es gibt ein Embedded Xinu und eine Website zum Unterrichten mit Xinu.
http://xinu.mscs.mu.edu/Teaching_With_Xinu
FreeRTOS
Ein weiteres kleines Betriebssystem, das heutzutage sehr beliebt ist, ist FreeRTOS. Es läuft fast alles. Wenn Sie vom Mars kämen und einen Prozessor oder eine Evaluierungsplatine hätten, auf der dieser nicht ausgeführt werden kann, könnten Sie etwa 10 Seiten Dokumentation lesen, etwa fünf Dateien in Bezug auf Interrupts, Timer und UARTs ändern und ausgeführt werden.
http://www.freertos.org/
Sie behaupten, dass es 31 Architekturen und 18 Werkzeugketten unterstützt. Meine Erfahrung Ende 2009 war gut und ich habe gehört, dass sie sich seitdem stark verbessert hat.
Andere Links
Eine ähnliche Frage mit hilfreichen Informationen finden Sie hier:
/programming/254149/how-do-you-write-a-basic-operating-system
Das Design von Linux und vielen anderen Betriebssystemen wird von UNIX beeinflusst, daher ist dieses Video, in dem die ursprünglichen Designer (Kernigan, Richie und Thompson und andere) Informationen liefern und die Designideen direkt aus der Quelle beziehen.
http://techchannel.att.com/play-video.cfm/2012/2/22/AT&T-Archives-The-UNIX-System
Es gibt ein klassisches, aber oft überarbeitetes Lehrbuch für Betriebssysteme:
Silberschatz, Galvin, Gagne: Betriebssystemkonzepte, 7. Auflage
Möglicherweise gibt es auch neuere Editionen. Ich verlinke selten über einen Buchhändler zu einem Buch, aber die Vorschau ist sehr großzügig. Weitere Informationen zu Betriebssystemen erhalten Sie unter:
http://www.amazon.com/Operating-System-Concepts-Abraham-Silberschatz/dp/0470128720
quelle
An meiner Uni haben wir NachOS gelernt . Es ist ein großartiges Open Source-Betriebssystem zum Lernen. Sie können auch viele Universitätsübungen auf NachOS zum Lernen finden.
quelle
Schauen Sie sich KOS (Kid OD) und SOS (Simple OS) an. Beide Betriebssysteme wurden entwickelt, um die Interna eines Betriebssystems zu lernen. KOS ist der "Vater" von SOS und basiert auf den Erfahrungen von KOS.
Diese Projekte bildeten die Grundlage für viele Lehrartikel im Linux Magazine France.
Auf der KOS-Website finden Sie auch eine Seite, auf der Sie die Quellen anderer simples Betriebssysteme herunterladen können.
quelle
Wenn Sie sich für die .NET-Technologiefamilie interessieren, können Sie Singularity ausprobieren . Es wurde seit 2008 nicht mehr aktualisiert, kann aber hier in Quell- und ISO-Form von CodePlex heruntergeladen werden .
quelle
Die Leute können alle CP / M- und frühen DOS-Versionen verstehen. Danach gerieten die Dinge außer Kontrolle und niemand weiß mehr alles. Sie waren nicht dafür gedacht zu lernen, wie ein Betriebssystem funktioniert, aber viele Leute haben das von diesem Betriebssystem gelernt.
quelle
Lesen Sie ein Buch über das Programmieren in Assembler. Sie müssen sich nicht damit auskennen, aber es wird Ihnen viel über das Innenleben eines Computers beibringen.
quelle