컬쥐네 다락방
리눅스 | 부트 프로세스 본문
1단계 시스템 전원 on
2단계 BIOS 프로그램의 실행
POST (Power On Selt Test) : 부팅이 시작되면 컴퓨터는 가장 먼저 자체 진단 기능을 통해 컴퓨터의 이상 유무를 검사
컴퓨터에 전원이 들어오면 전류는 CPU로 흘러 들어가고 CPU는 BIOS 프로그램을 부른다.
BIOS 프로그램은 CPU를 시작으로 CMOS를 검사하고, 메모리 테스트 후 용량을 확인한다.
그래픽 카드, 키보드 등 각종 장치의 이상 유무를 검사하고 초기화 하는 단계.
3단계 부트 매체의 검색
POST 과정에서 하드웨어 검사가 무사히 완료되면 검색된 부팅 매체 (HDD,ODD 등) 중 CMOS에 설정된 순서대로 부팅을 시도한다.
MRB (Master Boot Record)에 존재하는 부트로더 GRUB를 읽어 부트 로더가 메모리에 적재되고, 시스템 제어권을 부트로더가 갖게 된다.
4단계 부트 로더의 실행
부트 로더는 kernel을 메모리에 올려놓는다. kernel 이미지를 불러들이고 시스템의 제어권을 넘겨온다.
5단계 커널 부트 이미지 적재
GRUB의 부트 메뉴에서 kernel을 선택하면 kernel 이미지가 동작한다.
kernel 이미지는 압축되어 있기 때문에 PID 0번인 swapper 프로세스를 호출한다
swapper 프로세스는 kernel 이미지를 압축해제하고 kernel이 사용할 각 장치를 초기화한다.
6단계 루트 파일 시스템 마운트
하드웨어의 검색 후 커널은 루트(/) 파일 시스템을 마운트한다.
마운트는 안전하게 점검될 수 있도록 읽기 전용으로 마운트한다. 이후 읽기/쓰기로 마운트가 이뤄진다.
7단계 systemd 프로세스 실행
모든 프로세스의 부모 역할을 하는 PID 1번인 systemd 프로세스를 실행한다.
systemd 프로세스는 사용자가 시스템을 사용할 수 있도록 시스템 초기화를 진행한다.
기본 시스템 초기화 스크립트인 local-fs.target을 통해 파일 시스템 점검
systemd = > default.target (grphical.tearget or multi-user.target )실행
이후 sysinit.target을 시작으로 필요한 스크립트를 통해 커널 모듈의 메모리 적재, 스왑 파티션 초기화, 네트워크 초기화, 시비스 프로세스 관리, 가상 콘솔 접속 관리, 실행 레벨 관리를 실행한다.
graphical.target -> GUI 환경 구성. 그래픽 모드에서 사용할 수 있는 서비스같은 유닛들이 실행
multi-user.target => CLI 환경 구성. 기본적으로 사용되는 서비스 유닛들이 실행(네트워크, 웹 서비스, rsyslog 서비스 등)
basic.target => SELINUX, 네트워크 환경 구성. 보안 서비스 (SELinux), microcode 등
sysinit.target => 마운트 안정화
local-fs.target => /etc/fstab에 등록된 마운트 작업
rescue.target => single mode root/ 비번이 필요. 네트워크 사용 불가능, /read/wirte 읽기쓰기모드
emergency.target => single mod root/ 비밀번호 불필요. 네트워크 불가능 읽기 모드
'클라우드 > 리눅스' 카테고리의 다른 글
리눅스 | 네트워크 설정 feat. nmcli (0) | 2022.03.04 |
---|---|
리눅스 | 소프트웨어 추가 / 삭제 (RPM, YUM) (0) | 2022.03.03 |
리눅스 | 서비스 관리 / systemd , log (0) | 2022.03.02 |
리눅스 | PV, VG, LV (0) | 2022.02.25 |
리눅스 | 시스템 디스크 / 파티션, 스왑 메모리 (0) | 2022.02.24 |