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デーモンを置き換えるための様々な取り組みが行われてきた。例えば、以下のようなものがある。
参考文献 ↑ 「Lennart Poettering による systemd の激動の台頭」 The New Stack . 2018-11-08. 2018-11-08 のオリジナルからアーカイブ済み。2024-01-30 に取得 。 ↑ – バージョン7 Unix プログラマー ズマニュアル init(8) ↑ – バージョン7 Unix プログラマー ズマニュアル ttys(5) ↑ – 4.2BSD システム管理者 マニュアル init(8) ↑ – 4.2BSD ファイルフォーマット マニュアル ttys(5) ↑ – 4.3BSD システム管理者 マニュアル init(8) ↑ – 4.3BSD ファイルフォーマット マニュアル ttys(5) ↑ Andrew Smallshaw (2009年12月7日)。 「UnixとLinuxの起動スクリプト、パート2」 。 2009年12月18日のオリジナルから アーカイブ済み 。 2011年 6月6日 取得。 ↑ "init(8)" . minnie.tuhs.org . 2021-07-27 のオリジナルから アーカイブ済み 。2015-09-12 に 取得 。 ↑ 「システム実行レベル」 . IBM . 2026年3月26日に オリジナルからアーカイブ済み 。 2026年3月26日 に取得。 ↑ "Initscripts" . Gentoo Linux Documentation . Gentoo.org. 2014-12-13. 2020-12-03 のオリジナルから アーカイブ済み。2020-12-08 に 取得 。 ↑ 「実行レベル」 . Oracle Solaris管理:共通タスク . Oracle . 2016年4月10日にオリジナルから アーカイブ済み 。 2017年11月14日 に取得。 ↑ "UNIX man pages : runlevel (8)" . Unixhelp.ed.ac.uk. 1997-05-27. 2014-07-14 の オリジナルからアーカイブ済み。2014-07-12 に 取得 。 1 2 3 "gobolinux/Scripts: 🧰 GoboLinux スクリプト コレクション" . GitHub . 2026-04-25 に取得. ↑ 「エリック・アンダーセンのホームページ」 。 2010年6月13日にオリジナルから アーカイブ済み 。 2009年 12月23日に 取得。 ↑ アクティブなプロジェクト(2010年7月29日、 ウェイバックマシンに アーカイブ済み、ロブ・ランドリーのウェブサイト) ↑ Denys Vlasenko 2017年9月5日に Wayback Machineに アーカイブ済み、BusyBoxメンテナー ↑ "BusyBox 1.36.1 (安定版)" . ↑ 「ライセンス」 。 2018年2月24日にオリジナルから アーカイブ済み 。 2018年 2月23日 に取得。 ↑ "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.22.1」 。2026年7月4日。 2026年 7月14日 取得 。 ↑ "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 に取得. 1 2 ウッド・マシューソン、SM (2024-12-16)。 "ginitd: det effektivaste init-systemet" 。 1 2 "initng/initng: InitNG コアコンポーネント" . GitHub . 2026-04-25 に取得. ↑ "rsmarples (Roy Marples)" . GitHub . 2026-04-30 に取得. ↑ "GitHub - OpenRC/openrc: OpenRC init システム" . GitHub . 2026-04-30 に取得. ↑ 「リリース 0.63.3」 。2026年7月2日。 2026年 7月3日 取得 。 ↑ "GitHub - openwrt/procd: [ MIRROR ] OpenWrt サービス / プロセス マネージャー" . GitHub . 2026-04-25 に取得. ↑ "g-pape" . GitHub . 2026-04-30 に取得. ↑ "GitHub - g-pape/runit: サービス監視機能を備えた UNIX init スキーム" . GitHub . 2026-04-30 に取得. ↑ 「リリース 2.3.1」 。2026年2月7日。 2026年 4月25日 取得 。 ↑ 「Void Linux メインページ」 。 2020年8月29日にオリジナルから アーカイブされました 。 2020年8月31日 に取得。 ↑ 「スカーネット/s6」 。 GitHub 。 2026 年 4 月 25 日 に取得 。 ↑ 「リリース 2.15.1.0」 。2026年7月14日 。 2026年 7月14日 に取得。 ↑ 「s6: なぜ別の監視スイートが必要なのか」 。 2021年9月13日にオリジナルから アーカイブ済み 。 2021年9月13日 に取得。 ↑ 「s6 init system」 。 2021年9月13日に オリジナル からアーカイブされました。 ↑ 「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日 取得。 ↑ 「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から使用しました。 ↑ 「リリース 261.2」 。2026年7月23日。 2026年 7月24日 取得 。 ↑ レナート・ポエタリング(2012年4月21日) 「systemd ステータスアップデート」 、 2012年4月23日のオリジナルから アーカイブ、 2012年 4月28日 取得 ↑ Systemd#Adoption を 参照 ↑ Wilfredo Sanchez (2001 年 5 月 28 日). "WWDC まとめ" . Clever Name TBD . 2007 年 3 月 11 日の オリジナルからアーカイブ済み。2006 年 12 月 23 日 取得 。 ↑ "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-07-14 に取得. 1 2 「Open Hub の Epoch Init System オープンソース プロジェクト: 言語ページ」 . Open Hub . 2026-04-25 に取得. 1 2 「Open Hub の finit オープンソース プロジェクト: 言語ページ」 . Open Hub . 2026-07-14 に取得. 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-07-14 に取得. 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-07-14 に取得. 1 2 「Open Hub の runit オープンソース プロジェクト: 言語ページ」 . Open Hub . 2026-04-25 に取得. 1 2 「Open Hub の s6 オープンソース プロジェクト: 言語ページ」 . Open Hub . 2026-07-14 に取得. 1 2 「Open Hub の GNU Shepherd オープンソース プロジェクト: 言語ページ」 . Open Hub . 2026-04-25 に取得. 1 2 「Open Hub の systemd オープンソース プロジェクト: 言語ページ」 . Open Hub . 2026-07-14 に取得. 1 2 「Open Hub の Upstart オープンソース プロジェクト: 言語ページ」 . Open Hub . 2026-04-25 に取得.
外部リンク FreeBSD init マニュアルページ Unixのinit方式をまとめた論文(2007年) Solaris Service Management Facility - クイックスタートガイド( Wayback Machine アーカイブ、2005年12月31日保存) 現代のinitシステムの歴史(1992年~ 2015年)Wayback Machine に2015年10月11日に アーカイブされました