Making Your Own Operating System | Computer Tips og Tricks

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:.

  • Du kan beholde ditt eksisterende operativsystem programvare (Windows, DOS ...)

    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/