C & Docker & LINUX

리눅스의 부팅과정

로픽 2016. 3. 30. 23:52
300x250

리눅스의 부팅과정

리눅스의 부팅과정은 일반적인 os와 다른가?


* 일반적인 운영체제의 부팅과정

 - 전원을 넣으면, ROM BIOS에서 하드디스크의 첫번째 트랙의 첫 번째 섹터에 위치한 MBR에 들어있는 부트로더를 메모리로 올린다

    MBR(Master Boot Record)에 부팅 관련 프로그램을 실행시킨다


* 비슷하게 풀어서 이야기하면?

 - 메모리에 있던 ROM BIOS는 운영체제를 메모리에 적재시킬 수 있는 부트로더를 실행시킨다

 - 하드디스크 가장 밖의 첫번째 트랙에 첫번째 섹터에는 MBR이 존재한다

   **MBR - 부팅 관련 프로그램, 파티션 테이블, 운영체제에 대한 정보를 가지고 있다

 - MBR에 저장되어 있는 운영체제 정보를 통해서 부트섹터(커널)를 알아내고 제어권을 넘겨준다

 - 제어권을 넘겨받은 부트섹터는 운영체제를 실행하기 위해서 메모리에 적재를 한다


 ROM BIOS에 부트로더 실행 -> MBR에 부팅 관련 프로그램을 실행 -> 운영체제 부트섹터에 제어권을 넘김 -> 운영체제를 메모리에 넘겨 실행



리눅스의 경우도 일반적인 os와 같은 방식으로 부팅과정이 진행됩니다


ROM BIOS에서 부트로더 실행 -> 부트로더 GRUB -> MBR를 실행하여 부팅 관련 프로그램을 실행 ->  부트섹터에 제어권을 넘김 -> 커널이 메모리에 적재 -> 커널은 가장 먼저 init 프로세스 실행 -> 이후 자식프로세스를 실행하여 작동


* 커널은 가장 우선적으로 메모리에 적재되고 가장 먼저 init프로세스를 실행 시킨다


init프로세스는 초기화 작업을 실행,환경 설정 진행한다


프로세스 - 시스템에서 현재 실행중인 프로그램


부모 프로세스 - 프로세스가 다른 프로세스를 새로 실행시키면 실행 프로세스

자식 프로세스 - 새로 실행된 프로세스


PID(프로세스 아이디) - 프로세스의 자기 고유 번호를 식별하기 위한 번호


반응형