
Power On
BIOS 펌웨어 동작
펌웨어(firmware)란 하드웨어의 기본적인 구동 및 제어를 담당하는 특수 용도의 소프트웨어로, ROM(read-only memory)에 기록된다.

/boot/grub/grub.cfg 경로에 설정파일이 위치한다./boot/vmlinuz-x.x.x-xx 에 위치해 있다./sbin/init 프로그램 실행SysVinit -> Upstart -> systemd 순서대로 사용되어졌고 최근에는 거의 systemd 를 사용한다./etc/inittab 설정파일을 읽어 Runlevel을 결정SysVinit, Upstart, systemd
SysVinit은 Runlevel이라고 하는 시스템 상태를 정의하고 모든 프로세스와 서비스를 Runlevel에 맞춰 실행한다. 초기의 init프로그램이다.
Upstart는SysVinit을 대체하기 위해 만들어졌다. Runlevel을 사용하는 대신 시스템 이벤트를 사용하여 서비스를 실행/중지했다.
systemd은 가장 최근의 init프로그램이다. Runlevel 대신 target이라는 개념을 사용하고 있다. 순차적으로 init을 수행한 SysVinit과 달리 병렬로 서비스를 실행하여 부트 시간을 단축할 수 있다.
Runlevel과 Target의 관계
각 runlevel은 특정 systemd-target과 매핑된다.
*로 표시된 부분은 default 설정이다.

Power On
UEFI 부트 매니저 작동 (efibootmgr)
/boot/efi/EFI/ubuntu 경로에 Boot loader를 가지고 있다.
grub.cfg : GRUB 설정파일grubx64.efi : Boot loader 파일/sbin/init 프로그램 실행systemd 가 실행되어 default target으로 지정된 graphical.target (Ubuntu 22.04.3 LTS 버전 기준) 에 정의된 서비스와 스크립트를 실행한다.default target
default target을 정의하는 파일은
/etc/systemd/system/default.target이다. 이 경로에 없다면/lib/systemd/system/default.target파일에서 default target정보를 확인할 수 있다. 아래와 같이 default target으로 설정된graphical.target을 가리키고 있다.
아래는graphical.target파일로, 어떤 의존성이 있는지, 어떤 서비스를 실행해야 하는지 정의한다.
https://velog.io/@markyang92/boot
https://blog.kubesimplify.com/linux-boot-process-simplified
https://www.computernetworkingnotes.com/linux-tutorials/differences-between-sysvinit-upstart-and-systemd.html
https://yonlog.tistory.com/59
https://www.baeldung.com/linux/boot-process