Unixスタイル/BSDスタイルの研究研究用 Unix init は、にある初期化シェルスクリプト /etc/rcを実行し、[ 2 ] から の制御下にある端末でgetty を起動します/etc/ttys。[ 3 ] ランレベルはありません。/etc/rcファイルによって、init が実行するプログラムが決定されます。このシステムの利点は、シンプルで手動で簡単に編集できることです。ただし、システムに新しいソフトウェアを追加すると、既存のファイルを変更する必要があり、起動不能なシステムになるリスクがあります。
BSD init は、4.3BSD より前は Research UNIX の init と同じでした。[ 4 ] [ 5 ] 4.3BSD では、の制御下でグラフィカル端末上でX などのウィンドウシステム を実行するサポートが追加されました。[ 6 ] [ 7 ] を編集する必要性をなくすため、BSD の派生版では、ブートシーケンスの最後の方でサブシェルで実行されるサイト固有のファイルが長年サポートされてきました。/etc/ttys/etc/rc/etc/rc.local
NetBSD 1.5で完全にモジュール化されたシステムが導入され、 FreeBSD 5.0、OpenBSD 4.9 および後継バージョンに移植されました。このシステムは/etc/rc.dディレクトリ内のスクリプトを実行します。System V のスクリプト順序は各スクリプトのファイル名から派生しますが、このシステムでは各スクリプト内に配置された明示的な依存関係タグを使用します。[ 8 ] スクリプトの実行順序は、これらのタグに記述された要件に基づいてrcorderユーティリティによって決定されます。
SysVスタイルsysv-rc-conf は 、各ランレベルで実行される SysV スタイルの初期化スクリプトを選択するTUIユーティリティです。 AT&TのUNIX System IIIは 、前身のシステムと比較して、新しいスタイルのシステム起動構成を導入しました[ 9 ] 。これは(修正を加えて)UNIX System V にも引き継がれ、そのため「SysVスタイルのinit」と呼ばれています。
実行中の System V は、常にあらかじめ決められた数の状態(ランレベル と呼ばれる)のいずれかにあります。少なくとも 1 つのランレベルはシステムの通常の動作状態であり、通常、その他のランレベルはシングルユーザーモード(障害のあるシステムの修復に使用)、システムシャットダウン、およびその他のさまざまな状態を表します。あるランレベルから別のランレベルに切り替えると、ランレベルごとに一連のスクリプトが実行されます。これらのスクリプトは通常、ファイルシステムのマウント、デーモンの起動または停止、 X Window System の 起動または停止、マシンのシャットダウンなどを行います。
ランレベル System V のランレベルは 、マシンの特定の状態を記述するもので、それぞれのランレベルで実行されているプロセスとデーモンによって特徴付けられます。一般的に、ランレベルは 7 つあり、そのうち 3 つのランレベルはシステムの動作に不可欠であるため、「標準」とみなされます。
これらの標準的なランレベルとは別に、UnixおよびUnixライクなシステムでは、ランレベルの扱い方が若干異なります。共通しているのは、/etc/inittab各ランレベルが特定のシステムでどのような動作をするかを定義するファイルです。
デフォルトのランレベル 右の表でランレベル5をデフォルトとするLinuxディストリビューションでは、ランレベル5はX Window System を実行するマルチユーザーグラフィカル環境を起動し、通常はGDM やKDM などのディスプレイマネージャ を使用します。ただし、Solaris およびillumos オペレーティングシステムでは、ランレベル5は通常、マシンのシャットダウンと自動電源オフのために予約されています。
runlevelほとんどのシステムでは、すべてのユーザーがまたはコマンドのいずれかを使用して現在のランレベルを確認できますwho -r。[ 13 ] ルートユーザーは通常、またはコマンドを実行して現在のランレベルを変更します。ファイルには、 エントリを使用してデフォルトのランレベルが設定されています。telinitinit/etc/inittab:initdefault:
Unixシステムでは、ランレベルの変更は、不足しているサービスのみを起動することによって行われます(各レベルでは、起動/停止するサービスのみが定義されているため)。たとえば、システムをランレベル3から4に変更すると、ローカルのXサーバーのみが起動する可能性があります。ランレベル3に戻すと、Xサーバーは再び停止されます。
その他の実装従来、init の大きな欠点の 1 つは、タスクを順番に開始し、各タスクの読み込みが完了するまで次のタスクに進まないことでした。起動プロセスが入出力 (I/O) ブロック状態になると、起動時に長い遅延が発生する可能性があります。SSD を使用するなどして I/O を高速化することで遅延を短縮できますが、根本的な原因は解決されません。
こうした問題やその他の設計上の問題に対処するため、従来のinitデーモンを置き換えるための様々な取り組みが行われてきた。例えば、以下のようなものがある。
一般的な ↑ GoboLinux の ブートスクリプト ↑ busybox-init は 、組み込みオペレーティングシステム に適しており、 Alpine Linux ( OpenRC に置き換えられる前)、 SliTaz 5 (Rolling)、 Tiny Core Linux 、 VMware ESXi で使用され、 OpenWrt (procd に置き換えられる前↑ dinit、サービスマネージャおよびinitシステム。 [ 21 ] ↑ Epoch、シンプルさとサービス管理に重点を置いたシングルスレッドのLinux initシステム[ 24 ] ↑ ginitd は、init システムとサービス管理システムで構成されるソフトウェア パッケージです[ 26 ] ↑ Initng は 、プロセスを非同期で起動するように設計された init の完全な代替です。↑ launchd は、 Mac OS X v10.4 以降、 Darwinおよび macOS やiOS などの Darwin ベースのオペレーティングシステムにおける init の代替です(SystemStarter を起動して、旧式の 'rc.local' および SystemStarter プロセスを実行します)。↑ OpenRC , a process spawner that utilizes system-provided init, while providing process isolation, parallelized startup, and service dependency; used by Alpine Linux , Gentoo and its derivatives, and available as an option in Devuan and Artix Linux .↑ runit , a cross-platform full replacement for init with parallel starting of services, used by default in Void Linux [ 31] ↑ Service Management Facility (SMF), a complete replacement/redesign of init from the ground up in illumos /Solaris starting with Solaris 10, but launched as the only service by the original System V-style init↑ Shepherd , the GNU service and daemon manager which provides asynchronous, dependency-based initialisation; written in Guile Scheme and meant to be interactively hackable during normal system operation[ 35] ↑ s6, a software suite that includes an init system[ 38] [ 39] ↑ systemd , a software suite, full replacement for init in Linux that includes an init daemon, with concurrent starting of services, service manager, and other features. Used by Debian (replaces SysV init) and Ubuntu , among other popular Linux distributions. As of February 2019 , systemd has been adopted by most major Linux distributions.[ 45] ↑ SystemStarter , a process spawner started by the BSD-style init in Mac OS X prior to Mac OS X v10.4↑ Upstart , a full replacement of init designed to start processes asynchronously. Initiated by Ubuntu and used by them until 2014. It was also used in Fedora 9,[ 47] [ 48] Red Hat Enterprise Linux 6[ 49] and Google 's ChromeOS .[ 50]
Compatibility, interface and programming
参考文献 ↑ 「Lennart Poettering による systemd の激動の台頭」 The New Stack . 2018-11-08. 2018-11-08 のオリジナルからアーカイブ済み。2024-01-30 に取得 。 ↑ init(8) – Version 7 Unix Programmer's Manual ↑ ttys(5) – Version 7 Unix Programmer's Manual ↑ init(8) – 4.2BSD System Manager's Manual ↑ ttys(5) – 4.2BSD File Formats Manual ↑ init(8) – 4.3BSD System Manager's Manual ↑ ttys(5) – 4.3BSD File Formats Manual ↑ Andrew Smallshaw (7 December 2009). "Unix and Linux startup scripts, Part 2". Archived from the original on 18 December 2009. Retrieved 6 June 2011 . ↑ "init(8)". minnie.tuhs.org . Archived from the original on 2021-07-27. Retrieved 2015-09-12 . ↑ "System run level". IBM . Archived from the original on 2026-03-26. Retrieved 2026-03-26 . ↑ "Initscripts". Gentoo Linux Documentation . Gentoo.org. 2014-12-13. Archived from the original on 2020-12-03. Retrieved 2020-12-08 . ↑ "Run Levels". Oracle Solaris Administration: Common Tasks . Oracle . Archived from the original on 2016-04-10. Retrieved 2017-11-14 . ↑ "UNIX man pages : runlevel (8)". Unixhelp.ed.ac.uk. 1997-05-27. Archived from the original on 2014-07-14. Retrieved 2014-07-12 . 1 2 3 "gobolinux/Scripts: 🧰 The GoboLinux scripts collection". GitHub . Retrieved 2026-04-25 . ↑ "Erik Andersen's Homepage". Archived from the original on June 13, 2010. Retrieved December 23, 2009 . ↑ Active ProjectsArchived July 29, 2010, at the Wayback Machine , Rob Landley's website ↑ Denys VlasenkoArchived September 5, 2017, at the Wayback Machine , BusyBox maintainer ↑ "BusyBox 1.36.1 (stable)". ↑ "License". Archived from the original on February 24, 2018. Retrieved February 23, 2018 . ↑ "BusyBox 1.2.2.1 変更履歴" (ドキュメント)。BusyBox。 これは、旧バージョンの「GPLv2 以降」デュアルライセンスでの BusyBox の最後のリリースです。今後のバージョン (svn 16112 以降の変更を含む) は、「以降」の条件なしで、GPLv2 のみとなります。 1 2 3 "GitHub - davmac314/dinit: サービス監視 / "init" システム" . GitHub . 2021-12-12 のオリジナルから アーカイブ済み. 2021-12-12 に取得 . ↑ 「リリース 0.21.0」 。2026年3月9日。 2026年 4月25日 取得 。 ↑ "GitHub - Subsentient/epoch: The Epoch Init System" . GitHub . 2026-04-25 に取得. ↑ 「Epoch Init System ホームページ」 。 2014年8月2日にオリジナルから アーカイブされました 。 2014年7月31日 に取得。 1 2 "GitHub - finit-project/finit: Linux 用の高速 init。Cookie が含まれています" . GitHub . 2026-04-25 に取得. ↑ ウッド=マシューソン、SM (2024-12-16)。 "ginitd: det effektivaste init-systemet" 。 1 2 "initng/initng: InitNG コアコンポーネント" . GitHub . 2026-04-25 に取得. ↑ 「リリース 0.63.3」 。2026年7月2日。 2026年 7月3日 取得 。 ↑ "GitHub - openwrt/procd: [ MIRROR ] OpenWrt サービス / プロセス マネージャー" . GitHub . 2026-04-25 に取得. ↑ 「リリース 2.3.1」 。2026年2月7日。 2026年 4月25日 取得 。 ↑ 「Void Linux メインページ」 。 2020年8月29日にオリジナルから アーカイブされました 。 2020年8月31日 に取得。 ↑ 「Open Hub 上の GNU Shepherd オープンソース プロジェクト: 貢献者 Ludovic Courtès」 . Open Hub . 2026-04-25 に取得. ↑ 「Open Hub 上の GNU Shepherd オープンソース プロジェクト: 貢献者」 . Open Hub . 2026-04-25 に取得. ↑ Ludovic Courtès (2025年12月3日). "GNU Shepherd 1.0.9 がリリースされました" . 2025年 12月3日 取得. ↑ 「The Shepherd - GNU Project」 。Free Software Foundation, Inc. 2016年2月12日のオリジナルから アーカイブ 。 2016年1月16日 取得。 ↑ 「スカーネット/s6」 。 GitHub 。 2026 年 4 月 25 日 に取得 。 ↑ 「リリース 2.14.0.1」 。2026年1月24日。 2026年 4月25日 取得 。 ↑ 「s6: なぜ別の監視スイートが必要なのか」 。 2021年9月13日にオリジナルから アーカイブ済み 。 2021年9月13日 に取得。 ↑ 「s6 init system」 。 2021年9月13日に オリジナル からアーカイブされました。 ↑ 「systemd README」 、 freedesktop.org 、 2013年7月7日にオリジナルから アーカイブ 、 2012年 9月9日に取得 ↑ 「Systemd、2018年に新規コミット数と貢献者数で最高値を記録 - Phoronix」 。 2009年9月21日のオリジナルから アーカイブ。 2018年 12月30日 取得 。 ↑ 「contributors」統計は、 systemd/systemd 、systemd、2023-12-03 、取得日 :2023-12-03から使用しました。 ↑ "systemd-stable v261.1" . 2026年6月26日. 2026年 6月27日 取得 . ↑ レナート・ポエタリング(2012年4月21日) 「systemd ステータスアップデート」 、 2012年4月23日のオリジナルから アーカイブ、 2012年 4月28日 取得 ↑ Systemd#Adoption を 参照 ↑ "1.13.2 "横から見ると緑豊か" : シリーズ 1.x : アップスタート" . Launchpad . 2022-01-01 に取得. ↑ Fedora 14 承認された機能 、2010年7月13日、 2022年3月27日にオリジナルから アーカイブ 、 2010年7月13日に取得 ↑ 「Fedora、systemdをF15に延期」 。Linux Weekly News。2010年9月14日。 2010年9月19日のオリジナルから アーカイブ。 2010年9月17日 取得 。 ↑ 「デプロイメント」 。Red Hat Enterprise Linux 6: テクニカルノート 。Red Hat 。 2018年8月29日にオリジナルから アーカイブ済み 。 2013年12月31日 に取得。 ↑ ソフトウェアアーキテクチャ:Chromium OS 設計文書 、 2022年4月9日にオリジナルから アーカイブ 、 2014年 1月25日に取得 1 2 "systemdfree.com — init は 1 つのことだけを行うべきである" . 2026-04-25 に取得。 2024 年現在、systemd プロジェクトには、init デーモン、サービスマネージャ、ログインマネージャ (logind)、DNS リゾルバ (systemd-resolved)、時刻同期デーモン (systemd-timesyncd)、ネットワークマネージャ (systemd-networkd)、ブートローダー (systemd-boot)、ホームディレクトリマネージャ (systemd-homed)、認証情報マネージャ、コンテナマネージャ (systemd-nspawn)、ジャーナルバイナリログシステム (journald)、デバイスマネージャ (udev、2012 年に統合)、暗号化ストレージ用の暗号化レイヤーが含まれています。これらはプラグインではありません。内部 API、dbus インターフェイス、cgroup 階層を共有する、密接に結合したコンポーネントです。 [...] GNOMEのlogindへの依存、NetworkManagerのsystemd-networkdとの統合、そしてPulseAudioのPipeWireへの置き換え(これもsystemdセッション管理と深く統合されている) ↑ 「init システムの比較 - Gentoo wiki」 。2025-09-16。2026-04-25 に 取得 。 1 2 「Open Hub の BusyBox オープンソース プロジェクト: 言語ページ」 . Open Hub . 2026-04-25 に取得. 1 2 「Open Hub の Epoch Init System オープンソース プロジェクト: 言語ページ」 . Open Hub . 2026-04-25 に取得. 1 2 「Open Hub の finit オープンソース プロジェクト: 言語ページ」 . Open Hub . 2026-04-25 に取得. 1 2 「Open Hub の InitNG オープンソース プロジェクト: 言語ページ」 . Open Hub . 2026-04-25 に取得. 1 2 「Open Hub で Open launchd オープンソース プロジェクト: 言語ページ」 . Open Hub . 2026-04-25 に取得. 1 2 「Open Hub の OpenRC オープンソース プロジェクト: 言語ページ」 . Open Hub . 2026-04-25 に取得. 1 2 stokito (2025-11-18). " [ OpenWrt Wiki ] UCI システム " . 2026-04-25 に取得. ↑ bluewavenet (2025-02-18). " [ OpenWrt Wiki ] Procd システム初期化とデーモン管理 " . 2026-04-25 に取得. 1 2 「Open Hub の openwrt-procd オープンソース プロジェクト: 言語ページ」 . Open Hub . 2026-04-25 に取得. 1 2 「Open Hub の runit オープンソース プロジェクト: 言語ページ」 . Open Hub . 2026-04-25 に取得. 1 2 「Open Hub の GNU Shepherd オープンソース プロジェクト: 言語ページ」 . Open Hub . 2026-04-25 に取得. 1 2 「Open Hub の s6 オープンソース プロジェクト: 言語ページ」 . Open Hub . 2026-04-25 に取得. 1 2 「Open Hub の systemd オープンソース プロジェクト: 言語ページ」 . Open Hub . 2026-04-25 に取得. 1 2 「Open Hub の Upstart オープンソース プロジェクト: 言語ページ」 . Open Hub . 2026-04-25 に取得.
外部リンク FreeBSD init マニュアルページ Unixのinit方式をまとめた論文(2007年) Solarisサービス管理機能 - クイックスタートガイド( Wayback Machine アーカイブ、2005年12月31日) 現代のinitシステムの歴史(1992年~ 2015年)Wayback Machine に2015年10月11日に アーカイブされました