Ausgabe 9 — Änderungen 1419 → 1422

Zeile 8: Zeile 8:
 
Wir wünschen euch viel Spaß mit der neuen Ausgabe!
 
Wir wünschen euch viel Spaß mit der neuen Ausgabe!
  
−
== 2.News ==
+
== 2. News ==
 
Viel neues ist passiert seit der letzten Ausgabe - auch nicht weiter verwunderlich, wenn man  bedenkt wieviel Zeit ins Land gegangen ist ;) . Vor wenigen Wochen, am 22.7 ist QEMU 0.8.2  herausgekommen. Als einer der wenigen Emulatoren verfügt er über ein Kernelmodul um die  Ausführung der ganzen VM erheblich zu beschleunigen - mir fällt sonst nur VMWare ein, dass  diese Möglichkeit nutzt. Neu in der aktuellen Version sind u.a. ACPI Support und einige  Verbesserungen der USB-Fähigkeiten.
 
Viel neues ist passiert seit der letzten Ausgabe - auch nicht weiter verwunderlich, wenn man  bedenkt wieviel Zeit ins Land gegangen ist ;) . Vor wenigen Wochen, am 22.7 ist QEMU 0.8.2  herausgekommen. Als einer der wenigen Emulatoren verfügt er über ein Kernelmodul um die  Ausführung der ganzen VM erheblich zu beschleunigen - mir fällt sonst nur VMWare ein, dass  diese Möglichkeit nutzt. Neu in der aktuellen Version sind u.a. ACPI Support und einige  Verbesserungen der USB-Fähigkeiten.
 
<br><br>
 
<br><br>
 
Auch beim längst totgeglaubten Community-OS LOST gibt es Fortschritte. Seitdem taljeth die  Projektleitung übernommen hat, sind einige Fortschritte zu beobachten. Mittlerweile  funktioniert sogar eine erste Form des Multitasking, welche Jidder/PorkChicken zusammen mit  dem Phys. Speichermanagment entwickelt hat. Es fehlt also nicht mehr viel bis die ersten  Treiberprogramme (FÜr die die es nicht wissen, LOST ist ein Microkernel) geschrieben werden  können.
 
Auch beim längst totgeglaubten Community-OS LOST gibt es Fortschritte. Seitdem taljeth die  Projektleitung übernommen hat, sind einige Fortschritte zu beobachten. Mittlerweile  funktioniert sogar eine erste Form des Multitasking, welche Jidder/PorkChicken zusammen mit  dem Phys. Speichermanagment entwickelt hat. Es fehlt also nicht mehr viel bis die ersten  Treiberprogramme (FÜr die die es nicht wissen, LOST ist ein Microkernel) geschrieben werden  können.
 +
 +
== 3. Ein OS auf einer CD-ROM ==
 +
 +
=== Index ===
 +
* Einleitung
 +
* Praxis: Ahead Nero
 +
* Theorie: Das ISO El-Torito Format
 +
* Nachwort
 +
 +
=== Einleitung ===
 +
Irgendwie ist es halb drei Uhr in der Früh und ich kann nicht mehr
 +
schlafen, darum will ich jetzt mal was sinnvolles machen und anderen
 +
versuchen zu erklären, wie man ein Betriebssystem auf eine CD-ROM
 +
bekommt, und wie das BIOS dieses ISO El-Torito Format ließt. Nun gut,
 +
auf gehts...
 +
 +
=== Praxis: Ahead Nero ===
 +
Wenn wir unser Betriebssystem geschrieben haben und in einer .IMG Datei
 +
compiliert haben, schreiben wir es normalerweise mit RaWrite (oder einem
 +
ähnlichen Programm) 1 zu 1 auf eine Diskette. Da aber in unserer 'modernen'
 +
Welt selbst PCs existieren, die keine Diskettenlaufwerke mehr haben (tja,
 +
scheisse :D) haben wir Pech gehabt. Oder? Anstatt das Betriebssystem auf
 +
einer Diskette anzubieten, können wir es auch auf eine CD-ROM schreiben
 +
(ein CD-ROM Laufwerk hat beinahe jeder PC/Laptop), und wir sind dieses
 +
Problem los. Wie schreibt man nun ein Betriebssystem auf eine CD-ROM.
 +
Ich werde das nun versuchen Schritt für Schritt zu erklären:
 +
<br><br>
 +
# Man compiliert sein Betriebssystem ganz normal, und erstellt eine .IMG
 +
Datei - wie es auch für Disketten-Betriebssysteme gemacht wird.
 +
# Man öffnet 'Ahead Nero Burning ROM' (btw: ich finde den Namen sehr
 +
gelungen :D).
 +
# Neue Zusammenstellung -> 'CD-ROM (Boot)'
 +
# Das Options-Feld 'Image-Datei' anklicken und den Pfad zum Image des
 +
Betriebssystems eingeben. 'Neu' klicken.
 +
# Dann, schlussendlich, das Dialogfeld 'CD Brennen' klicken und die
 +
CD-ROM brennen.
 +
<br><br>
 +
Wenn wir nun den Computer neu starten, und im BIOS die Option "von CD-ROM
 +
Booten" auswählen, startet unser Betriebssystem als wäre es eine Diskette.
 +
OK, wir wissen nun, wie es gemacht wird, aber nicht, warum es das macht.
 +
 +
=== Theorie: Das ISO El-Torito Format ===
 +
Eine bootfähige CD-ROM hat in den meisten Fällen ein Dateisystem namens
 +
"ISO El-Torito". Das ist der gängige Standart für bootfähige CD-ROMs, die
 +
fast alle BIOS-Systeme erkennen.
 +
<br><br>
 +
Zuerst ist wichtig: Ein Sektor auf einem ISO-Datenträger ist 0x800 Byte groß
 +
(im Gegensatz zu Sektoren auf FAT Systemen, die grundsätzlic 0x200 Byte groß
 +
sind).
 +
<br><br>
 +
Bei El-Torito CD-ROM wird im Grunde nichts anderes gemacht als eine Diskette
 +
emuliert, die das bootfähige Image beinhaltet.
 +
Das ISO-El-Torito Format ist grundsätzlich so aufgebaut:
 +
<br><br>
 +
                +-------------------------+
 +
    Sector 0:  |          SYSTEM        |
 +
                |        (UNUSED)        |
 +
                |-------------------------|
 +
    Sector 16: |      Primary Volume    |
 +
                |-------------------------|
 +
    Sector 17: |    Boot Record Volume  |-------+
 +
                |-------------------------|      |
 +
                |                        |      |
 +
                |-------------------------|      |
 +
                |                        |      |
 +
                |-------------------------|      |
 +
                |                        |      |
 +
                |-------------------------|      |
 +
                | Set Termination Volume  |      |
 +
                |-------------------------|      |
 +
                |    Boot Catalog        | <-----+
 +
                |                        |-------+
 +
                |-------------------------|      |
 +
                |  Bootable Disk Image    | <-----+
 +
                |-------------------------|
 +
                |      CD-ROM Image      |
 +
                +-------------------------+
 +
<br><br>
 +
Das bedeutet im Sektor 17 (an der Adresse 17 * 0x800) ist das Boot-Record Volume.
 +
Dieses hat einen Zeiger auf den Boot-Catalog, und sieht folgendermaßen aus:
 +
<br><br>
 +
    Offset * Type  * Description
 +
    ****************************
 +
    0      * Byte  * Boot Record Indicator
 +
    1-5    * Byte  * ISO-9660 Identifier, must be 'CD001'
 +
    6      * Byte  * Version of the descriptor, must be 1
 +
    7-26  * Byte  * Boot System Identifier, must be 'EL TORITO SPECIFICATION"
 +
                      padded with 0's.
 +
    27-46  * Byte  * Unused, must be 0.
 +
    47-4A  * DWord * Absolute pointer to first sector of Boot Catalog.
 +
    4A-7FF * Byte  * Unused, must be 0.
 +
<br><br>
 +
Wie wir hier deutlich erkennen können, ist an der Adresse 0x47-0x4A im
 +
17. CD-ROM Sektor der Pointer zum Boot-Catalog. Wir folgen nun diesem
 +
Pointer und sehen uns den Boot Catalog an:
 +
<br><br>
 +
    Offset * Type  * Description
 +
    ****************************
 +
    0      * Byte  * Header ID, must be 01.
 +
    1      * Byte  * Platform ID.
 +
    2-3    * Word  * Reserved, must be 0.
 +
    4-1B  * Char  * ID-String.
 +
    1C-1D  * Int  * Checksum Word.
 +
    1E    * Byte  * Key Byte, must be 55.
 +
    1F    * Byte  * Key Byte, must be AA.
 +
<br><br>
 +
Hier sehen wir zuerst einige Standart-Strings und Zeichen ("0x55, 0xAA"
 +
sollten wir schon kennen). 0x20 Byte weiter (also 32 Bytes weiter) im selben
 +
Sektor befindet sich dann der "Initial/Default Entry", der auch den Pointer
 +
zu unserem Boot-Image beinhaltet:
 +
<br><br>
 +
    Offset * Type  * Description
 +
    ****************************
 +
    0      * Byte  * Boot Indicator (88=bootable | 00=not bootable)
 +
    1      * Byte  * Boot media Type
 +
    2-3    * Word  * Load segment (standart is 0x7C0)
 +
    4      * Byte  * System Type.
 +
    5      * Byte  * Unused, must be 0.
 +
    6-7    * Word  * Sector count.
 +
    8-0B  * DWord * Load RBA. This is the start address of the virtual disk.
 +
    0C-1F  * Byte  * Unused, must be 0.
 +
<br><br>
 +
An der Adresse 0x08-0x0B befindet sich schließlich der Pointer zum Image
 +
unseres Betriebssystems. Hier befindet sich also das Image - und wir
 +
wissen nun auch ein bisschen, wie unser Betriebssystem auf einer CD-ROM
 +
gespeichert ist.
 +
<br><br>
 +
Wer mehr wissen möchte, sollte folgende Dokumente lesen:
 +
* FAT: Gerneral Overview of On-Disk Formation by Microsoft Corporation
 +
* Volume and File Structure of CDROM for Information Interchange
 +
* "El Torito" Bootable CD-ROM Format Specification
 +
 +
=== Nachwort ===
 +
Das wars auch schon wieder - ich hoffe man konnte einige nützliche Informationen
 +
im Artikel finden. Falls nicht, mir egal - ich bin endlich müde und kann vielleicht
 +
weiterschlafen ;).
 +
Also, schön weiterprogrammieren, lernen, Ideen entwickeln und so weiter.
 +
Und: Von nichts und niemandem vom Kurs abbringen lassen ;)
  
 
[[Category:Magazin]]
 
[[Category:Magazin]]
 
[[Category:Tutorials]]
 
[[Category:Tutorials]]