5つの最新のLinux「init」システム(1992-2015)


Linuxおよびその他のUnixライクなオペレーティングシステムでは、init(初期化)プロセスは、ブート時にカーネルによって実行される最初のプロセスです。プロセスID(PID)は1で、システムがシャットダウンされるまでバックグラウンドで実行されます。

initプロセスは、デーモン、サービス、その他のバックグラウンドプロセスなど、他のすべてのプロセスを開始します。したがって、システム上の他のすべてのプロセスの母になります。プロセスはシステム上で他の多くの子プロセスを開始できますが、親プロセスが停止した場合、initは孤立したプロセスの親になります。

何年にもわたって、多くのinitシステムが主要なLinuxディストリビューションに登場してきました。このガイドでは、Linuxオペレーティングシステムで使用できる最高のinitシステムのいくつかを見ていきます。

1. System V Init

System V(SysV)は、Unixライクなオペレーティングシステムで成熟した人気のあるinitスキームであり、Unix/Linuxシステム上のすべてのプロセスの親です。 SysVは、設計された最初の商用Unixオペレーティングシステムです。

カスタムinitを持つGentooとBSDスタイルのinitスキームを使用するSlackwareを除いて、ほとんどすべてのLinuxディストリビューションが最初にSysVinitスキームを使用しました。

Linux用のより効率的で完璧なinitシステムを作成するために、いくつかの欠陥のために、数年が経過するにつれて、いくつかのSysVinitの代替品が開発されました。

これらの代替手段はSysVの改善を目指しており、おそらく新しい機能を提供しますが、それでも元のSysVinitスクリプトと互換性があります。

2. SystemD

SystemDは、Linuxプラットフォームでの比較的新しいinitスキームです。 Fedora 15で導入された、それは簡単なシステム管理のためのツールの品揃えです。主な目的は、ブートプロセス内およびシステムの実行中に、すべてのシステムプロセスを初期化、管理、および追跡することです。

Systemd initは、システムとサービスの管理に実際にアプローチするという点で、他の従来のUnixinitシステムとは包括的に異なります。また、SysVおよびLBSのinitスクリプトとも互換性があります。

次の優れた機能のいくつかがあります。

  1. Clean, straightforward and efficient design
  2. Concurrent and parallel processing at bootup
  3. Better APIv
  4. Enables removal of optional processes
  5. Supports event logging using journald
  6. Supports job scheduling using systemd calender timers
  7. Storage of logs in binary files
  8. Preservation of systemd state for future reference
  9. Better integration with GNOME plus many more

Systemd initの概要を読む:https://fedoraproject.org/wiki/Systemd

また読む:裏話:Linuxで「init」を「systemd」に置き換える必要がある理由

3.スタートアップ

Upstartは、SysVinitシステムの代わりとしてUbuntuのメーカーによって開発されたイベントベースのinitシステムです。さまざまなシステムタスクとプロセスを開始し、システムの実行中にそれらを検査し、システムのシャットダウン中にそれらを停止します。

これは、SysVスタートアップスクリプトとSystemdスクリプトの両方を使用するハイブリッドinitシステムであり、Upstartinitシステムの注目すべき機能のいくつかは次のとおりです。

  1. Originally developed for Ubuntu Linux but can run on all other distributions
  2. Event-based starting and stopping of tasks and services
  3. Events are generated during starting and stopping of tasks and services
  4. Events can be sent by other system processes
  5. Communication with init process through D-Bus
  6. Users can start and stop their own processes
  7. Re-spawning of services that die abruptly and many more

ホームページにアクセス:http://upstart.ubuntu.com/index.html

4. OpenRC

OpenRCは、Unixライクなオペレーティングシステム用の依存関係ベースのinitスキームであり、SysVinitと互換性があります。 Sys Vにいくつかの改善をもたらすだけでなく、OpenRCは/ sbin/initファイルの完全な代替ではないことに注意する必要があります。

それはいくつかの輝かしい機能を提供し、これらは以下を含みます:

  1. It can run on other many Linux distributions including Gentoo and also on BSD
  2. Supports hardware initiated init scripts
  3. Supports a single configuration file
  4. No per-service configurations supported
  5. Runs as a daemon
  6. Parallel services startup and many more

ホームページにアクセス:https://wiki.gentoo.org/wiki/OpenRC

5. runit

runitは、GNU/Linux、Solaris、* BSD、Mac OS Xで実行できるクロスプラットフォームのinitシステムでもあり、サービス監視を提供するSysVinitの代替手段です。

SysV initやLinuxの他のinitシステムには見られないいくつかの利点と注目すべきコンポーネントが付属しており、これらには次のものが含まれます。

  1. Service supervision, where each service is associated with a service directory
  2. Clean process state, it guarantees each process a clean state
  3. It has a reliable logging facility
  4. Fast system boot up and shutdown
  5. It is also portable
  6. Packaging friendly
  7. Small code size and many more

ホームページにアクセス:http://smarden.org/runit/

前に述べたように、initシステムはLinuxシステム上の他のすべてのプロセスを開始して管理します。さらに、SysVはLinuxオペレーティングシステムの主要な初期化スキームですが、パフォーマンスの弱点のため、システムプログラマーはSysVのいくつかの代替品を開発しました。

そして、ここでは、それらの置き換えのいくつかを検討しましたが、このリストで言及する価値があると思われる他のinitシステムがある可能性があります。下記のコメント欄からお知らせください。