1. 전원이 들어오면 cpu는 ROM에 있는 BIOS 프로그램을 메모리에 올려 실행시킵니다.
2. BIOS(Basic Input Output System)은 POST(Power On Self Test)를 실행하여 필요 하드웨어에 이상이 없는지 체크합니다.
3. BIOS는 저장매체의 첫번째 섹터에 있는 MBR에 접근하여 부트 로더를 메모리에서 실행시킵니다.
4. 메모리에서는 부트 섹터에 접근하고 운영체제 이미지를 메모리에 올려 운영체제를 실행시킵니다.
1. 전원이 들어오면 cpu는 ROM에 있는 BIOS 프로그램을 메모리에 올려 실행시킵니다.
컴퓨터가 켜지면 power supply에 전원이 들어오고 메모리(ROM) 0번지 주소의 데이터를 읽습니다.
ROM-BIOS에서 BIOS프로그램이 메모리로 올라갑니다.
이는 메모리에 프로그램을 올려서 실행시키는 것이 속도가 빠르고 현재의 컴퓨터들은 폰 노이만 구조를 따르기 때문입니다.
부팅을 위해 컴퓨터의 전원스위치를 켜면, 제일 먼저 롬 바이오스라고 불리는 기본적인 프로그램이 동작하게 되는데, 이 프로그램은 전원이 꺼지더라도 기억할 수 있도록 ROM이라는 메모리에 기록되어 있습니다.
BIOS 프로그램은 2번의 과정을 실행시킵니다.
↓
2. BIOS(Basic Input Output System)은 POST(Power On Self Test)를 실행하여 필요 하드웨어에 이상이 없는지 체크합니다.
post는 필요 하드웨어가 정상적으로 동작하는지 테스트 하는 것입니다.
이때 발견되는 에러들은 치명적인 에러여서 컴퓨터는 부팅되지 않습니다.
이외에도 BIOS 프로그램은 아래의 것들을 실행합니다.
- 하드웨어 초기화
- 메모리와 cpu 레지스터를 초기화
- 저장매체의 MBR(Master Boot Record) 읽기(3번에서 설명)
↓
3. BIOS는 저장매체의 첫번째 섹터에 있는 MBR에 접근하여 부트 로더를 메모리에서 실행시킵니다.
MBR(Master Boot Record)에는 부트로더 라는 프로그램이 있습니다.
부트로더 에는 파티션들의 정보가 들어있는 파티션 테이블이 들어있습니다.
결국 부트로더 프로그램이 실행되면 파티션 테이블들이 메모리에 올라가지고 메모리는 이중에 운영체제 이미지가 있는 파티션에 접근이 가능합니다.
MBR은 운영체제가 어디에, 어떻게 위치해 있는지를 식별하여 컴퓨터의 주기억 장치에 적재될 수 있도록 하기 위한 정보로서 하드디스크나 디스크의 첫번째 섹터에 저장되어 있습니다.
MBR은 또한 '파티션 섹터' 또는 '마스터 파티션 테이블' 이라고도 불리는데, 그 이유는 하드디스크가 포맷될때 나누어 지는 각 파티션의 위치에 관한 정보를 가지고 있기 때문입니다.
그 외에도 MBR은 메모리에 적재될 운영체제가 저장되어 있는 파티션의 부트 섹터 레코드를 읽을 수 있는 프로그램을 포함하고 있는데, 부트섹터 레코드에는 다시 운영체제의 나머지 부분들을 메모리에 적재시키는 프로그램을 담고 있다.
↓
4. 메모리에서는 부트 섹터에 접근하고 운영체제 이미지를 메모리에 올려 운영체제를 실행시킵니다.
이제 메모리는 운영체제가 들어있는 파티션을 알게되었고 메인파티션에 있는 부트 섹터에 들어있는 부트코드를 읽습니다.
부트코드는 메모리에서 실행이 되어지고 실행된 부트코드는 운영체제의 이미지를 메모리에 올려 운영체제가 실행되어 집니다.
헷갈릴 만한 용어 정리
부트 로더 : MBR에 위치되어 있는 프로그램으로 파티션들에 대한 정보를 제공해줍니다.
부트 섹터 : 메인파티션에 위치해 있는 것으로 부팅프로그램을 담을수 있는 기억장치의 섹터를 말한다
부트 코드 : 운영체제의 실행 이미지를 메모리에 올려주는 코드
- 잘못된 정보가 있으면 알려주세요. 빠른 수정 반영할게요!!
https://neos518.tistory.com/113
https://velog.io/@hyun0310woo/13-%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C-%EB%B6%80%ED%8C%85
'CS' 카테고리의 다른 글
디자인 패턴/싱글턴 패턴 🆘 (0) | 2022.04.20 |
---|---|
멀티 프로세스, 싱글 스레드, 멀티 스레드 🔥 (0) | 2022.03.30 |
프로세스, 스레드 🔥 (0) | 2022.03.30 |
CQS 원칙 - Command Query Separation (0) | 2022.03.29 |