Ist es eine gute Idee, ein Betriebssystem zu erstellen, das in einer Skriptsprache geschrieben ist?
Wie wäre es zum Beispiel mit dem Erstellen eines Betriebssystems mit Python?
scripting
operating-systems
Amir Saniyan
quelle
quelle
Antworten:
Es ist nicht nur eine schlechte Idee. Es ist so ziemlich unmöglich.
Wie implementieren Sie E / A mit einer Sprache, deren E / A-Funktionen vollständig vom Host-Betriebssystem abhängen?
Wie können Sie die primitive Zeitplanung ohne nützliche Interrupt-Primitive implementieren?
Wie können Sie einen Gerätetreiber in einer Sprache schreiben, die ein bestimmtes Byte nicht adressieren kann?
Bearbeiten: - Nur um ein bisschen zu klären. Sie können kein "echtes" Betriebssystem schreiben, das in einer "Skriptsprache" direkt mit dem Computer interagiert. Sie können jedoch eine verwendbare "virtuelle Maschine" schreiben, wenn die Skriptsprache flexibel genug ist. Zum Beispiel wurden Implementierungen von Donald Knuths theoretischer MIX (s) -Maschine und eines ZX80- Emulators, der gut genug ist, um Pacman auszuführen, in JavaScript geschrieben.
quelle
Bevor Sie sich für das Wie entscheiden , müssen Sie das Was angeben . Was wird dieses neue Betriebssystem tun? Wo wird es laufen? Warum sollte sich jemand die Mühe machen, es zu benutzen? usw. Als nächstes müssen Sie die Eigenschaften des Betriebssystems bestimmen. Geschwindigkeit, Sicherheit, Threading, Speicherverwaltung, Multitasking, Dateiformate, Sprachunterstützung, unterstützte Prozessoren usw.
Durch Beantwortung der oben genannten Fragen und Berücksichtigung der vielen Eigenschaften Ihres Betriebssystems können Sie bestimmen, mit welchem Tool Sie Ihre Ziele erreichen möchten.
Wollen Sie das alles wirklich tun?
Ich gehe davon aus, dass Python teilweise zum Schreiben von Teilen von Linux verwendet wurde - Siehe: In welchen Sprachen sind Windows, Mac OS X und Linux geschrieben?
quelle
Ich weiß, dass dies keine richtige Antwort ist, aber dieses Projekt zeigt ein funktionierendes Betriebssystem mit einem in JavaScript geschriebenen Kernel:
https://github.com/charliesome/jsos/
Die Treiber für VGA und die Tastatur wurden ebenfalls mit Interrupts in JavaScript geschrieben. Ich habe vor einiger Zeit selbst eine Implementierung von OpenGL 1.1 dafür entwickelt und es funktioniert ziemlich gut.
quelle
Nein, es ist nicht einmal möglich (ausschließlich)
Warum? Folgendes berücksichtigen:
Was ist eine Skriptsprache?
Nehmen wir die folgenden zwei Annahmen zur Definition einer "Skriptsprache" an:
Was ist ein Betriebssystem?
Nehmen wir an, dass das Hauptziel eines Betriebssystems wie folgt vereinfacht werden kann:
Aufgrund dieser Definitionen ist es logisch unmöglich, dass eine Skriptsprache ein Betriebssystem ist. Warum?
Es ist möglich, eine Mindestmenge an Code in einer "rohen" Sprache wie C zu schreiben, aber per Definition wird immer eine kompilierte Rohsprache benötigt. Sobald dies geschehen ist, können andere Teile des Betriebssystems in einer Skriptsprache implementiert werden, eine Skriptsprache kann jedoch niemals alleine verwendet werden.
quelle
Ich muss behaupten, dass es grundsätzlich möglich ist, ein Betriebssystem in Python zu schreiben. Sie müssten einen Python-to-Low-Level-Sprachcompiler erstellen und der Standardbibliothek Module hinzufügen, die den Zugriff auf die Low-Level-Teile Ihres Computers ermöglichen. Aber wenn diese beiden Teile vorhanden wären, wäre es möglich.
Jedoch,
quelle