본문 바로가기

Security/Kernel & OS

[Operation System] 2. OS 만들기 - BootStrap - 1

1. Pre..

이번엔 간단하게 아무것도 안하는 부트로더를 제작해 봅시다.

  - 플로피디스크에 프로그램을 담아 부팅시켜보자.

 

- NASM 컴파일 : nasm -f bin -o boot.bin boot.asm )

 

- VMware 로 .BIN 파일을 플로피 디스크로 부팅시키기

 

2. Process

- CPU가 BIOS 롬에 새겨진 프로그램 실행

- 현재 사용하는 마더보드 상태, 주변 접속장치등 체크

- 디스크의 첫 512바이트 (MBR 영역 0번 트랙 1번 섹터)를 램으로 읽어들여 ran : 0x7c00 번지에 로드

- 프로그램 실행

 

 

 

3. Code

hang:
    jmp hang
                                    ; 중간에 510 byte 사용 가능

times 510 - ($-$$) db 0   ; $ 자신의 현재 위치 - $$ 시작위치  
                                   ; 나머진는 0으로 채워라
dw 0AA55h                    ; dw = 2바이트 ,
                                   ; 0AA55h 부트로더의 마지막 표시

4. Run

 

5. Disassem

00000000  EBFE              jmp short 0x0
00000002  0000              add [bx+si],al
00000004  0000              add [bx+si],al

.......
000001FA  0000              add [bx+si],al
000001FC  0000              add [bx+si],al
000001FE  55                push bp
000001FF  AA                stosb