| Zeile 49: | Zeile 49: | ||
===Plattform=== | ===Plattform=== | ||
Für welche Plattform du dein Betriebssystem schreiben möchtest musst du auch überlegen, hier gibt es ebenfalls im grossen und ganzen zwei Alternativen: | Für welche Plattform du dein Betriebssystem schreiben möchtest musst du auch überlegen, hier gibt es ebenfalls im grossen und ganzen zwei Alternativen: | ||
| − | * Du nimmst den x86-PC der mit extrem hoher Wahrscheinlichkeit bereits vor Dir steht. Fast jeder programmiert für den x86-PC und du bekommst Unmengen an Beispielcode hier und im Internet. Dein Betriebssystem ist eins von vielen und im Forum oder im IRC wird dir fast jeder helfen können. | + | * Du nimmst den x86-PC der mit extrem hoher Wahrscheinlichkeit bereits vor Dir steht. Fast jeder programmiert für den x86-PC und du bekommst Unmengen an Beispielcode hier und im Internet. Dein Betriebssystem ist eins von vielen und im Forum oder im IRC wird dir fast jeder helfen können. Auf der anderen Seite ist die PC-Plattform nun schon über 30 Jahre gewachsen, einiges ist wild zusammengewürfelt und die einzelnen Komponenten benutzen teilweise sehr unterschiedliche Programmierparadigmen, je nach deren Alter. Du wirst dich mit seltsamen Dingen auseinander setzen müssen wie dem [[Real_Mode|Real-Mode]] bzw. [[Protected_Mode|Protected-Mode]] samt zugehöriger Segmentierung oder den unterschiedlichen [[Ring|Privilegstufen]]. Auch gibt es einige Hardwarekomponenten mehrfach (mit unterschiedlichem Alter und Funktionsumfang) wie z.B. [[PIC]] vs. [[APIC]] oder [[PIT]] vs. [[HPET]], da muss man sich oft überlegen bis zu welchem Alter der x86-PCs das eigene Betriebssystem kompatibel sein soll also welcher Umfang an Hardware (optional) Unterstützt werden soll bzw. für das Betriebssystem als Voraussetzung gelten soll. |
| − | * Du nimmst eine andere Plattform. Das bedeutet mit hoher Wahrscheinlichkeit das erst mal Geld ausgegeben werden muss. Auch bist du dann ein Aussenseiter und kaum einer wird dir Helfen können wenn du mal auf (plattformspezifische) Probleme stösst, da bist du dann auf die (oft recht gute) Dokumentation (in englisch) oder auf viele Versuche angewiesen. Dafür sind die meisten in Frage kommenden Plattformen recht gut "''aus einem Guss''" und auch sehr deutlich weniger komplex als der x86-PC. Es gibt auch deutlich weniger Stolperfallen und andere Merkwürdigkeiten. Ebenfalls sind die Programmierparadigmen für die einzelnen Hardwarekomponenten auf den Plattformen meist in sich stimmig und recht modern, die meisten alternativen Plattformen sind sehr viel jünger als der x86-PC. Wenn du ein Betriebssystem für Spielkonsolen oder SmartPhones entwickeln möchtest dann wirst du mehr mit den Sicherungsmechanismen der Hersteller als mit der Plattform als solches kämpfen, die Hersteller mögen es in der Regel gar nicht wenn der ''zahlende'' Kunde die Geräte anders benutzen will als der Hersteller sich das vorstellt. | + | * Du nimmst eine andere Plattform. Das bedeutet mit hoher Wahrscheinlichkeit das erst mal Geld ausgegeben werden muss. Auch bist du dann ein Aussenseiter und kaum einer wird dir Helfen können wenn du mal auf (plattformspezifische) Probleme stösst, da bist du dann auf die (oft recht gute) Dokumentation (in englisch) oder auf viele Versuche angewiesen. Dafür sind die meisten in Frage kommenden Plattformen recht gut "''aus einem Guss''" und auch sehr deutlich weniger komplex als der x86-PC. Es gibt auch deutlich weniger Stolperfallen und andere Merkwürdigkeiten. Ebenfalls sind die Programmierparadigmen für die einzelnen Hardwarekomponenten auf den Plattformen meist in sich stimmig und recht modern, die meisten alternativen Plattformen sind eben sehr viel jünger als der x86-PC. Wenn du ein Betriebssystem für Spielkonsolen oder SmartPhones entwickeln möchtest dann wirst du mehr mit den Sicherungsmechanismen der Hersteller als mit der Plattform als solches kämpfen, die Hersteller mögen es in der Regel gar nicht wenn der ''zahlende'' Kunde die Geräte anders benutzen will als der Hersteller sich das vorstellt. |
Die Mitglieder der Lowlevel-Community entwickeln ihre Betriebssysteme in aller Regel für den x86-PC, Ausnahmen gibt es da fast keine. Auch (fast) das gesamte Wiki hier bezieht sich ausschliesslich auf den x86-PC. | Die Mitglieder der Lowlevel-Community entwickeln ihre Betriebssysteme in aller Regel für den x86-PC, Ausnahmen gibt es da fast keine. Auch (fast) das gesamte Wiki hier bezieht sich ausschliesslich auf den x86-PC. | ||