-
[OS기초] 커널 로드미사용/##컴퓨터 기본 2016. 2. 1. 22:36
2. Kernel Load
1. 개요
앞에서 간단한 프로그램 만들어서 MBR 영역에 넣은 뒤, 부팅을 해 보았다. 이번에는 좀 더 나아가서 커널을 만들어서 로드하는 작업을 해본다. 512byte 크기의 MBR영역에 방대한 커널을 넣기에는 공간이 부족하므로 MBR 밖의 영역을 사용하는데 커널이 로드되는 과정은 아래와 같다.
- MBR 영역의 코드가 메모리에 적재된다.
- MBR 에 있던 부트로더가 MBR 뒷 부분을 메모리로 적재한다.
- CPU가 KERNEL을 실행할 수 있도록 KERNEL로 점프한다.
2. 코드 작성
boot.asm
kernel.asm
3. 부트 이미지 만들기
nasm을 이용해서 boot.asm과 kernel.asm 을 각각 boot.bin, kernel.bin 으로 어셈블한다. 이어서 cmd 창을 이용해 방금 만든 boot.bin과 kernel.bin을 합치는 작업을 해야하는데 명령어는 다음과 같다.
copy boot.bin+kernel.bin /b kernel.img
명령 프롬프트의 copy 명령어를 이용한 방법이다. /b 옵션은 바이너리 형식으로 복사하며 결과 파일이 kernel.img 로 저장된다는 것을 의미한다.
kernel.img 를 디스크에 쓰고 부팅하면 위 사진과 같이 화면에 출력된다.
참고 : - 만들면서 배우는 OS 커널의 구조와 원리
'미사용 > ##컴퓨터 기본' 카테고리의 다른 글
[OS 기초] 코드 분석 (0) 2016.01.18 [OS 기초] OS 개발의 시작 (4) 2015.12.29 그리드 딜리버리란? [P2P를 사용하면 안되는 이유] (0) 2012.08.18 파워서플라이 용어설명 - 1 (0) 2012.04.22 모니터 용어 설명 - 모니터 구매시 확인 해야할 것 (4) 2012.01.18