[CS] 부팅 프로세스

최민길(Gale)·2023년 8월 4일
1

CS 탐구

목록 보기
6/13

안녕하세요 오늘은 부팅 프로세스에 대해 알아보는 시간을 갖도록 하겠습니다.

부팅이란 컴퓨터의 전원이 켜진 후 사용자가 시스템을 사용할 수 있도록 운영체제를 기동하는 절차를 말합니다. 부팅은 크게 시스템 시작 및 하드웨어 초기화 - 1단계 부트 로더 - 1.5단계 부트 로더 - 2단계 부트 로더 - 커널 - init 시스템 - 사용자 프롬프트으로 동작합니다.

가장 먼저 시스템 시작 및 하드웨어 초기화 단게에서는 BIOS가 실행되며 하드웨어 인식과 각 장치들의 사용을 위한 준비를 수행합니다. BIOS는 ROM 영역에 저장된 프로그램으로 컴퓨터의 기본 하드웨어를 초기화하고 운영체제를 부팅하는 역할을 합니다.

부트 로더(=부트 매니저)는 보조기억장치에 위치한 운영체제를 주기억장치로 로드하기 위한 프로그램입니다. BIOS가 실행되면 1단계 부트 로더에서 MBR에 적재된 부트 로더 코드를 통해 IPL이 실행됩니다. MBR(Master Boot Record)이란 부트 섹터, 즉 디스크의 첫 번째 섹터(0번 섹터)에 위치하는 부트 로더로 0번 섹터가 512바이트밖에 안되기 때문에 파일 시스템을 해석할 수 있는 기능을 가진 1.5단계 부트 로더로 넘겨주는 역할을 담당합니다. IPL이란 운영 체제의 부트 로더를 찾아서 실행하는 역할을 담당하며, IPL에서 1.5단계 부트 로더로 이동합니다.

1.5단계 부트로더에서는 파일 시스템 해석 역할을 담당합니다. 0번 섹터 이후 다음 파티션 이전의 공간(약 62개의 섹터 공간)에 위치하여 여유 공간이 더 많기 때문에 ext, fat 등의 파일 시스템 드라이버를 포함합니다.

2단계 부트로더는 파일 시스템 상에 위치하여 운영체제를 선택하면 해당 운영체제를 위한 커널을 메모리에 로드하고 커널에 제어권을 전달하는 역할을 담당합니다.

커널은 하드웨어와 소프트웨어를 관장하는 핵심 모듈로 한 번 메모리에 로드되면 시스템이 리부팅되거나 종료할때까지 메모리에 상주합니다.

init 시스템은 OS별로 SysV INIT 시스템(Cent OS 6), systemd(Cent OS 7)이 존재합니다. init 시스템은 부팅을 위해 필요한 초기화 작업을 수행합니다.

SysV INIT 시스템은 시스템 부팅과 종료, 데몬 관리 등을 담당하며, 런레벨(시스템 상태)에 따라 서비스를 시작하고 종료합니다.

systemd의 경우 기존 SysV INIT 시스템보다 더 빠르고 효율적인 init 시스템으로 기존 init 시스템과 달리 최소한의 필요한 서비스로만 시작되며 부팅 시 시스템의 서비스들을 병렬로 시작할 수 있는 기능을 제공하여 부팅 시간을 단축합니다. 또한 실제 필요한 시점에서 서비스를 실행하는 on-demand 방식을 제공합니다. systemd는 유닛이라는 서비스의 동작, 의존성, 환경 설정 등을 관리하는 방법을 정의하는 파일로 구성되며 이를 통해 서비스, 타이머, 소켓 등과 같은 시스템 컴포넌트들을 정의합니다.

init 시스템이 수행된 후 X-윈도우 또는 터미널을 통해 입력받을 준비를 완료합니다.

profile
저는 상황에 맞는 최적의 솔루션을 깊고 정확한 개념의 이해를 통한 다양한 방식으로 해결해오면서 지난 3년 동안 신규 서비스를 20만 회원 서비스로 성장시킨 Software Developer 최민길입니다.

0개의 댓글