「init」と「systemd」の裏話:Linuxで「init」を「systemd」に置き換える必要がある理由


私は、さまざまなLinuxディストリビューションとアプリケーションに関連するいくつかのメーリングリストに登録しており、どこで何が起こっているかを常に把握しています。新しいバグは何ですか?リリースされたパッチは何ですか?次のリリースで何が期待されますか?そして他のたくさんのもの。最近のメーリングリストには、主にDebianメーリングリストと他のいくつかのメーリングリストで、「LinuxDivideであなたの側を選んでください」がたくさんあります。

一部のLinuxディストリビューションでは、 init デーモンがデーモン systemd に置き換えられる予定ですが、多くのディストリビューションではすでに実装されています。これにより、従来のUnix/LinuxGuardと新しいLinuxGuard(プログラマーとシステム管理者)の間に大きなギャップが生じます。

この記事では、すべてのクエリを1つずつ説明して解決します。

  1. What init is?
  2. What is systemd?
  3. Why init needed to be replaced?
  4. What features systemd will own.

Linuxでは、 init はInitializationの略語です。 init は、コンピュータが起動するとすぐに起動し、シャットダウンされるまで実行を続けるデーモンプロセスです。実際のinitは、コンピューターの起動時に開始される最初のプロセスであり、実行中の他のすべてのプロセスの親になります。したがって、通常、「 pid u003d 1 」が割り当てられます。

何らかの理由で init デーモンを開始できなかった場合、プロセスは開始されず、システムは「カーネルパニック」と呼ばれる段階に到達します。 initは、最も一般的には System V init と呼ばれます。 System Vは、設計された最初の商用UNIXオペレーティングシステムであり、今日のほとんどのLinuxディストリビューションでのinitの使用法は、BSDスタイルを使用するSlackwareやカスタムinitを使用するGentooなどのいくつかの例外を除いて、 System V OS と同じです。 。

initをより完璧なものに置き換える必要性は長い間感じられ、いくつかの代替案が時々開発されました。そのうちのいくつかはディストリビューションのネイティブinitの置き換えになり、そのいくつかは次のとおりです。

  1. Upstart – A init replacement daemon implemented in Ubuntu GNU/Linux and designed to start process asynchronously.
  2. Epoch – A init replacement daemon built around simplicity and service management, designed to start process single-threaded.
  3. Mudar – A init replacement daemon written in Python, implemented on Pardus GNU/Linux and designed to start process asynchronously.
  4. systemd – A init replacement daemon designed to start process in parallel, implemented in a number of standard distribution – Fedora, OpenSuSE, Arch, RHEL, CentOS, etc.

systemd は、デーモンの最後に「 d 」を追加するためのUNIX規則で名前が付けられたシステム管理デーモンです。簡単に認識できるように。当初はGNUGeneral Public Licenseの下でリリースされましたが、現在はGNU Lesser General PublicLicenseの下でリリースされています。 initと同様に、systemdは他のすべてのプロセスの親であり、直接または間接的に起動時に開始される最初のプロセスであるため、通常は「 pid u003d 1 」が割り当てられます。

systemd は、デーモン周辺のすべてのパッケージ、ユーティリティ、およびライブラリを指す場合があります。これは、initの欠点を克服するために設計されました。それ自体がバックグラウンドプロセスであり、プロセスを並行して開始するように設計されているため、起動時間と計算のオーバーヘッドが削減されます。 initと比較して他の多くの機能があります。

初期化プロセスは連続して開始されます。つまり、1つのタスクは、最後のタスクの起動が成功し、メモリにロードされた後にのみ開始されます。これにより、起動時間が遅くなり、長くなることがよくありました。ただし、systemdは速度を重視して設計されたのではなく、物事をきちんと実行するために設計されたため、国連が必要とするすべての遅延を回避できます。

  1. Clean, stateforward and efficient design.
  2. Simpler boot process.
  3. Concurrent and parallel processing at boot.
  4. Better API.
  5. Simple Unit Syntax.
  6. Ability to remove optional components.
  7. Low memory footprints.
  8. Improved technique to express dependencies.
  9. Initialization instruction written in config file and not in shell script.
  10. Make use of Unix Domain Socket.
  11. Job Scheduling using systemd Calendar Timers.
  12. Event Logging with journald.
  13. Choice of logging System events with systemd as well as syslog.
  14. Logs are stored in binary file.
  15. systemd state can be preserved to be called later in future.
  16. Track process using kernel’s cgroup and not PID.
  17. Users login managed by systemd-logind.
  18. Better integration with Gnome for interoperability.
  1. Everything at one place.
  2. Not POSIX standard.

LinuxカーネルのチーフアーキテクトであるLinusTorvaldsは、systemdの主要な開発者のユーザーに対する態度を感じており、バグレポートは問題ないようです。また、systemdの哲学は奇妙であり、システムプロセスを制御するための異質な方法であると報告されました。同じことが、Patric Volkerdingやその他の著名なLinuxユーザーや開発者からだけでなく、オンラインフォーラムでも随時記録されています。

pid u003d 1として実行されているものはすべて、壊れたり、混乱したり、ユーザーが効果的かつ効率的に制御したりしてはなりません。多くのユーザーは、systemdのinitを置き換えることは、Linuxの副作用として毎回車輪の再発明にすぎないと考えています。しかし、これはLinuxの多様な性質です。これは、Linuxが非常に強力だからです。変化は良いことであり、それが正当な理由であるならば、私たちはそれを感謝しなければなりません。

それは今のところすべてです。私はあなたが読みたいと思うもう一つの興味深い記事で再びここにいます。それまでは、しばらくお待ちください。Tecmintに接続します。以下のコメントで貴重なフィードバックをお寄せください。

全著作権所有。 © Linux-Console.net • 2019-2022