Ein weiteres Buch über die Entwicklung von Betriebssystemen

Bild


Schöne Grüße!



In den letzten Jahren hatte ich die Gelegenheit, den Quellcode von ungefähr drei Dutzend Betriebssystemen auf die eine oder andere Weise zu studieren. Ich werde mich wahrscheinlich nicht einmal an alle erinnern. Grundsätzlich handelte es sich um kleine Bibliotheken für Mikrocontroller, aber auch "große" Betriebssysteme mussten mit unterschiedlichem Immersionsgrad betrachtet werden.



Während dieser ganzen Zeit beobachtete ich auch Beiträge zu verschiedenen Ressourcen über "Betriebssystementwicklung", die sich im Wesentlichen auf die Ausgabe von "Hallo Welt" in QEMU beschränkten, und beschwerte mich, dass es nicht notwendig sei, das Betriebssystem und "ein Programm, das auf Bare Metal ausgeführt werden kann" zu verwechseln. ... Bei OS geht es überhaupt nicht um die Arbeit an Hardware, sondern vor allem um Synchronisation und all diesen Jazz.



Man könnte argumentieren, dass jeder, der an "akademischer" Entwicklung interessiert ist, Bücher lesen sollte, nicht HOWTO-Beiträge im Internet. Andererseits weisen Bücher wie die Werke von E. Tanenbaum auch Mängel auf, die dazu führen, dass der oben erwähnte Strom von Beiträgen nicht austrocknet. Tanenbaums Buch (über MINIX) ist immer noch auf einem "hohen" Niveau, und viele Fragen, die sich in der Praxis stellen, werden dort überhaupt nicht berücksichtigt. Und da ist noch eine Sache. Die Entwicklung von Allzweckbetriebssystemen und RTOS verlief historisch in entgegengesetzte Richtungen: In UNIX-ähnlichen Betriebssystemen traten zuerst Single-Thread-Prozesse auf, und erst nach einer Weile wurden die Prozesse Multithread-Prozesse. Im Bereich RTOS war es umgekehrt: Zuerst gab es Multithread-Systeme mit einem Prozess, und nur dann konnte es mehr als einen Prozess geben. Es gibt eine Meinung, dass der zweite Fall besser für das Studium ist,weil Sie mit etwas Einfacherem beginnen und die Dinge allmählich komplizieren und schließlich zur gleichen Sache kommen können. Aber ich schweife ab.



All mein Murren wurde von anderen und Kollegen mit Redewendungen wie „kritisieren - vorschlagen“, „besser machen“, „der Pianist spielt, wie er kann“, „jeder kann den Künstler beleidigen“ usw. beantwortet. Daher ging eines Tages die Geduld aus und ich sagte ok, Herausforderung angenommen. Und er setzte sich, um seine eigene Version von "the right way" zu schreiben.



Übrigens möchte ich mich für die finanzielle und moralische Unterstützung dieser gesamten Veranstaltung bei der Firma Eremex sowie bei den Kollegen bedanken, die die Arbeit in Form des Lesens und Redigierens des ersten Entwurfs geleistet haben.



Als das Volumen 250 Seiten erreichte, wurde klar, dass es notwendig war, rechtzeitig anzuhalten. Diese Arbeit blieb im Allgemeinen unvollendet, aber ich denke, auch in dieser Form illustriert das Buch das Konzept gut und kann für diejenigen, die sich für das Thema interessieren, nützlich sein. Laut Bewertungen ist es ziemlich schwierig, es zu lesen. Wenn es also Vorschläge gibt, wie dies behoben werden kann, wäre ich ihnen dankbar.



Meiner Meinung nach ist das Betriebssystem die Antwort auf eine Reihe von Problemen, die auftreten, wenn die Arbeit mehrerer unabhängiger Aufgaben organisiert werden muss. Daher müssen Sie mit einer Beschreibung der Probleme und möglichen Lösungsansätze beginnen und nicht nur sagen, dass es historisch passiert ist, sondern genau diskutieren, wie es passiert ist. Das Buch ist also nicht so im Gegensatz zu den klassischen Werken, sondern ergänzt sie und bietet eine etwas andere Sicht der Dinge von der Seite der eingebetteten Systeme und von RTOS.



Ich möchte die Probleme diskutieren, mit denen nicht der Theoretiker konfrontiert ist, der den Kurs der Betriebssysteme an der Universität studiert, sondern der Programmierer. Fragen wie "Warum ist synchrones Kontextwechsel im Allgemeinen keine gute Idee?", "Was ändert sich qualitativ im Kernel, wenn isolierte Prozesse unterstützt werden müssen?" usw.



Es gibt auch den Standpunkt, dass Betriebssysteme noch keinen architektonischen und ideologischen Wandel durchlaufen müssen, der dem ähnelt, den Compiler aufgrund der Aufteilung in ein Frontend und ein Backend in Form von LLVM erfahren. Bei dieser Trennung war zunächst kein Effekt zu beobachten, da der Programmierer den Compiler sowohl vorher als auch nachher auf die gleiche Weise verwendete. Aber es war diese Trennung, die die Entstehung von Rust und anderen Sprachen ermöglichte, deren Schöpfer sich sofort auf die Semantik ihrer Sprache konzentrieren konnten, und das Backend war einsatzbereit. Ebenso wäre es wünschenswert, das Betriebssystem in mehrere Teile zu unterteilen, damit all dies von verschiedenen Personen als unabhängige Projekte geschrieben wird. FX-RTOS wird



verwendet, um die beschriebenen Prinzipien zu veranschaulichen.als einer der möglichen Ansätze für dieses Problem. Um einige Teile des Kernels beschreiben zu können, ohne andere Teile zu berühren, muss er natürlich so geschrieben sein, dass er dies zulässt. Obwohl ich hier den Wagen ein wenig vor das Pferd gestellt habe, weil zuerst das Betriebssystem selbst erschien und dann klar wurde, dass seine Architektur gut geeignet ist, um das Thema anhand seines Beispiels zu untersuchen, da Sie die Funktionalität in sehr kleinen Schritten erhöhen und eingeben können alle Konzepte nach und nach.



Die oben genannten Quellen können verwendet werden, um Konzepte bis einschließlich Kapitel 6 zu veranschaulichen. Dann können Sie bereits reibungslos zu MINIX übergehen.



Damit nicht alles wie ein Sprung von der Fledermaus aussieht, musste ich die ersten beiden Kapitel hinzufügen, die allgemeinen Konzepten und Hardware gewidmet sind. Programmierer können sie überspringen, ohne das Verständnis für den Rest zu beeinträchtigen.



Sie können das Buch kostenlos herunterladen und ohne Registrierung und SMS hier .



Vielen Dank für Ihre Aufmerksamkeit. Kritische Bewertungen sind willkommen. Wenn sie jedoch länger als zwei Sätze sind, ist es besser, in privaten Nachrichten zu schreiben, da Kommentare tendenziell wachsen und sich in einen Diskussionsbaum verwandter Themen verwandeln, mit dem schwierig und unpraktisch zu arbeiten ist.



PS Wenn sich das Thema als interessant herausstellt, werde ich später über FX-RTOS selbst schreiben.



All Articles