Search
Duplicate
🖥️

리눅스의 부팅과 종료

간단소개
팔만코딩경 컨트리뷰터
ContributorNotionAccount
주제 / 분류
Linux
Scrap
태그
9 more properties
CentOS 리눅스 시스템 & 네트워크

A. 리눅스 시스템의 부팅

리눅스 시스템의 부팅 과정은 PC부팅리눅스 부팅으로 나뉜다.
전원 on → 바이오스 단계부트 로더 단계 → 커널 초기화 단계 → systemd 서비스 단계 → 로그인
1.
바이오스 단계 : 하드웨어를 검사하고 부팅 장치를 선택한 다음, MBR(부팅 디스크의 첫 섹터 512B)을 로딩해 부트 로더를 로드한다.
2.
부트 로더 단계: 운영체제를 선택할 수 있는 메뉴/ 커널을 메모리에 로딩하는 역활을 수행한다
3.
커널 초기화 단계: 참고로 커널은 /boot dir아래에 존재한다. 하드웨어들을 상태를 점검하고, 프로세스와 스레드를 생성한다. 메모리와 관련된 작업을 하며 일반 프로세스들과 대괄호([] /ex. 커널 스레드 데몬)를 통해 구분되어 있다
4.
systemd 단계 : 기존의 init 프로세스 대신 기능하는 프로세스로 부트 스플래시일 때 alt+d를 누르면 메세지를 출력해서 볼 수 있다.
마지막으로 위의 단계에서 데몬을 모두 실행하고 로그인 시스템인 GDM을 동작시킨다.

B. systemd 서비스

프로세스와 서비스의 관리자. 서비스 데몬을 시작한다.
init 프로세스 : 모든 프로세스의 조상. init 프로세스와 관련된 설정 파일은 /etc/inittab이다.
런레벨: init 프로세스가 사용한 시스템의 상태를 일곱가지로 정의한 것. 각 상태에 때라 셸 스크립트를 실행했다.
systemd의 특징
1) 셧다운 전에 사용자의 셰션의 안전한 종료 가능
2) 마운트 제어가 가능하다.
3) fsck제어가 가능하다
4) 서비스에 시그널을 전달할 수 있다.
…etc)
유닛 : systemd가 전체 시스템을 시작하고 관리하는 게 사용되는 구성 요소. systemd는 관리 대상 이름은 ‘서비스명.유닛종류’의 형태로 관리한다.
systemctl : -a, -t, start, stop, reload, restart, status, enable, disable, is-active, is-enable, isolate, kill
systemctl과 런레벨:
각 런레벨에 해당하는 target유닛. 이 파일들은 /user/lib/systemtd/system에 있다.
런레벨
target파일(심볼릭 링크)
target 원본 파일
0
runlevel0.target
powertoff.target
1
runlevel1.target
rescue.target
2
runlevel2.target
multi-user.target
3
runlevel3.target
multi-user.target
4
runlevel4.target
multi-user.target
5
runlevel5.target
graphical.target
6
runlevel6.target
reboot.target
현재 target과 런레벨 확인하기 : systemctl get-default/ runlevel
기본 target 설정하기 :
ls -l /etc/systemtd/system → default.target이 현재 target을 가리키고 있는 걸 알 수 있음
systemctl set-default <name of target>.target
target 변경하기
systemctl isolate runlevelX/multi-user
init 0~6 (init은 systemtd의 심볼릭 링크), telinit(systemctl의 심볼릭 링크)
단일 사용자 모드로 전환할 때는 다른 사용자들은 로그아웃시켜야 한다.

C. 리눅스 시스템의 종료

리눅스를 종료하는 방법: (shutdown, halt, poweroff, reboot) 명령 사용, 런레벨을 0 또는 6으로 변경, 전원 끄기.
shutdown 명령
사용자들에게 메세지만 전달 : shutdown -k
즉시 종료 : shutdown -h now
메세지 보내고 종료 : shutdwon -h + 2 “message”
재시작 : shutdown -r +3
명령 취소 : shutdown -c
런레벨 변경 : init 0 / systemctl isolate poweroff.target / systemctl isloate runlevel6

D. 데몬 프로세스

데몬은 백그라운드에서 동작하면서 특정한 서비스를 제공하는 프로세서이다.
데몬의 동작 방식 : 독자형, 슈퍼데몬
독자형과 슈퍼데몬의 차이 : 독자형은 시스템의 백그라운드에서 항상 동작하는 것이고 슈퍼데몬에 의한 호출은 말 그대로 슈퍼데몬에 의한 호출되어 실행된다. 전자가 후자보다 빠르지만 자원 낭비의 우려가 있다.
슈퍼 데몬 : 데몬들을 관리하는 데몬으로 슈퍼 데몬은 네트워크와 관련된 데몬만 관리한다.
데몬의 조상 : systemtd와 커널 스레드 데몬
systemtd : 대부분 모든 프로세스들의 조상
커널 스레드 데몬 : 커널의 일부분을 프로세스처럼 관리한다. 대괄호에 있는 프로세스들이다.
…이후부터 ppt 참조