| Zeile 14: | Zeile 14: | ||
* Dabei kommen dann '''fehleranfällige''' Bootloader heraus, von denen der jeweilige Programmierer meist nicht weiß, was sie genau machen (z. B. in welchem Dateiformat der Kernel sein muss, an welche Adresse der Kernel geladen wird oder wie viel vom Kernel überhaupt geladen wird) und im Forum werden dann Threads mit 500 Zeilen zusammengefrickelten Assemblercode und der Frage ''„Warum funktioniert denn das nicht so, wie ich das will!?“'' erstellt. Der Punkt hier ist nicht, dass wir zu faul wären Fragen zu beantworten, sondern, dass es einfach nichts bringt einen eigenen Bootloader zu schreiben, wenn derjenige nicht einmal im Ansatz verstanden hat, was er denn da überhaupt tut. Das ist dann für uns primär frustrierend. | * Dabei kommen dann '''fehleranfällige''' Bootloader heraus, von denen der jeweilige Programmierer meist nicht weiß, was sie genau machen (z. B. in welchem Dateiformat der Kernel sein muss, an welche Adresse der Kernel geladen wird oder wie viel vom Kernel überhaupt geladen wird) und im Forum werden dann Threads mit 500 Zeilen zusammengefrickelten Assemblercode und der Frage ''„Warum funktioniert denn das nicht so, wie ich das will!?“'' erstellt. Der Punkt hier ist nicht, dass wir zu faul wären Fragen zu beantworten, sondern, dass es einfach nichts bringt einen eigenen Bootloader zu schreiben, wenn derjenige nicht einmal im Ansatz verstanden hat, was er denn da überhaupt tut. Das ist dann für uns primär frustrierend. | ||
* Diese Fehleranfälligkeit kann auch dazu führen, dass das ganze eine Weile funktioniert, aber irgendwann tauchen plötzlich seltsame Fehler auf. Dies kann unter anderem den Grund haben, dass nicht der komplette Kernel geladen wird, sondern z. B. nur die ersten paar Kilobyte. Solche Fehler sind meist extrem '''schwer zu debuggen'''. | * Diese Fehleranfälligkeit kann auch dazu führen, dass das ganze eine Weile funktioniert, aber irgendwann tauchen plötzlich seltsame Fehler auf. Dies kann unter anderem den Grund haben, dass nicht der komplette Kernel geladen wird, sondern z. B. nur die ersten paar Kilobyte. Solche Fehler sind meist extrem '''schwer zu debuggen'''. | ||
| − | * Eventuell tauchen später auch '''neue Anforderungen''' an den Bootloader auf, z. B. könnte man bei einem [[Mikrokernel]] durch den Bootloader Module (meistens Treiber) laden wollen. Dann wird entweder versucht das schnell | + | * Eventuell tauchen später auch '''neue Anforderungen''' an den Bootloader auf, z. B. könnte man bei einem [[Mikrokernel]] durch den Bootloader Module (meistens Treiber) laden wollen. Dann wird entweder versucht das schnell ''hinzufrickeln'' oder aber man entscheidet sich dann doch gegen einen Mikrokernel, d. h. es kann '''Auswirkungen auf das Design''' des Kernels haben. |
* Falls man allerdings von Anfang an intensiv seinen Bootloader plant – was einem Anfänger aufgrund mangelnder Erfahrung verwehrt bleibt – und diesen sehr gewissenhaft programmiert, dann ist das ein Projekt für sich, d. h. es wird '''Unmengen an Zeit verschlucken''' (wir reden hier nicht von Tagen oder Wochen). | * Falls man allerdings von Anfang an intensiv seinen Bootloader plant – was einem Anfänger aufgrund mangelnder Erfahrung verwehrt bleibt – und diesen sehr gewissenhaft programmiert, dann ist das ein Projekt für sich, d. h. es wird '''Unmengen an Zeit verschlucken''' (wir reden hier nicht von Tagen oder Wochen). | ||
* Der '''[[Bootvorgang]] auf x86-Prozessoren''' hat so manches Hindernis, welches von Intel und Konsorten gerne aufgrund von Abwärtskompatibilität aufgestellt wurde. Beispiele hierfür sind der [[Real Mode]] (der Bootloader startet im Realmode) und das [[A20-Gate]], welches aktiviert werden muss. | * Der '''[[Bootvorgang]] auf x86-Prozessoren''' hat so manches Hindernis, welches von Intel und Konsorten gerne aufgrund von Abwärtskompatibilität aufgestellt wurde. Beispiele hierfür sind der [[Real Mode]] (der Bootloader startet im Realmode) und das [[A20-Gate]], welches aktiviert werden muss. | ||