Dieses Tutorial bezieht sich auf die gesamte Verarbeitung der Erstellung Ihres eigenen kleinen Betriebssystem. Es umfasst Booten
und Kernel-Modul.

Ihre eigenen Betriebssystem


Benötigte Werkzeuge:


Normalerweise, wenn der Computer gestartet wird er versuchen zu laden 512 Bytes
von Sektor 1, Kopf 0, Zylinder0 von Floppy-Laufwerk A
zu 0000h: 7C00h und ihm die Kontrolle.
Wenn dies nicht gelingt, eine Festplatte verwendet wird.

Dieses Tutorial bezieht sich auf die das Booten von Floppy-Laufwerk, das gleiche Prinzip ist
zum Booten von Festplatte. Mit Disketten-Laufwerk hat mehrere Vorteile:

  • Sie können Ihre bestehende Betriebssystem (Windows, DOS ...).

  • Es ist leicht zu ändern, die Boot-Record eines Disketten-Laufwerk.

Beispiel für ein einfaches Boot-Programm:



Richtlinie zum Erzeugen von Boot-Datei:
# # MAKE_BOOT

; Boot Record geladen ist bei 0000:7 C00,
, So informieren Compiler, um erforderliche
; Korrekturen:
ORG 7C00h

; Last Nachricht in SI-Adresse registrieren:
LEA SI, msg

; Teletype Funktions-ID:

MOV AH, 0EH

print: MOV AL, [SI]
CMP AL, 0
JZ getan
INT 10h; Drucken über Fernschreiber.
INC SI
JMP drucken

; Warten "eine beliebige Taste":
Geschehen: MOV AH, 0
INT 16h


; Store Magic Value-at-0040h: 0072h:
; 0000h - Kaltstart.
; 1234h - Warm Boot.
MOV AX, 0040h
MOV DS, AX
MOV W. [0072h], 0000h; Kaltstart.

JMP 0FFFFh: 0000h; Neustart!


new_line EQU 13, 10

msg DB 'hallo Dies ist meine erste Boot-Programm! "
DB new_line, "Drücken Sie eine beliebige Taste neu zu starten", 0

Kopieren Sie das obige Beispiel zu emu8086 Quellcode-Editor und
Drücken Sie [Kompilieren und Emulate]-Taste.
Emulator lädt automatisch ". Boot"-Datei zu 0000h: 7C00h.

Sie können es einfach wie eine normale Programm, oder Sie können
Virtual Drive-Menü Schreib 512 Bytes auf 7C00h zu Boot-Sektor
von virtuellen Disketten-Laufwerk (FLOPPY_0 Datei in den Ordner-Emulator).

Nach dem Schreiben der Programm virtuellen Disketten-Laufwerk, können Sie
Booten von Floppy von Virtual Drive-Menü.


Wenn Sie neugierig sind, können Sie
die virtuelle Diskette (FLOPPY_0) oder. "boot"-Datei auf Diskette und real
Starten Sie Ihren Computer aus ist, empfehle ich
mit "RawWrite für Windows" aus:

http://uranus.it.swin.edu.au/ ~ jn / linux

(Beachten Sie, dass dies nicht MS-DOS-kompatiblen Boot-Sektor,
so ist es besser zu nutzen und leere Diskette, obwohl er sollte
IBM (MS-DOS) formatiert).


. "Boot"-Dateien sind auf 512 Bytes (Sektor-Größe), so dass, wenn Ihr
Betriebssystem wird im Laufe dieser Größe sollten Sie Boot-Programm
für das Laden der Daten aus anderen Sektoren. Ein gutes Beispiel für die kleinen Betriebssystem kann
hier heruntergeladen werden:

Mikro-os_loader.asm

Mikro-os_kernel.asm

emu8086.inc

So erstellen Sie Erweiterungen für Ihr Betriebssystem (mehr als 512 Bytes), können Sie
". Bin"-Dateien (Wählen Sie "BIN Template" von "File" -> "Neu"-Menü).

Zu schreiben ". Bin"Datei, um virtuelle Diskette wählen Sie" schreiben. Bin Datei auf Diskette ... "
Von "virtuelle Festplatte" Menü-Emulator:

write_bin.gif

Sie können auch diese zu schreiben. "Boot"-Dateien.

Sektor:


Zylinder: 0

Bereich: 1

Kopf: 0

ist ein Boot-Sektor!

Ein typisches Diskettenlaufwerk Struktur:

floppy.gif

  • Diskette hat 2 Seiten, und es sind 2 Köpfe für jede Seite (0 .. 1), diese
    Köpfe bewegen sich über der Festplatte.

  • Jede Seite hat 80 Zylinder (0 .. 79).
  • Jeder Zylinder hat 18 Sektoren (1 .. 18).
  • Jeder Sektor hat 512 Byte.
  • Gesamtgröße der Diskette: 2 x 80 x 18 x 512 = 1474560 Bytes.



Copyright © 2002 Alexander Popov Emulation Soft.

Alle Rechte vorbehalten.

http://www.geocities.com/emu8086/

Average rating: