Security/System Security

[System Security] 3.5 80x86 동작 모드와 부팅

잉숭 2021. 4. 4. 20:40

x86 동작 모드

Real Mode -> Protected Mode

부팅 과정

1. ROM BIOS에서 부팅 가능한 매체 검색

2. 디스크의 첫번째 섹터에 저장된 부트섹터(MBR)를 RAM의 0x7C00에 로딩

3. BIOS를 메모리의 0xFFFF0주소에 로딩

4. 커널 이미지 로딩

5. Protected Mode 전환

6. Paging Mode 전환

7. idle 및 init 프로세스의 실행

 

Real Mode Address Resolution

- Real Mode의 16비트 메모리 CS:IP를 세 바이트 겹치게 계산

 

커널 이미지 로딩

- BIOS가 INT 0x19를 통해 부트섹터를 0x7C00번지에 로딩

- 부트섹터가 0x90000번지에 자신의 코드를 복사

- INT 0x13을 통해 셋업코드를 0x90200번지에 로딩

- 셋업코드(부트로더)가 INT 0x13을 통해 커널 이미지(vmlinuz)를 0x1000000번지에 로딩

 

Paging Mode 전환

- 페이지 테이블과 디렉토리를 설정한 후 CR0 레지스터의 PG=1로 설정

- 이후 실제 Physical 1GB 메모리가 Virtual Memory의 Kernal Space로 매핑