Machen Sie Ihr eigenes Betriebssystem Erforderliche Werkzeuge: - emu8086 - Assembler,
Tutorial und emulator - RawWrite für Windows
In der Regel beim Starten eines Computers wird versucht, 512 Byte zu laden Sektor 1, Kopf 0, Zylinder 0 von Disketten Laufwerk A: 0000 h: 7C00h und geben Sie ihr Steuerelement. Wenn dies fehlschlägt, wird eine Festplatte verwendet. Dieses Tutorial behandelt das Booten von floppy-Laufwerk, das gleiche Prinzip wird gebrauchten Booten von Festplatte. Mit Diskettenlaufwerk hat mehrere Vorteile:
- Sie können Ihre vorhandenen Computer-Betriebssystem-Software (Windows, DOS,...) halten.
- Es ist leicht, den Boot-Record von einem floppy-Laufwerk zu ändern.
Beispiel für ein einfaches Boot-Programm: ; Richtlinie zum BOOT-Datei zu erstellen: #MAKE_BOOT #
; Boot-Datensatz wird automatisch auf 0000:7 00, ; so unterrichtet Sie hiervon Compiler erforderlich machen ; Korrekturen: ORG-7C00h ; Laden Sie in SI-Register Nachrichtenadresse: LEA SI, msg ; Teletype-Funktions-Id: MOV AH, 0Eh Drucken: MOV AL, [SI] CMP AL, 0 JZ getan INT 10h; mit Teletype drucken. INC SI JMP drucken ; warten Sie auf 'beliebige Taste': getan: MOV AH, 0 INT 16h ; magischen Wert um 0040 h: 0072h zu speichern: ; 0000h - Kaltstart. ; 1234h - Warmstart. MOV AX, 0040h MOV DS, AX MOV, w. [0072 h] 0000 h; Kaltstart. JMP0FFFFh:0000 h; Starten Sie neu! New_line EQU 13, 10 msg DB ' Hallo dies ist mein erstes Boot Programm! ' DB-New_line, 'Press any Key to reboot', 0
|
Das obige Beispiel zu emu8086 Quellcode-Editor kopieren und [Kompilieren und emulieren] drücken. Emulator lädt automatisch die Datei '.boot' 0000h: 7C00h. Sie können es wie ein regelmäßiges Programm, oder können Sie ausführen Virtuelles Laufwerk Menü Schreiben 512 Bytes an 7C00h an Bootsektor der virtuelle Diskettenlaufwerk (FLOPPY_0-Datei im Ordner des Emulators). Nach dem Schreiben Ihr Programms in virtuelle Diskettenlaufwerk, können Sie auswählen Virtuelles Laufwerk im Menü von Diskette booten . Wenn Sie neugierig sind, können Sie schreiben. die virtuelle Diskette (FLOPPY_0) oder '.boot' Datei auf reale Disketten und Starten Sie den Computer aus, empfehle Verwendung von 'RawWrite for Windows' aus: https://uranus.it.swin.edu.au/ 'Jn/Linux (Beachten Sie, dass dies keine MS-DOS-kompatiblen Boot-Sektor, So ist es besser zu bedienen und leere Diskette, obwohl es sein sollte IBM (MS-DOS) formatiert). '.boot' Dateien sind begrenzt auf 512 Bytes (Sektorgröße), also, wenn Ihr Betriebssystem geht, in dieser Größe wachsen sollten Sie Boot-Programm verwenden zum Laden von Daten aus anderen Sektoren. Ein gutes Beispiel für kleine Betriebssystem können hier heruntergeladen Sie werden: Mikro-os_loader.asm Mikro-os_kernel.asm emu8086.Inc Sie können zum Erstellen von Erweiterungen für Ihr Betriebssystem (mehr als 512 Bytes) '.bin' Dateien ('Lagerplatzvorlage'von'Datei'-> 'New' auswählen). Schreiben zu virtuellen Diskette '.bin' Datei auswählen '.bin-Datei auf Diskette schreiben...' 'virtuelles Laufwerk' Menü des Emulators: Sie können dies auch, '.boot' Dateien zu schreiben.
Zylinder: 0Sektor: 1 Kopf: 0
ist ein Boot-Sektor! |