본문 바로가기
리눅스/리눅스마스터1급

[리눅스마스터1급] 핵심 내용 정리 : 부팅의 절차 & (systemd,init)

by 혼자왔서연 2023. 9. 3.
반응형

 

시스템 시작 및 하드웨어 초기화  전원 투입 및 POST

리눅스 OS 부팅은 컴퓨터의 전원이 켜짐과 동시에 시작됩니다(ROM 영역에 저장된 프로그램으로 우선순위 첫 번째로 실행). 이때 컴퓨터는 POST(Post Power-On Self-Test) 과정을 거칩니다. 

 

POST(Post Power-On Self-Test) 란?
POST는 하드웨어 및 기타 시스템 구성 요소의 정상 작동 여부를 확인하는 단계입니다. 이 과정은 BIOS(Basic Input/Output System)에서 관리되며, 모든 하드웨어가 올바르게 작동하는지 확인합니다.

 

#아래에 보시는 그림으 post입니다 : ) 시험준비용으로는 이런 기능정도만 이해하시면 될 것 같아요

 

POST 동작 실행 -  위키디피아 public domain 저작권 사용허가된 사진

 

부트 로더: GRUB 또는 LILO

다음으로, 부트 로더(Boot Loader)가 실행됩니다. 리눅스에서 가장 일반적으로 사용되는 부트 로더는 GRUB(Grand Unified Bootloader) 또는 LILO(LInux LOader)입니다. 이 부트 로더는 어떤 운영체제를 부팅할 것인지 선택하는 역할을 합니다.

 

이전글에 GRUB 화면과 LILO 화면, 각 부트 로더에 특징들 숙지를 못하셨다면 아래링크로 확인해 주세요

2023.09.02 - [리눅스/리눅스마스터 1급] - [리눅스마스터 1급] 핵심 내용 정리:부트 매니저 (boot manager)에 모든 것

커널 로드: 부팅 커널 선택

부트 로더가 실행되면 사용자는 어떤 리눅스 커널을 부팅할 것인지 선택할 수 있습니다. 이때 사용자가 선택한 커널은 메모리로 로드됩니다. GRUB에서 부팅을 원하는 커널을 선택한후에는 GRUB 에서 제어권을 이어받고 /sbin/init의 프로그램을 실행합니다. Centos7에서는 씸볼릭 링크되어 있는 systemd에 프로세스를 실행하는데요.

GRUB2  커널 선택 장면

 

Init 프로세스 시작

커널이 메모리로 로드되면 Init 프로세스가 시작됩니다. Init 프로세스는 리눅스 시스템의 부팅 및 초기화를 담당하는 핵심 프로세스입니다. 이 단계에서 Init 프로세스는 다음과 같은 작업을 수행합니다:

 

  1. SysV Init 또는 systemd 초기화: 시스템의 초기화 시스템인 SysV Init 또는 systemd가 시작됩니다. 시스템의 부팅 레벨을 설정하고 필요한 시스템 서비스를 시작합니다.
  2. 파일 시스템 마운트: 루트 파일 시스템 및 다른 필수 파일 시스템이 마운트 됩니다.
  3. 시스템 서비스 시작: 필요한 시스템 서비스 및 데몬이 시작되며, 시스템이 사용 가능한 상태가 됩니다.
  4. 로그인 프롬프트 또는 GUI 표시: 사용자에게 로그인 프롬프트나 그래픽 사용자 인터페이스(GUI)가 표시됩니다.

 

우리가 평소에 가상머신을 켜거나, 서버장비를 reboot 했을 때 보는 장면이 바로 커널로드가 되면서 /sbin/init의 프로그램이 실행되는 거라고 할 수 있어요.

 

GRUB 로부터 제어권을 받은 후 커널 로드 그후 명령어 실행되어지는 장면

init 은 root 권한 명령어로도 사용가능합니다

#아래처럼 사용가능합니다
init 0
init 1 
init 2 
init 3

 

 

  1. Runlevel 0 (Poweroff):
    • 시스템 종료(파워 오프)를 위한 레벨입니다.
    • 시스템을 안전하게 종료하고 전원을 끌 때 실행됩니다.
  2. Runlevel 1 (Single-user mode):
    • 단일 사용자 모드 레벨입니다.
    • 관리자가 시스템 복구 또는 유지 관리 작업을 수행할 때 사용됩니다. 네트워크 서비스와 다중 사용자 서비스는 비활성화됩니다.
  3. Runlevel 2 (Multi-user mode without networking):
    • 네트워킹을 비활성화한 다중 사용자 모드 레벨입니다.
    • 이 레벨에서는 네트워크 서비스가 비활성화되며, 다중 사용자 모드로 전환됩니다.
  4. Runlevel 3 (Multi-user mode with networking):
    • 네트워크를 활성화한 다중 사용자 모드 레벨입니다.
    • 이 레벨에서는 다중 사용자 모드로 전환되며 네트워크 서비스가 활성화됩니다. 주로 서버 환경에서 사용됩니다.
  5. Runlevel 4 (Not used):
    • 이 레벨은 사용되지 않습니다. 특정 시스템에서 사용자 정의 레벨로 설정할 수 있습니다.
  6. Runlevel 5 (Graphical multi-user mode):
    • 그래픽 환경을 지원하는 다중 사용자 모드 레벨입니다.
    • X 윈도 시스템과 같은 그래픽 환경이 활성화됩니다. 주로 데스크톱 환경에서 사용됩니다.
  7. Runlevel 6 (Reboot):
    • 시스템 재부팅을 위한 레벨입니다.
    • 시스템을 재부팅하고 다시 시작할 때 실행됩니다.

각 init 레벨은 특정한 운영 모드에서 필요한 서비스와 데몬을 시작하거나 중지하는 역할을 합니다. 시스템 운영 및 유지 관리 목적에 따라 init 레벨을 변경하고 관련 서비스를 관리할 수 있습니다.

 

Systemd(centos 7)

 

systemd는 리눅스 시스템 초기화 및 관리 프로세스로, 다른 init 시스템(예: SysV init)의 대체물로 도입되었으며 서비스 관리, 디바이스 관리, 로깅, 프로세스 관리 등 다양한 시스템 관리 작업을 수행하는 데 사용됩니다. systemd의 주요 특징과 init 0 ~ 5와의 비교는 다음과 같습니다:

 

systemd의 주요 특징:

 

  1. 병렬 부팅: systemd는 병렬 부팅을 지원하여 여러 서비스 및 유닛을 병렬로 시작하므로 시스템 부팅 시간을 단축시킵니다.
  2. 유닛 기반 관리: systemd는 서비스, 타깃, 디바이스, 소켓, 타이머 등의 다양한 유닛 유형을 사용하여 시스템 구성을 관리합니다. 각 유닛은 특정 작업 또는 서비스를 나타냅니다.
  3. 로그 및 저널링: systemd는 journald 서비스를 통해 전체 시스템 로그를 수집하고 관리합니다. 이를 통해 로그 파일의 중복을 방지하고 로그 검색 및 분석이 향상됩니다.
  4. 타이머와 스케줄링: systemd는 타이머 유닛을 사용하여 주기적인 작업을 예약하고 실행할 수 있습니다.
  5. 저전력 관리: systemd는 저전력 모드를 관리하고 에너지 소비를 최적화하는 기능을 제공합니다.

init 0 ~ 5와 systemd 비교:

 

  1. init 0 (Poweroff) vs. systemd poweroff.target:
    • init 0는 시스템 종료를 위한 레벨이며, systemd의 poweroff.target은 동일한 역할을 합니다.
  2. init 1 (Single-user mode) vs. systemd rescue.target:
    • init 1은 단일 사용자 모드로, systemd의 rescue.target도 이와 유사한 역할을 합니다. 단일 사용자 모드에서 시스템 복구 및 유지 관리 작업을 수행합니다.
  3. init 2 (Multi-user mode without networking) vs. systemd multi-user.target:
    • init 2는 네트워킹을 비활성화한 다중 사용자 모드이며, systemd의 multi-user.target은 비슷한 역할을 합니다.
  4. init 3 (Multi-user mode with networking) vs. systemd multi-user.target:
    • init 3은 네트워크 활성화된 다중 사용자 모드이며, systemd의 multi-user.target도 동일한 역할을 합니다.
  5. init 4 (Not used):
    • init 4는 사용되지 않는 레벨입니다. 그러나 systemd에서는 사용자 정의 타깃을 정의할 수 있습니다.
  6. init 5 (Graphical multi-user mode) vs. systemd graphical.target:
    • init 5는 그래픽 환경을 지원하는 다중 사용자 모드로, systemd의 graphical.target은 그래픽 환경을 활성화합니다.
#아래처럼 target 단위로 조절
systemctl graphical.target

#좀 더 systemd에 대해서 알고 싶다면 아래 링크를 클릭해 주세요

2023.08.19 - [리눅스/리눅스마스터 1급] - [리눅스마스터 1급] - systemd의 개요 및 systemctl 명령

사용자 로그인 및 사용

마지막으로, 사용자는 시스템에 로그인하고 원하는 작업을 수행할 수 있습니다. 리눅스 OS는 다양한 명령어와 도구를 제공하여 사용자가 시스템을 제어하고 관리할 수 있도록 합니다.

 

로그인

#이전글

2023.09.02 - [리눅스/리눅스마스터1급] - [리눅스마스터1급] 핵심 내용 정리:부트 매니저 (boot manager) 에 모든것

 

[리눅스마스터1급] 핵심 내용 정리:부트 매니저 (boot manager) 에 모든것

리눅스 운영체제를 사용하는 많은 사용자들에게 리눅스 부트 매니저는 익숙한 이름일 것입니다. 리눅스 부트 매니저는 운영체제를 부팅하고 관리하는 핵심 도구 중 하나로, 그중에서도 가장 중

ubuntu2304.tistory.com

#다음글

2023.09.05 - [리눅스/리눅스마스터1급] - [리눅스마스터1급] 핵심 내용 정리 : 파일 시스템 구조

 

[리눅스마스터1급] 핵심 내용 정리 : 파일 시스템 구조

리눅스마스터1급 필기 내용 중 핵심 파일 시스템 구조에 대해서 알아보겠습니다.(리눅스마스터 1급 필기 (실기 업로드 예정)를 위한 이론을 정리한 문서입니다). 시험 과목 순서에 따라 업로드하

ubuntu2304.tistory.com

 

반응형

Animated Rainbow Nyan Cat