Man könnte auch sagen, dass man unbedingt das BIOS unbedingt selber schreiben muss. Oder Mikrocode-Updates. Oder selbst eine Platine mit Prozessor, RAM, Controllern, etc zusammenlöten sollte. Oder gleich einen Prozessor. Macht auch alles Spaß. Aber der Sinn von OS-Development ist es nicht, sich mit den 1000 Hürden, die beim Entwickeln eines Bootsektors auftauchen auseinander zu setzen.
- A20-Gate
- zwangsläufiges Arbeiten und Auseinandersetzung sowohl mit Protected Mode als auch Real Mode
- Beachtung von Inkompatibilitäten der verschiedenen BIOS
- Abschalten des Diskettenlaufwerksmotors
- Festplatten-/Diskettengeometrie (CHS<->LBA, Limits von Festplattengrößen und BIOS-Fähigkeiten)
- Umsetzung eines Dateisystems
- überhaupt vollständiges und korrektes Laden einer Datei (worauf viele Probleme hier im Forum zurückzuführen sind)
- Überprüfung der verfügbaren Speicherbereiche
- Vermischung von 16-Bit und 32-Bit Code (was noch mal einen Großteil von hier im Forum auftauchenden Problem ausmacht)
- Schalten in einen Grafikmodus vor dem Wechsel in den Protected Mode
- Kompatibilität mit Bootloadern von Drittherstellern
- Fähigkeit andere Systeme zu booten
Mal einen Bootloader zum Ausprobieren, was das Ding überhaupt macht, ist ok. Aber wenn man was haben will, dass zuverlässig funktioniert, dann ist die Verwendung eines fertigen Bootloaders wesentlich sinnvoller. Wenn man allerdings statt eines OS einen Bootloader schreiben will, und sich auch darauf konzentrieren will, ist es natürlich OK einen Bootloader zu schreiben.