Este tutorial cobre todo o processamento de criar o seu próprio sistema operacional minúsculo. Ela inclui o arranque
eo módulo do kernel.

Fazendo o seu próprio Sistema Operativo


Utilitários necessários:


Normalmente, quando o computador inicia ele tentará carregar 512 bytes
sector a partir de 1 de cabeça 0, cilindro0 de uma unidade de disquetes
a 0000H: 7C00h e atribuir-lhe o controlo.
Se isto falhar, uma unidade de disco rígido é utilizado.

Este tutorial cobre a inicialização através de disquetes, o mesmo princípio é
utilizado para arrancar a partir do disco rígido. Usando o dispositivo de disquetes tem várias vantagens:

  • Você pode manter o seu actual sistema operativo (Windows, DOS ...).

  • É fácil de modificá-boot record de uma unidade de disquetes.

Exemplo de uma inicialização simples programa:



; BOOT directiva para criar o arquivo:
# # MAKE_BOOT

; Boot registro é carregado no 0000:7 C00,
; Informá-lo compilador para tornar necessária
; Correcções:
ORG 7C00h

; Carregar mensagem em SI registrar endereço:
LEA SI, msg

; Teleimpressor função id:

MOV AH, 0Eh

print: MOV AL, [SI]
CMP AL, 0
JZ feito
INT 10h; imprimir usando teleimpressor.
INC SI
JMP imprimir

; Esperar por «qualquer tecla ':
feito: MOV AH, 0
INT 16h


; Loja mágica valor em 0040h: 0072h:
; 0000H - arranque a frio.
; 1234h - warm boot.
MOV AX, 0040h
Mov DS, AX
MOV w. [0072h], 0000H; arranque a frio.

JMP 0FFFFh: 0000H; reboot!


new_line EQU 13, 10

msg DB 'Olá Este é o meu primeiro programa de inicialização! "
DB new_line, "Prima qualquer tecla para reiniciar ', 0

Copie o exemplo acima para emu8086 fonte e editor
pressione [Compile e emular] botão.
Emulador carrega automaticamente. "Boot" arquivo para 0000H: 7C00h.

Você pode executá-la apenas como um programa regular, ou pode usar
Virtual Drive menu Escreva para 512 bytes em 7C00h ao Boot Sector
drive de disquete virtual (FLOPPY_0 arquivo no emulador da pasta).

Depois de escrever o seu programa de virtual unidade de disquetes, você pode selecionar
Boot Virtual Drive de Disquete de menu.


Se você estiver curioso, você pode escrever
o disquete virtual (FLOPPY_0) ou ". boot" arquivo para disquete e real
inicializar o computador a partir dele, eu recomendo
utilizando "RawWrite para Windows" a partir de:

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

(note que este não é compatível MS-DOS setor de inicialização
por isso é melhor usar disquete vazia e, embora se deva
IBM (MS-DOS) formatado).


". Boot" arquivos estão limitados a 512 bytes (tamanho do sector) e, portanto, se o seu
Operação do Sistema vai crescer com o tamanho que você deve usar este programa arranque
para carregar dados de outros sectores. Um bom exemplo de sistema operacional pode tiny
ser baixado aqui:

micro-os_loader.asm

micro-os_kernel.asm

emu8086.inc

Para criar extensões para o seu Sistema Operativo (mais de 512 bytes), você pode usar
". Bin" arquivos (selecione "BIN Modelo" em "Arquivo" -> "Novo" no menu).

Para escrever ". Bin"Arquivo virtual de disquete selecione" Escrever. Bin arquivo para o disquete ... "
de "Virtual Drive" no menu do emulador:

write_bin.gif

Você também pode usar isto para escrever. "Boot" arquivos.

Sector em:


cilindro: 0

sector: 1

cabeça: 0

é um sector de arranque!

A estrutura típica de disquete:

floppy.gif

  • Disquete tem 2 lados, e há 2 cabeças para cada lado (0 .. 1), estas
    cabeças estão se movendo acima do disco.

  • Cada lado tem 80 cilindros (0 .. 79).
  • Cada cilindro tem 18 setores (1 .. 18).
  • Cada setor tem 512 bytes.
  • Tamanho total do disco flexível é: 2 x 80 x 18 x 512 = 1474560 bytes.



Copyright © 2002 Alexander Popov emulação suave.

Todos os direitos reservados.

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

Average rating: