웹사이트 검색

6가지 최고의 최신 Linux 'init' 시스템(1992~2023)


Linux 및 기타 Unix 계열 운영 체제에서 init(초기화) 프로세스는 부팅 시 커널에 의해 실행되는 첫 번째 프로세스로, 프로세스 ID(ID)를 갖습니다. >PID) 중 1이며 시스템이 종료될 때까지 백그라운드에서 실행됩니다.

init 프로세스는 다른 모든 Linux 프로세스, 즉 데몬, 서비스 및 기타 백그라운드 프로세스를 시작하므로 시스템에 있는 다른 모든 프로세스의 어머니입니다.

프로세스는 시스템에서 다른 많은 하위 프로세스를 시작할 수 있지만 상위 프로세스가 종료되면 init는 고아 프로세스의 상위가 됩니다.

수년에 걸쳐 주요 Linux 배포판에는 많은 init 시스템이 등장했으며 이 가이드에서는 Linux 운영 체제에서 사용할 수 있는 최고의 init 시스템 중 일부를 살펴보겠습니다.

1. 시스템 V 초기화

시스템 V(SysV)는 Unix 계열 운영 체제에서 성숙하고 널리 사용되는 init 구성표이며 Unix/Linux 시스템의 모든 프로세스의 상위 요소입니다. SysV는 설계된 최초의 상용 Unix 운영 체제입니다.

거의 모든 Linux 배포판은 처음에는 사용자 정의 init가 있는 Gentoo와 BSD 스타일 init 체계를 사용하는 Slackware를 제외하고 SysV 초기화 체계를 사용했습니다.

몇 년이 지나면서 몇 가지 불완전성으로 인해 Linux용 더 효율적이고 완벽한 init 시스템을 만들기 위한 노력의 일환으로 여러 SysV init 대체 제품이 개발되었습니다.

이러한 대안은 SysV를 개선하고 새로운 기능을 제공하기 위해 노력하지만 원래 SysV init 스크립트와 여전히 호환됩니다.

2. 시스템D

SystemD는 Linux 플랫폼의 비교적 새로운 초기화 체계입니다. Fedora 15에 도입된 이 도구는 간편한 시스템 관리를 위한 도구 모음입니다. 주요 목적은 부팅 프로세스와 시스템이 실행되는 동안 모든 시스템 프로세스를 초기화, 관리 및 추적하는 것입니다.

Systemd init는 실질적으로 시스템 및 서비스 관리에 접근하는 방식에서 다른 기존 Unix init 시스템과 포괄적으로 구별됩니다. 또한 SysV 및 LBS 초기화 스크립트와도 호환됩니다.

여기에는 다음과 같은 탁월한 기능이 있습니다.

  • 깔끔하고 직관적이며 효율적인 디자인
  • 부팅 시 동시 및 병렬 처리
  • 더 나은 APIv
  • 선택적 프로세스 제거 가능
  • Journald를 사용한 이벤트 로깅 지원
  • systemd 달력 타이머를 사용한 작업 일정 지원
  • 로그를 바이너리 파일로 저장
  • 향후 참조를 위해 시스템 상태 보존
  • GNOME과의 더 나은 통합 및 기타 기능

3. 신생

UpstartSysV 초기화 시스템을 대체하기 위해 Ubuntu 제조업체가 개발한 이벤트 기반 초기화 시스템입니다. 다양한 시스템 작업과 프로세스를 시작하고, 시스템이 실행되는 동안 이를 검사하고, 시스템 종료 중에 중지합니다.

이는 SysV 시작 스크립트와 Systemd 스크립트를 모두 사용하는 하이브리드 초기화 시스템으로, Upstart 초기화 시스템의 주목할만한 기능 중 일부는 다음과 같습니다.

  • 원래 Ubuntu Linux용으로 개발되었지만 다른 모든 배포판에서도 실행 가능
  • 이벤트 기반 작업 및 서비스 시작 및 중지
  • 작업 및 서비스를 시작하고 중지하는 동안 이벤트가 생성됩니다.
  • 다른 시스템 프로세스에서 이벤트를 보낼 수 있습니다.
  • D-Bus를 통한 init 프로세스와의 통신
  • 사용자는 프로세스를 시작하고 중지할 수 있습니다.
  • 갑자기 종료된 서비스 다시 생성 등

4. 오픈RC

OpenRC는 Unix 계열 운영 체제를 위한 종속성 기반 init 구성표이며 SysV init와 호환됩니다. Sys V에 몇 가지 개선 사항을 제공하는 만큼, OpenRC가 /sbin/init 파일을 완전히 대체하지는 않는다는 점을 명심해야 합니다.

다음과 같은 몇 가지 뛰어난 기능을 제공합니다.

  • Gentoo 및 BSD를 포함한 다른 많은 Linux 배포판에서 실행될 수 있습니다.
  • 하드웨어 시작 초기화 스크립트 지원
  • 단일 구성 파일 지원
  • 서비스별 구성이 지원되지 않습니다.
  • 데몬으로 실행
  • 병렬 서비스 시작 등

5. 런잇

runit은 또한 GNU/Linux, Solaris, *BSD 및 Mac OS X에서 실행될 수 있는 크로스 플랫폼 초기화 시스템이며 서비스 감독 기능을 제공하는 SysV init의 대안입니다.

SysV init 및 Linux의 다른 init 시스템에는 없는 몇 가지 이점과 놀라운 구성 요소가 제공되며 여기에는 다음이 포함됩니다.

  • 각 서비스가 서비스 디렉터리와 연결된 서비스 감독
  • 깨끗한 프로세스 상태는 각 프로세스가 깨끗한 상태를 보장합니다.
  • 믿을 수 있는 로깅 시설을 갖추고 있습니다.
  • 빠른 시스템 부팅 및 종료
  • 휴대성도 좋고
  • 포장 친화적
  • 작은 코드 크기 등

6.s6

s6은 daemontoolsrunit과 유사한 프로세스 감독을 위해 맞춤화된 UNIX용 컴팩트 도구 세트를 제공합니다. 프로세스와 데몬에 대한 작업을 용이하게 합니다.

낮은 수준의 서비스 관리 툴킷으로 설계된 s6은 독립적으로 또는 프레임워크 내에서 작동할 수 있는 다양한 도구를 제공합니다. 이러한 도구를 결합하면 최소한의 코드로 강력한 기능을 제공할 수 있습니다.

앞서 언급했듯이 init 시스템은 Linux 시스템의 다른 모든 프로세스를 시작하고 관리합니다. 또한 SysV는 Linux 운영 체제의 기본 초기화 구성표이지만 일부 성능 약점으로 인해 시스템 프로그래머는 이에 대한 여러 대체 구성표를 개발했습니다.

여기에서는 이러한 대체 시스템 중 몇 가지를 살펴보았지만 이 목록에서 언급할 가치가 있다고 생각되는 다른 init 시스템이 있을 수도 있습니다. 아래 댓글 섹션을 통해 이에 대해 알려주실 수 있습니다.