SE업무/OS

컴퓨터가 켜지는 과정 (리눅스)

에륜 2021. 6. 20. 03:56
반응형

컴퓨터에 전원을 넣고 리눅스 운영체제가 실행되는 과정을 정리해보겠다.

 

1.사람이 파워버튼을 누른다.

 

2. 파워서플라이에서 메인보드로 전원이 공급되며 메인보드가 펌웨어를 초기화 시키고 CPU를 동작시킨다.

 

3.CPU가 Bootstrap Processor(BSP)로 선택되고 이 BSP는 모든 BIOS Kernel의 초기화 코드를 동작시킨다.

 

4.BIOS CPU BIOS 코드를 실행함으로써 컴퓨터에 입력과 출력에 필요한 기능들이 제대로 활성화되어 있는지 테스트한 후 초기화하는 POST 과정을 거치게 된다.

예를 들면 CPU RAM, USB와 같은 주변 장치가 정상적인지 확인한다. 


5. POST가 끝난 후, 컴퓨터는 이제 어떤 운영체제를 선택할 지 결정한다.

BIOS 보조기억장치(SSD,HDD)의 첫 512바이트 섹터(Sector 0)를 읽는다. MBR(Master Boot Record)라 하며, BIOS는 이 MBR을 읽어 메모리 0x7c00 위치에 로드(load)하고 0x7c00 위치로 점프(Jump)하여 MBR에 있는 코드를 실행시킨다.

 

6.MBR에는 부트로더(Bootloader)를 포함하고 있으며, 이 부트로더는 부팅이 가능한 파티션을 찾음으로써 어떤 운영체제를 부팅할 지 선택한다

 

7. 리눅스의 경우에는 GRUB이 시작되며 부팅시 몇 가지 옵션을 선택할 수 있는 간단한 메뉴가 있다.

커널 이미지가 여러 개 설치되어 있는 경우 키보드를 사용하여 시스템을 부팅할 이미지를 선택할 수 있다.

기본적으로 최신 커널 이미지가 선택되어 부팅된다.

많은 시스템에서 /boot/grub/grub.conf 또는 /etc/grub.conf에서 GRUB 구성 파일을 확인가능하다.

 

8. 커널 실행단계
이 부팅 프로세스 단계에서 GRUB에서 선택한 커널은 먼저 grub.conf 파일에 지정된 루트 파일 시스템을 마운트한다.

그런 다음 /sbin/init 프로그램을 실행한다.
커널은 실제 파일 시스템이 마운트될 때까지 초기 RAM 디스크(initrd)를 사용하여 임시 루트 파일 시스템을 설정한다

9.init
시스템은 런 레벨 프로그램을 실행하고 Linux 실행 수준을 결정하기 위해 일반적으로 /etc/inittab에 있는 init 파일을 찾아서 결정한다.

최신 Linux는 systemmd를 사용하여 대신 실행 수준을 선택한다.

런레벨은 0~6까지 7단계가 있으며

0 : 시스템 종료

1: 시스템 복구모드

2: 네트워크 없는 유저모드( 사용안하고 3레벨과 동일하다고 취급)

3: 풀멀티 유저모드로 일반적이 모드이다.

4: 멀티유저모드로 최근에는 사용 안하고 3레벨과 동일

5: 그래픽모드로 GUI 모드라고 보면됨

6: 재부팅을 나타내는 모드 이걸로 기본 런레벨로하면 무한 재부팅한다.

6. 레벨 프로그램에 따른 스크립트 실행 합니다.
0 : /etc/rc0.d/
1 : /etc/rc1.d/
2 : /etc/rc2.d/ 
3 : /etc/rc3.d/ 
4 : /etc/rc4.d/
5 : /etc/rc5.d/
6 :  /etc/rc6.d/

 

초기화 스크립트를 넣어두면 좋다.

그럼이제 리눅스에서 로그인을 할 수 있게된다.




반응형