728x90
반응형
부팅
PC가 켜진 후에 OS가 실행되기 전까지 수행되는 일련의 작업 과정 의미
- 프로세서 초기화 (멀티코어 관련 처리 포함)
- 메모리와 외부 디바이스 검사 및 초기화
- 부트로더를 메모리에 복사하기
- OS를 시작하는 과정
- BIOS (Basic Input / Output System) : 하드웨어와 관련된 부팅 작업
- POST (Power On Self Test) : BIOS가 수행하는 각종 테스트나 초기화
BIOS
- 메인보드에 포함된 펌웨어(Firmware)의 일종
- 입출력을 담당하는 작은 프로그램
- PC 메인보드에 롬(ROM)이나 플래시 메모리로 존재
- 전원이 켜지면서 동시에 프로세서가 가장 먼저 실행하는 코드
- 부팅 옵션 설정
- 시스템 전반적인 설정 (Configuration) 관리
- 설정 값으로 시스템을 초기화하여 OS 실행
- BIOS가 제공하는 기능은 인터럽트를 통해 사용할 수 있음
부트 로더 | 부트스트랩(Bootstrap) 코드
- BIOS에서 처음으로 제어를 넘겨받는 부분
- 플로피 디스크 or 하드 디스크 등 저장 매체의 가장 앞부분에 존재 -> 다양한 장치로 부팅 가능
- POST가 완료된 후 여러 장치를 검사하여 앞부분에 부트로더가 있는지 확인
- 부트 로더가 존재하는 경우 : 코드를 0x7C00 어드레스에 복사한 후 프로세서가 0x7C00부터 수행하도록 함
- 부트로더를 찾을 수 없는 경우 : Operating System Not Found 출력
부트로더가 디스크에서 메모리로 복사되어 실행되는 것 : BIOS에 의해 PC가 정상적으로 구동되었다는 것
OS를 메모리에 올려 실행할 준비를 하는 것과 마찬가지이다.
MBR(Master Boot Record)에 있는 작은 프로그램으로 저장 매체의 가장 첫번째 섹터에 존재한다.
* 섹터 (Sector) : 디스크를 구성하는 데이터의 단위 - 512byte
부트로더는 512byte여야하기 때문에 두가지의 기능만을 수행한다.
- OS의 이미지를 디스크에서 메모리로 복사
- 제어를 넘겨줌
Q ) 첫번째 섹터가 부트로더라는 것을 어떻게 알려주는가? or 어떻게 정상 부트로더인지 확인하는가?
A ) 읽어들인 512 바이트 중에 가장 마지막 2 바이트의 값이 0x55, 0xAA인지 확인
728x90
반응형
'CS > OS' 카테고리의 다른 글
운영 모드 (0) | 2025.01.12 |
---|---|
CPU Scheduling (1) | 2024.08.12 |
Limited Direct Execution (0) | 2024.04.28 |
Process (5) | 2024.04.28 |
Data Structures (Process Control Blocks) (0) | 2024.03.10 |