Wie lange dauert das - IT?
Wie lange dauert es ein komplett vollwertiges Betriebssystem zu schreiben?
mit 64 bit
alleine
temple os hat 10 jahre gedauert und er war harz 4 Bezieher ohne Arbeit#
dauert sowas wirklich so lange?
4 Antworten
Harz4 hat er sicher nicht bezogen weil es das in seiner Heimat nicht gibt..
Wie lange es dauert hängt am Ende von deinem wissen, deiner Zeit und den gewünschten Funktionen ab.
Ein Textbasiertes OS wie zB ähnlich zu MS-DOS kannst du wesentlich schneller machen als eines mit grafischer Oberfläche.
Ob 64bit Support oder nicht macht eigentlich keinen Unterschied.
Bei Terry Davis hats auch unter anderem darum länger gedauert weil der Typ seinen eigenen Compiler geschrieben hat und das OS in "HolyC" programmierte. Wenn du das überspringst und je nach deinen Ansprüchen an ein OS kann man das auch in einem Jahr oder schneller erledigen.
Ein Programm welches eine Hochsprache in Maschinenbefehle umschreibt.
Eine CPU kann ja mit einem Text wie if(A == 10) nichts anfangen.
Ein Compiler übersetzt das zunächst in Assembler der dann eben so aussieht (nur ein Beispiel und kein Tatsächlicher Assemblercode):
sub A 10
jnz label
//A ist 0
:label
hier stehen jetzt direkt Maschinenanweisungen nähmlich subtrahiere von A die Zahl 10.
Wenn ungleich 0 springe zu label sonst führe den Code zwischen dem Jump und label aus.
Das ganze wird nun noch in einen für die CPU lesbaren Datenstrom (Binärdaten) übersetzt.
Der Compiler hat also die Aufgabe aus dem für Menschen leichter lesbaren Text den Maschinencode zu erstellen.
Wie lange dauert es ein komplett vollwertiges Betriebssystem
... ich kenne kein Betriebssystem, das je "fertig" war und damit meine ich nicht die permanente Arbeit an Bugfixes. Also hängt die Antwort mal wieder an einer Definitionsfrage: Was versteht man unter einem "vollwertigen Betriebssystem"?
Und ganz alleine hat noch nie einer eines auch nur annähernd so weit fertiggebracht, sodass andere "Otto-Normal-User" es auch sinnvoll einsetzen können.
Kommt auf die Anforderungen an.
Zunächst ist wichtig zu wissen, was ein Betriebssystem (nicht zu verwechseln mit der sichtbaren grafischen Oberfläche!) überhaupt ist und wozu es gebraucht wird.
Angenommen, es gäbe keine Betriebssysteme, würde die Entwicklung der Bildschirmausgabe eines Texteditors für einen Computer mit der frisch erfundenen CGA-Grafikkarte von NVidia (ja, so eine Grafikkarte gibt es nicht wirklich, aber einfacher zu verstehen, wenn es sie gäbe) etwa so aussehen:
Text soll auf dem Bildschirm erscheinen -> Texteditor spricht die Grafikkarte direkt über die jeweilige Instruktionen an, die sie in den Textmodus schaltet, eine Schriftfarbe und Schriftgröße auswählt und löffelt letztlich den Text Instruktion für Instruktion rein, so dass der Text auf dem Bildschirm erscheint. Wie die Instruktionen gestaltet sind, legt NVidia fest, weil es noch keine Standards gibt. NVidia hat diese Karte in der Form erfunden, wie sie ist. Sie ist sehr langsam und die Schnittstellendokumentation steht dem Programmierer des Editors zur Verfügung, so dass ihm sein Vorhaben gelingt.
Jetzt kommt AMD und bringt auch eine CGA-Karte heraus. Eine schnellere und bessere. Damit sie schneller und besser ist, muss sie anders angesprochen werden.
Der Texteditor funktioniert nicht mit dieser Grafikkarte, weil sie anders funktioniert.
Der Programmierer muss also eine Extrawurst grillen, damit sein Programm auf beiden Karten funktioniert.
Nun werden jahrzehntelang immer neue, bessere und leistungsfähigere Grafikkarten erfunden - Eine inkompatibler als die andere. Jede ist anders.
Der Programmierer wird zum Grillmeister, bis er seinen Hut vom Kopf reißt und fluchend zu Boden wirft.
Damit das nicht passiert, gibt es Betriebssysteme. Ein Betriebssystem ist im Grunde eine definierte Schnittstelle zwischen Hardware und Programmen wie den Texteditor. Eine zusätzliche Ebene.
Anstatt direkt mit der Hardware zu kommunizieren und Extrawürste zu braten, kommuniziert das Programm mit dem Betriebssystem: Textmodus! Auflösung soundso, Schriftart dasunddas und hier ist der Text!
Das Betriebssystem auf der anderen Seite der Schnittstelle spricht den installierten Treiber für die Grafikkarte - ebenfalls über eine festgelegte Schnittstelle, die für alle Treiber gleich ist - an. Der Treiber enthält dann den Code, der diese Befehle entgegennimmt und passend für "seine" Grafikkarte übersetzt und an diese weitergibt.
Und siehe da: De Texteditor funktioniert dank des Betriebssystems mit allen Grafikkarten, solange es die zum Betriebssystem passenden Treiber gibt.
Alle beteiligten Programmierer haben es nun irgendwie leichter. Toll!
Das Betriebssystem ist nicht soo schwierig herzustellen. Sind ja im Grunde nur ein paar Schnittstellen und ein bisschen Code, das sie zusammenfügt.
Wenn du magst, kannst du dem Betriebssystem noch eine passende Benutzeroberfläche geben oder es bei einer Komandozeile belassen, so dass der Benutzer den Computer sinnvoll bedienen kann.
Im Grunde ist das schon ein minimales Betriebssystem.
Wenn du möchtest, dass mehr als ein Programm zur Zeit laufen kan, kannst du noch Multitasking implementieren.
Bis hierhin absolut machbar!
Und vieles mehr. Je mehr du dein Betriebssystem ausstattest, desto einfacher haben die Entwickler für die Anwendungen.
Was aufwändig ist, sind die Treiber. Für jede Hardwarekomponente wird ein zu deinem Betriebssystem benötigt. Wenn die Hardwarehersteller diese nicht entwickeln, musst du es tun. Das kann jahrelange Drecksarbeit bedeuten. Jede Webcam, jeder Drucker, jeder Soundchip, jeder USB-Controller, den es am Markt gibt....
Wenn du ein Betriebssystem basteln willst, kannst du es für eine Plattform versuchen, für die es eine überschaubare Auswahl an Hardware gibt. Ein Mikroprozessor oder so.
Und TempelOS war jetzt wirklich nicht so ein tolles Betriebssystem, wobei ich da ein bisschen voreingenommen sein kann, da ich nicht auf unendende Bibelverse in meinem Gesicht stehe.
Moderne OSe sind unfassbar komplex, und um irgendwie irgendwas auch nur leicht nützliches zu entwickeln braucht es viele Jahre.
was ist ein compiler?