Linux / / 2024. 12. 3. 14:44

Linux의 init 프로세스와 Namespace

Linux의 init 프로세스와 Namespace

1. init 프로세스란?

init 프로세스는 리눅스 시스템에서 최초로 실행되는 프로세스로, PID 1을 가지며 다른 모든 프로세스를 관리하는 역할을 합니다.
시스템이 부팅될 때 커널에 의해 처음으로 실행되며, 시스템의 런타임 환경을 설정하고 서비스와 데몬을 실행합니다.

주요 역할

  • 시스템 초기화: 파일 시스템 마운트, 스왑 공간 활성화.
  • 서비스 시작: 네트워크, 데이터베이스, 로그 관리 등 데몬 시작.
  • 프로세스 관리: 고아 프로세스를 수거하고 종료된 자식 프로세스의 상태를 처리.

init 프로세스의 종류

리눅스 배포판마다 사용되는 init 시스템이 다를 수 있습니다:

  1. System V init (sysvinit):
    • 전통적인 init 시스템.
    • /etc/inittab 파일로 런레벨과 서비스를 설정.
  2. Systemd:
    • 현대적인 init 시스템으로, 병렬 서비스 시작과 종속성 관리 지원.
    • 대부분의 최신 배포판에서 기본으로 사용.
  3. Upstart:
    • Ubuntu에서 사용되던 이벤트 기반 init 시스템.

init 상태 확인 명령어

  1. init 프로세스 확인:
  2. ps -p 1
  3. Systemd 상태 확인:
  4. systemctl

2. Namespace란?

Namespace는 리눅스 커널의 격리 기술로, 프로세스가 자원의 독립된 인스턴스를 보도록 설정하는 기능입니다.
컨테이너 기술(예: Docker, Kubernetes)에서 자주 사용되며, 프로세스 간의 자원 충돌을 방지합니다.

주요 특징

  • 자원 격리: 프로세스가 다른 프로세스와 자원을 공유하지 않고 독립된 환경에서 실행.
  • 컨테이너 기반: 컨테이너 기술의 핵심 기능 중 하나.
  • 유연성: 프로세스에만 영향을 미치므로 시스템 전체에는 영향을 주지 않음.

Namespace의 종류

  1. PID Namespace:
    • 프로세스 ID를 격리.
    • 각 Namespace에서 독립된 PID 트리를 가짐.
  2. Mount Namespace:
    • 파일 시스템의 마운트를 격리.
    • 서로 다른 프로세스가 별도의 마운트된 디렉토리를 볼 수 있음.
  3. Net Namespace:
    • 네트워크 인터페이스를 격리.
    • 각 Namespace에서 독립된 네트워크 스택 사용 가능.
  4. UTS Namespace:
    • 호스트 이름과 도메인 이름을 격리.
  5. IPC Namespace:
    • 프로세스 간 통신(IPC) 자원을 격리.
  6. User Namespace:
    • 사용자와 그룹 ID를 격리.

Namespace 생성 예제

  1. 새로운 Namespace에서 Bash 실행:
  2. unshare --pid --fork bash
  3. 새로운 Mount Namespace 생성:
  4. unshare --mount
  5. 현재 Namespace 확인:
  6. lsns

3. init 프로세스와 Namespace의 관계

  • init 프로세스는 시스템의 첫 번째 프로세스이며, 다른 프로세스의 부모 역할을 합니다.
  • Namespace는 init 프로세스와 상관없이 특정 프로세스를 격리하여 독립된 실행 환경을 제공합니다.

4. 결론

  • init 프로세스는 리눅스 부팅 과정의 핵심이며, 시스템 초기화와 프로세스 관리를 담당합니다.
  • Namespace는 프로세스 간 자원을 격리하는 기술로, 컨테이너 환경에서 중요한 역할을 합니다.

'Linux' 카테고리의 다른 글

EXT4 파일 시스템  (2) 2024.12.04
리눅스의 루트 파일 시스템  (0) 2024.12.04
Linux의 /tmp 디렉토리  (0) 2024.12.03
커맨드 라인 인터페이스 (CLI)  (1) 2024.12.03
Linux에서 자주 쓰이는 명령어  (0) 2024.11.10
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유