- 없움
- PC 전원이 들어 온 후 운영체제가 실행되기 전까지의 과정
- 프로세서 초기화, 메모리와 외부 디바이스 검사 및 초기화, 부트 로더 호출하고 OS 시작 등의 작업을 한다.
- 모든 것을 초기화 하고 OS를 로딩하는 과정
- 커널을 적대하여 컴퓨터에 시동을 거는 절차
- 컴퓨터 시스템 : 부트스트랩 프로그램 또느느 부트스트랩 로더로 알려져 있는 작은 크기의 코드가 커널을 찾는고, 그것을 주 메모리에 적재하고 수행한다
- PC와 같은 일부 컴퓨터 시스템 : 단순한 부트 스트랩 로더가 더욱 복잡한 부트 프로그램을 디스크로부터 적재하고, 이 부트프로그램이 다시 커널을 적재하는 두 단계 절차를 사용
- 최초의 부트스트랩(bootstrap) 프로그램은 ROM(read-only memory)에 위치
- RAM은 시스템 시작 시 알 수 없는 상태가 되기 때문에 RAM에 존재 할 수 없음
- 컴퓨터가 전원을 켜거나 재부팅 등의 리셋 사건을 받으면 명령 레지스터는 미리 지정된 메모리의 위치(ROM)를 가리키고 그 곳에서부터 시작
- 기계의 상태를 진단
- 진단 작업을 통과하면 부팅 절차를 진행
- CPU, 레지스터, 장치제어기, 주 메모리의 내용 등 시스템 전반에 걸쳐 초기화 된다.
- 그 후 부스트랩은 운영체제 시작
- 시스템들은 운영체제 전체를 ROM에 저장
- 운영체제를 ROM에 저장하는 것은 운영체제의 크기가 작거나 간단한 하드웨어를 지원하거나 험한 환경에서 실행 되는 시스템에 적합
- 부트스트랩 코드가 변경되면 ROM 하드웨어 칩을 교체해야 하기 떄문에
- EPROM을 사용하여 문제 해결
- EPROM은 쓰기가 가능하도록 만드는 명령어가 주어지기 전에는 읽기 전용 상태 유지
- 하드웨어와 소프트웨어의 중간적 특성을 가짐
- Firmware라고 부르기도 한다
- 문제점
- RAM에서 실행시킬 때보다 속도가 느림
- 몇몇 시스템은 운영체제를 firmware에 저장하고 실행할 떄는 RAM에 복사하여 실행
- 가격이 비싸서 용량이 크지 않다
- RAM에서 실행시킬 때보다 속도가 느림
- 부트스트랩 로더 -> firmware에 존재, 운영체제 -> 디스크에 존재
- 부트스트랩은 진단 절차를 수행하고 고정된 위치(ex. 블록 0)의 디스크
블록
하나를 읽어 메모리에 적재하고 그 위치로부터 실행 시킬수 있는 코드를 가진다 블록
== 부트블록- 부트 블록에 저장된 프로그램은 운영체제 전부를 메모리에 적재하고 실행을 시작할 수 있을 만큼 복잡할 수 있다.
- 일반적으로는 한 블록에 저장 되어야 하기 떄문에 나머지 부트 프로그램의 디스크 상 주소와 길이만 아록있는 간단한 코드이다.
- Linux 시스템을 위한오픈 소스 부트스트랩 프로그램의 한 예
- 디스크 상의 부트스트랩과 운영체제는 새 버전을 디스크에 기록함으로써 쉽게 변경할 수 있다.
- 부트 파티션을 가지고 있는 디스크
- 모든 부트 프로그램이 적재 되면 파일 시스템을 탐색하여 운영체제 커널을 찾아내고 메모리로 적재한 후 실행을 시작한다