우리는 운영체제의 구동 전, 어떤 일들이 일어나는 지 알아둘 필요가 있습니다. 컴퓨터 부팅이 어떤 매커니즘을 통해 구동되는지 알고 있으면 시스템에 이슈가 발생 했을 때, 하드웨어 문제인지 os문제인지 시스템 소프트웨어의 문제인지 판단을 할 수 있을 것입니다.
부트스트랩이란?
부트스트랩(Bootstrap, 부팅)은 PC의 전원버튼을 누른 직후부터, 운영체제가 메모리에서 동작하기 시작할 때까지의 모든 과정을 말합니다.
[ 부팅 과정 ]
- 사용자가 PC의 전원 버튼을 누르면 메인보드에 전력 공급
- ROM or EEPROM(비휘발성 메모리)에 저장된 BIOS루틴 시작
- BIOS는 셀프테스트를 통해 주변 하드웨어를 체크하고 MBR(master boot record)에게 부팅정보 요청
- MBR에 존재하는 부팅정보를 읽어오는 부트스트랩 실행
- RAM(휘발성 메모리)에 Bootloader를 적재하고 디스크에 있는 os(커널)코드를 복사하여 메모리에 적재
- os는 사용자 초기화를 위한 명령어를 수행하고, 사용자의 입력을 받아서 이벤트 처리
- 부팅 완료
[ 컴퓨터 시스템 동작 전제 ]
컴퓨터 시스템의 운영을 보면 장치 컨트롤러는 시스템 버스에 의해 cpu와 계속해서 신호를 보내고 있습니다. 이러한 동작이 되는 이유는 컴퓨터 시스템 동작에 있어 몇가지 전제하고 있는 것이 있기 때문입니다.
- 입출력 장치, cpu는 동시 실행가능하다.
- 각 장치 컨트롤러는 특정 디바이스 유형을 담당하게 됩니다. (디스크 컨트롤러는 디스크 담당, usb컨트롤러는 마우스,키보드,프린터 담당, 그래픽어댑터는 모니터를 담당)
- cpu는 메인 메모리와 로컬 버퍼간의 데이터를 이동해주는 역할을 합니다.
- 입출력은 장치컨트롤러의 로컬 버퍼로 전달됩니다.
- 장치 컨트롤러는 작업이 완료되면 인터럽트를 발생시켜 cpu에 완료 알림을 보냅니다