Denne opplæringen dekker hele prosessen med å lage din egen lille operativsystem. Det inkluderer oppstart modul og kjernen.
lage din egen operativsystemet
Nødvendig verktøy:
emu8086 - assembler, tutorial og emulator
RawWrite for Windows
Vanligvis, når en datamaskin starter den vil prøve å laste 512 bytes fra sektor 1, hode 0, sylinder 0 fra diskettstasjon A til 0000H: 7C00h og gi den kontroll. Hvis dette ikke lykkes, er en harddisk som brukes.
Denne opplæringen omfatter oppstart fra diskettstasjon, er det samme prinsippet brukes til å starte opp fra harddisken. Ved hjelp av diskettstasjonen har flere fordeler:.
Det er lett å endre boot record av en diskettstasjon
Eksempel på en enkel boot program.
; Direktivet å skape BOOT fil: # MAKE_BOOT #
; Boot record er lastet på 0000: 7C00,; rette kompilatoren for å gjøre nødvendig; rettelser: ORG 7C00h
; last melding adresse til SI registrere: LEA SI, msg
; fjernskriver funksjon id: MOV AH, 0Eh
print: MOV AL, [SI] CMP AL, 0 JZ gjort INT 10h; skrive ut med fjernskriver. INC SI JMP utskrifts
; vente for 'hvilken som helst tast': gjort: MOV AH, 0 INT 16h
; lagre magi verdi på 0040h: 0072h:; 0000h - kaldstart.; 1234h - varmstart. MOV AX, 0040h MOV DS, AX MOV w [0072h], 0000h.; . Kaldstart
JMP 0FFFFh: 0000h; starte på nytt!
NEW_LINEBEGIN_BOLDTrinn EQU 13, 10
msg DB 'Hei dette er min første Boot Program! DB NEW_LINEBEGIN_BOLDTrinn, "Trykk en tast for å starte på nytt", 0
Kopier eksempelet ovenfor til emu8086 kilde redaktør og trykk [Kompiler og etterligne] -knappen. Emulator laster automatisk ".boot" filen til 0000h. 7C00h
Du kan kjøre det akkurat som et vanlig program, eller du kan bruke Virtual Drive menyen til å skrive 512 byte på 7C00h til oppstartssektoren av virtuell diskettstasjon (FLOPPY_0 fil i emulator mappe).
Etter å ha skrevet inn programmet til virtuell diskettstasjon, kan du velge Boot fra diskett fra Virtual Drive menyen.
Hvis du er nysgjerrig, kan du skrive den virtuelle floppy (FLOPPY_0) eller ". boot "filen til fast diskett og start datamaskinen fra det, anbefaler jeg å bruke" RawWrite for Windows "fra: http://uranus.it.swin.edu.au/~jn/linux product: (merk at dette ikke er MS-DOS kompatible oppstartssektoren, så det er bedre å bruke og tom diskett, selv om det skal IBM (MS-DOS) format).
".boot" filer er begrenset til 512 byte (sektorstørrelse), så hvis din Operation System kommer til å vokse over denne størrelsen bør du bruke boot program for å laste inn data fra andre sektorer. Et godt eksempel på små operativsystemet kan lastes ned her:
mikro os_loader.asm
mikro os_kernel.asm
emu8086.inc
For å lage utvidelser for operativsystemet (over 512 bytes), du kan bruke "BIN" filer (velg "BIN Mal" fra "File" - > "Ny" -menyen).
til å skrive ".bin" filen til virtuell diskett velge "Skriv .bin filen til diskett .. . "fra" Virtual Drive "-menyen i emulator:
Du kan også bruke denne til å skrive" .boot "filer
sector på.
sylinder: 0
sektor: 1
hodet: 0
er et oppstartssektoren! , En typisk diskettstasjon struktur:
Floppy disk har 2 sider, og det er 2 hoder for hver side (0..1), disse hodene beveger seg over disken.
Hver side har 80 sylindre (0..79).
Hver sylinder har 18 sektorer (1..18).
Hver sektor har 512 bytes .
Total størrelse på diskett er: 2 x 80 x 18 x 512 = 1,474,560 bytes
nå vet du om å lage operativsystemer
<.. .no>
Copyright © 2002 Alexander Popov emulering Soft.
Alle rettigheter reservert.
http://www.geocities.com/emu8086/
Previous:Generic Rutine å velge Fet Elements
Next Page:Oppdatering enkeltobjekter til database