[CaOS 64] 2장 부트로더
부트로더의 특징
1. 하드 디스크 (플로피일때는 플로피 디스크) 의 MBR (Master Boot Record 부트섹터라고도 함) 에 저장
2. 컴퓨터가 부팅된 직후 빈 메모리에 운영체제에 필요한 정보를 메모리에 적재하는 일
부트로더의 구분
1. 1차 부트로더(부트스트랩) : 부트 섹터에 저장된 부트로더 , 기본적인 일만 처리하고 2차 부트로더를 부름. (512Byte 보다 작아야 함 . 단순하게 )
2. 2차 부트로더 (커널 로더) : 2차 부트로더의 이미지와 커널 이미지를 메모리에 로드하는 일
부트로더 더 자세히 ?
바이오스가 자동으로 부팅 장치의 첫 섹터 (부트섹터)를 메모리에 저장해준다.
바이오스에서 어는 부트로더를 찾을 것인지 선택한다. (Windows 설치 시 많이 해봤을 듯.. CD 부팅 우선 할때 ). 부트로더를 메모리에 저장한 후. IP 레지스터의 값을 부트로더의 시작으로 설정. 부트로더가 실행.
0xAA55
바이오스가 부트섹터로 인식하기 위한 코드 (이 값만 있어도 부트섹터로 인식)
times 510-($-$$) db 0
부트로더 끝에 510 까지 0 으로 채움 2 는 0xAA55 때문
부트로더 크기 - (시작 – 끝) 를 0 으로 채워라 .
세그먼트와 오프셋
세그먼트에 16을 곱하여 오프셋을 더함 (REAL 모드 일 떄)
ex) 0x0700:0x0c00 ==> 0x07000 + 0x0c00 = 0x07c00