Questo tutorial copre l'intero trattamento di creare il proprio piccolo sistema operativo. Esso comprende l'avvio
modulo e del kernel.

Rendere il proprio sistema operativo


Strumenti obbligatori:


Di solito, quando il computer si avvia il sistema cercherà di caricare 512 byte
dal settore 1, testa 0, cilindro0 da un lettore di dischetti
a 0000H: 7C00h e dare controllo.
Se questo fallisce, un disco rigido viene utilizzato.

Questo tutorial copre il boot da floppy, lo stesso principio è
utilizzato per il boot dal disco rigido. Utilizzo di floppy ha diversi vantaggi:

  • Potete mantenere il vostro sistema operativo (Windows, DOS, ...).

  • È facile modificare il record di avvio di un drive floppy.

Esempio di un semplice programma di avvio:



; Direttiva per creare file di avvio:
# # MAKE_BOOT

; Boot record viene caricato a 0000:7 C00,
; Ne informa il compilatore a fare richieste
; Correzioni:
ORG 7C00h

; Messaggio indirizzo in carico SI registro:
LEA SI, msg

; Teletype funzione id:

MOV AH, 0EH

stampa: MOV AL, [SI]
CMP AL, 0
JZ fatto
INT 10h; stampare con telescrivente.
INC SI
JMP stampa

; Attendere 'un tasto':
fatto: MOV AH, 0
INT 16h


; Negozio magico valore 0040h: 0072h:
; 0000H - avvio a freddo.
; 1234h - avvio caldo.
MOV AX, 0040h
MOV DS, AX
MOV w. [0072h], 0000H; avvio a freddo.

JMP 0FFFFh: 0000H; riavvio!


new_line EQU 13, 10

msg DB 'Ciao Questo è il mio primo avvio del programma!'
PB new_line, 'Premere un tasto qualsiasi per riavviare', 0

Copiare l'esempio sopra per emu8086 fonte editor e
premere [Compilare ed emulare] pulsante.
Emulatore carica automaticamente ". Avvio" file 0000H: 7C00h.

È possibile eseguire semplicemente come un normale programma, oppure potete usare
Virtual Drive menu Scrivi a 512 byte di 7C00h Boot Sector
floppy drive virtuale (file in FLOPPY_0 emulatore della cartella).

Dopo aver scritto il vostro programma di drive floppy virtuale, è possibile selezionare
Fate il boot da floppy drive virtuale dal menu di scelta rapida.


Se siete curiosi, si può scrivere
floppy virtuale (FLOPPY_0) o ". avvio" file reale e floppy
avviare il computer da esso, mi raccomando
l'utilizzo di "RawWrite per Windows" a partire da:

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

(si noti che questo non è compatibile con MS-DOS settore di avvio,
quindi è meglio usare e floppy vuoto, anche se dovrebbe essere
IBM (MS-DOS) formattato).


". Avvio" file sono limitati a 512 byte (la dimensione del settore), quindi se la vostra
Sistema operativo sta a crescere nel corso di tale dimensione si deve usare l'avvio del programma
per caricare i dati provenienti da altri settori. Un buon esempio di piccolo sistema operativo può
essere scaricato da qui:

micro-os_loader.asm

micro-os_kernel.asm

emu8086.inc

Per creare le estensioni per il sistema operativo (oltre 512 byte), è possibile utilizzare
". Bin" file (selezionare "BIN modello" da "File" -> "Nuovo" dal menu).

Per scrivere ". Bin"File virtuale dischetto selezionare" Scrivi file. Bin su floppy ... "
da "Virtual Drive" dal menu di emulatore:

write_bin.gif

È inoltre possibile utilizzare questo per scrivere ". Avvio" file.

Settore:


cilindro: 0

settore: 1

testa: 0

è un settore di avvio!

Una tipica struttura floppy:

floppy.gif

  • Floppy disk ha 2 lati, e ci sono 2 capi per ogni lato (0 .. 1), questi
    teste si muovono al di sopra del disco.

  • Ogni lato ha 80 cilindri (0 .. 79).
  • Ogni cilindro è dotato di 18 settori (1 .. 18).
  • Ogni settore è 512 byte.
  • Dimensione totale dei floppy disk è: 2 x 80 x 18 x 512 = 1.474.560 byte.



Copyright © 2002 Alexander Popov Emulazione Soft.

Tutti i diritti riservati.

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

Average rating: