Programmieren - alles kontrollieren 4.936 Themen, 20.625 Beiträge

Betriebssystem-Programmierung

Hurts / 6 Antworten / Flachansicht Nickles

Hallo


Kann mir jemand sagen, wie man ein OS programmieren kann? Gibt es dort auch Bücher oder wie weiß man, wie man auf die HD oder sonst was zugreift? Wie man eine grafische Oberfläche macht, ......?


Danke 

bei Antwort benachrichtigen
Andreas42 Hurts „Dann würde auch C gehen? Aber woher weiß ich jetzt, was ich schreiben muss,...“
Optionen

Hi!

Ich habe zwar noch nie ein Betriebssystem programmiert, aber die vorgehensweise dürfte in etwa so aussehen:

1. Man legt fest für welche Hardware (sprich welchen PC) man das BS erzeugen will.

2. Man besorgt sich die technische Dokumentation der Hardware.
Darunter fallen sachen, wie steuere ich eine Festplatte über den IFDE-Kontroller an?
Du darfst nicht vergessen, dass falls du ein neues Betriebssystemmschreibst es KEINEN einzigen Treiber für dein BS gibt - also kannst du auch zuerst nichtmal auf eine Platte zugreifen, sondern musst all das neu programmieren.

3. Paralleldazu muss man eine Speicherverwaltung spezifizieren.
Die legt letzendlich fest, wie und wo Prohgramme, Datencode und Verwaltungsspeicher des BS verwaltet werden.

4. Man muss ein anderes Betriebssystem verwenden und konfigurieren, um das neue BS zu laden und zu aktivieren.

5. Man muss sich einen Compiler so anpassen, dass er Code erzeugen kann, den man für das neue BS verwenden kann.

6. Dann beginnt man auf einem anderen Rechner mit vorhandenem Betriebssystem, die Grundfunktionen des neuen BS zu schreiben. In welcher Sprache das erfolgt ist letzendlich egal, es muss halt Code rauskommen, den man in seiner Testumgebung laden und aktivieren kann.

Ich denke man wird mit den grundlegen bereichen anfangen müssen:

Speicherverwaltung und IO-Funktionen

IO-Funktionen sollten hier Textein- und Ausgabe sein und auch das Speichern und Lesen von Diskette und/oder Festplatte.

Wenn man dann ein lauffähiges Grundgerüst hat, gibt es immer noch keine Lauffähigen Programme oder externen Befehle für das neue BS. Also wird man damit weitermachen:

7. Man erzeugt erste externe Befehle/Programme für das neue BS noch auf dem vorhandenen Entwicklungssystem.

8. Irgndwann wird man einen Compiler auf das neue BS umsetzen. Damit man direkt unter dem neuen BS entwickeln kann.

Das ich bisher das Wort "Grafik" noch nicht erwähnt habe ist Absicht. Wir sind immer noch im Textmode... ;-)

Ich denke, eine GUI ist dass, was erst zuletzt kommt.

OK, kommen wir zu deinen gezielten Fragen:

"Aber woher weiß ich jetzt, was ich schreiben muss, was für Dokumentationen ich dafür brauche?"

Offen gesagt: ich habe keine Ahnung! Ich denke, wenn man ein neues BS schreiben will, dann weiss man auch warum und auch was man dafür braucht.

Linux wurde angefangen, weil ein Student etwas über Unix-Betriebssysteme lernen wollte und ihm die vorhandenen Anfänge wohl nicht gepasst haben.
Also hat sich Unix angesehen und sich dessen Kernfunktionen (Speichervarwaltung und IO-Funktionen) zum Vorbildgenommen und dass dan umgesetzt.
Er hat seine "Experimente" veröffentlicht und damit anderen Entwicklern die Möglichkeit gegeben mit einzisteigen. Ich weiss nicht, wieviel Monate und es gedauert hat und wieviele Entwickler benötigt wurden, bis die erste grafische Oberfläche lauffähig war.

MSDOS wurde nicht von Microsoft entwickelt, es wurde gekauft. ;-)

Der Entwickler hatte sich von CPM "inspirieren" lassen und dessen Funktionen nachprogrammiert. Nach einigen Jahren(!) wurde dann Windows entwickelt und dann als Win95 zum ertsen Mal mit eingebautem MSDOS verkauft.

Die Entwicklung von Windows NT zu XP lief über Jahre. IBM OS/2 ist auch aus der ersten NT-Entwicklungsjahren entanden. MS hat wohl kein Tallent für echte Betriebssystemneuentwicklung und hat am Anfang mit IBM zusammengearbeitet. IBM hatte wohl Erfahrungen durch eigene Unix-Varianten... ;-)

Es ist also als BS-Entwickler keine Schande, wenn man sich am Anfang von anderen leuten helfen lässt oder sich an vorhandenen Betreibssystemen orientiert.

Bis denn
Andreas

Hier steht was ueber mein altes Hard- und Softwaregedoens.
bei Antwort benachrichtigen