Ce tutoriel couvre l'ensemble du traitement de la création de votre propre petit système d'exploitation. Il comprend le démarrage
et module de noyau.

Faites votre propre système d'exploitation


Outils nécessaires:


Habituellement, lorsque l'ordinateur démarre, il essaie de charger 512 octets
de secteur 1, tête 0, cylindre0 de lecteur de disquette A
à 0000H: 7C00h et de lui donner le contrôle.
Si cela échoue, un disque dur est utilisé.

Ce tutoriel couvre la disquette de démarrage, le même principe est
utilisé pour démarrer à partir du disque dur. En utilisant le lecteur de disquette a plusieurs avantages:

  • Vous pouvez conserver votre système d'exploitation (Windows, DOS ...).

  • Il est facile de modifier l'enregistrement de démarrage d'un lecteur de disquette.

Exemple d'un simple programme de démarrage:



; Directive pour créer des fichier de démarrage:
# # MAKE_BOOT

; Boot record est chargé à 0000:7 C00,
, Afin d'informer le compilateur de faire requis
; Corrections:
ORG 7C00h

; Adresse de messagerie en charge SI vous inscrire:
LEA SI, msg

; Télétype fonction id:

MOV AH, 0EH

print: MOV AL, [SI]
CMP AL, 0
JZ fait
INT 10h; imprimer avec téléscripteur.
INC SI
JMP imprimer

; Attendre «toute clé»:
fait: MOV AH, 0
INT 16h


, Magasin de magie à la valeur 0040h: 0072h:
; 0000H - démarrage à froid.
; 1234h - chaud boot.
MOV AX, 0040h
MOV DS, AX
W. MOV [0072h], 0000H; de démarrage à froid.

JMP 0FFFFh: 0000H; reboot!


new_line EQU 13, 10

msg DB "Bonjour, C'est mon premier programme de démarrage!
DB new_line, "Appuyez sur une touche pour redémarrer", 0

Copiez l'exemple ci-dessus à l'éditeur de source et emu8086
appuyez sur [Compiler et Emuler] bouton.
Emulator charge automatiquement. Boot "fichier à 0000H: 7C00h.

Vous pouvez l'exécuter comme un programme régulier, ou vous pouvez utiliser
Virtual Drive menu d'écriture de 512 octets à 7C00h pour le secteur de démarrage
de lecteur de disquette virtuelle (FLOPPY_0 fichier dans le dossier de l'émulateur).

Après avoir écrit votre programme de lecteur de disquette virtuel, vous pouvez sélectionner
À partir de la disquette de démarrage de Virtual Drive menu.


Si vous êtes curieux, vous écrivez mai
la disquette virtuelle (FLOPPY_0) ou ". boot" à de vrais fichiers de disquettes et
démarrage de votre ordinateur à partir d'elle, je recommande
en utilisant "RawWrite pour Windows" à partir de:

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

(notez que ce n'est pas compatible avec MS-DOS boot sector,
il est donc préférable d'utiliser des disquettes et vide, mais il devrait être
IBM (MS-DOS) formaté).


. "Boot" fichiers sont limités à 512 octets (taille de secteur), si votre
Système d'exploitation va croître au cours de cette taille, vous devez utiliser programme de démarrage
de charger des données provenant d'autres secteurs. Un bon exemple de petit système d'exploitation peut
être téléchargé ici:

micro-os_loader.asm

micro-os_kernel.asm

emu8086.inc

Pour créer des extensions pour votre système d'exploitation (plus de 512 octets), vous pouvez utiliser
. "Bin" des fichiers (sélectionner "BIN modèle" de "Fichier" -> "Nouveau" du menu).

Pour écrire ". Bin"Fichier de la disquette virtuelle sélectionnez« Ecrire. Bin de la disquette ... "
de «Virtual Drive" dans le menu de l'émulateur:

write_bin.gif

Vous pouvez également l'utiliser pour écrire. "Démarrage" de fichiers.

Secteur à l'adresse suivante:


cylindre: 0

secteur: 1

la tête: 0

est un secteur de boot!

Une structure de type lecteur de disquette:

floppy.gif

  • Disquette a 2 côtés, et il ya 2 têtes de chaque côté (0 .. 1), ces
    chefs se déplacent au-dessus du disque.

  • Chaque camp dispose de 80 bouteilles (0 .. 79).
  • Chaque cylindre dispose de 18 secteurs (1 .. 18).
  • Chaque secteur dispose de 512 octets.
  • Nombre total de disquette est: 2 x 80 x 18 x 512 = 1474560 octets.



Copyright © 2002 Alexander Popov Emulation Soft.

Tous droits réservés.

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

Average rating: