Upstart
Upstartは、いくつかのUnix系コンピュータオペレーティングシステムで起動時にタスクを実行する手法として古くから備わるinitデーモンの代わりとなるもので、イベント駆動型である点に特徴がある。Upstartは、当時カノニカルの従業員であったスコット・ジェームズ・レムナントが開発した。
作者 | スコット・ジェームズ・レムナント |
---|---|
開発元 | カノニカル |
初版 | 2006年8月24日 |
最新版 |
1.13.2[1]
/ 2014年9月4日 |
リポジトリ | |
プログラミング 言語 | C言語 |
対応OS | Linux |
サポート状況 | 開発終了 |
種別 | initデーモン |
ライセンス | GPLv2 |
公式サイト |
upstart |
原理の説明
編集元々古くから備わるinitプロセスは、電源オンの後にコンピュータを通常の起動状態にすることや、シャットダウン前にきちんとサービスを終了することにしか責任を持たなかった。このため、前記の設計により現在のタスクが完了するまで将来のタスクは厳格に同期化され、さらにブロックされてしまう。さらに準備やクリーンアップ機能による制限を受けるため、これらのタスクはあらかじめ定義されねばならない。これでは現代のデスクトップコンピュータにおけるスタートアップ以外の、以下に挙げるような様々なタスクを簡潔に処理できなくなる:
- マシン起動中におけるUSBフラッシュドライブなどのポータブルストレージやネットワークデバイスの脱着。
- システムロックなしの、特にディスクがスキャンされるまで電源すらオンになっていない場合における新規ストレージデバイスの発見とスキャン。
- デバイス用ファームウェアのロード。ロードはデバイスが発見された後かつデバイスが使えない前に行わなければならないはずである。
Upstartのイベント駆動型モデルにより、イベント生成とは非同期にイベント応答ができる[2]。
設計
編集Upstartはブート時のタスクとサービスの起動とシャットダウン時のタスクとサービスの停止を非同期に行い、システム動作中にはタスクとサービスの管理も行う。
System V initとの完全な後方互換性を保ち、容易に移行可能であることが設計目標であった[3]。そのため、既存のSystem V init用スクリプトを無修正で実行可能である。いつも正常起動への完全な移行を仮定し要求するが、スタートアップの古くから備わる手法と新しい手法とが混在した環境をサポートしない大半の他のinit代替手法(systemdやOpenRCなど)とそういった点で異なる[4]。
Upstartは多くのイベントやより複雑なイベントをまとめるために、入力カスタム、シングルイベント、またはイベントブリッジ用のinitctlを使うことでイベントモデルを拡張できる.[5]。Upstartにはデフォルトでsocket、dbus、udev、fileおよびdconfイベントへのブリッジが含まれる。必要に応じてより多くのブリッジが利用できる[6]。
採用
編集Upstartをデフォルトのinitシステムとして使用する、LinuxカーネルをベースとしたLinuxディストリビューションやそれ以外のオペレーティングシステム:
- UpstartはSystem V initの代替として2006年後半、Ubuntu 6.10 (Edgy Eft) リリースで最初に導入された。Ubuntu 9.10 (Karmic Koala) はAlpha 6のネイティブUpstartブートアップを導入した[7]。続いてDebianプロジェクトが2014年、将来のリリースにsystemdの採用を決めた後、Mark Shuttleworthは上流との調和を維持するためにsystemd自体へと移行する計画をUbuntuは開始したとアナウンスした[8]。
- UpstartはChromeOSやChromium OSで使われている[9]。
Upstartをある程度サポートするかしていたが、デフォルトinitシステムとしての使用をやめたか既に使用していないLinuxディストリビューション:
- Debianはjessieリリース立ち上げ時にデフォルトinitシステムをUpstartへ切り替えることを検討したが[10]、systemdへ切り替えることになった[11]。Upstartは結局2015年12月にDebianアーカイブから削除された[12]。
- UbuntuはUbuntu Touchを除くバージョン15.04 (Vivid Vervet) において、デフォルトinitシステムのsystemdへの置き換えを完了した[13]。
- Fedora 9でSystem V initはUpstartに置き換えられたが、Fedora 15ではUpstartはsystemdに置き換えられた[14][15]。
- レッドハットはRed Hat Enterprise Linux (RHEL) 6でUpstartを導入した[16]。そのため、CentOS、Scientific LinuxおよびOracle LinuxといったRHEL 6派生でもUpstartが使われている。RHEL 7ではUpstartの代わりにsystemdが使われている[17][18]
- openSUSEはバージョン11.3 Milestone 4でUpstartを導入したが、デフォルトではなかった[19]。openSUSE 12.1のデフォルトinitシステムとして、Upstartの代わりにsystemdが使われた[20]。
- UpstartはHP TouchPadタブレット用や、Palm Pre、Palm Pixi(共にパームがHPに買収される以前より)、HP VeerおよびHP Pre 3スマートフォン用のHP webOSで使われている[21]。
- ノキアのインターネットタブレット用のMaemo 5ではsysvinitをUpstartに置き換えた[22]。
関連項目
編集- Initng — initの非同期型代替実装の1つ
- Launchd — Mac OS X v10.4でinitなどのシステム起動スクリプトおよびcronの代替として導入された。
- OpenRC
- オペレーティングシステムサービス管理
- Service Management Facility
- systemd
脚注
編集- ^ “[Branch ~upstart-devel/upstart/trunk] Rev 1662: * NEWS: Release 1.13.2”. Ubuntu.com (2014年9月4日). 2017年1月18日閲覧。
- ^ Remnant, Scott James (2006年8月26日). “Upstart in Universe”. Netsplit. 2009年9月12日閲覧。[リンク切れ]
- ^ Launch Pad, Ubuntu
- ^ “Discussion of design and implementation of Upstart”, Ubuntu Wiki, カノニカル
- ^ “The Upstart Cookbook”. カノニカル. 26 January 2014閲覧。
- ^ “The Upstart Cookbook: Bridges”. カノニカル. 26 January 2014閲覧。
- ^ “Upstart”, About (Ubuntu)
- ^ Shuttleworth, Mark. “Losing graciously”. 22 March 2014時点のオリジナルよりアーカイブ。14 February 2014閲覧。
- ^ Software Architecture: Chromium OS design documents, Google 25 January 2014閲覧。
- ^ Petter Reinholdtsen (2009-09-05), The future of the boot system in Debian, Debian.org
- ^ The Debian technical committee vote concludes, Lwn.net, (2014-02-11) 2014年2月11日閲覧。
- ^ RM: upstart -- RoQA; unmaintained, debian.org, (2015-12-18) 2016年1月26日閲覧。
- ^ VividVervet/ReleaseNotes, (2015-04-24)
- ^ Fedora 14 Accepted Features, (2010-07-13) 2010年7月13日閲覧。
- ^ “Fedora defers systemd to F15”. Linux Weekly News (2010年9月14日). 2010年9月17日閲覧。
- ^ “Deployment”. Red Hat Enterprise Linux 6: Technical Notes. レッドハット. 2013年12月31日閲覧。
- ^ Poettering, Lennart (2013-06-19), Red Hat Summit talk about systemd in RHEL 7 is now available online, Google Plus 2013年12月31日閲覧。
- ^ Tim Burke (2012-06-27), “Red Hat Enterprise Linux Roadmap Highlights” (PDF), presentation
- ^ OpenSUSE gets an Upstart, The H, (2010-03-26), オリジナルの8 December 2013時点におけるアーカイブ。 2010年4月4日閲覧。
- ^ Chris von Eitzen (2011-11-16), openSUSE 12.1 arrives with systemd and Btrfs, The H, オリジナルの20 April 2012時点におけるアーカイブ。 2011年11月16日閲覧。
- ^ Garrett, Matthew (2009-06-10), Palm Pre, オリジナルの2009-12-23時点におけるアーカイブ。 2009年7月9日閲覧。
- ^ Fremantle, Maemo 2009年8月24日閲覧。
外部リンク
編集- 公式ウェブサイト
- Upstart - Launchpad
- Upstart Cookbook
- Upstart Cookbook
- Initシステム比較: その1およびその2 (LWN.net)
- Initシステム比較表