Upstartは、いくつかのUnix系コンピュータオペレーティングシステムで起動時にタスクを実行する手法として古くから備わるinitデーモンの代わりとなるもので、イベント駆動型である点に特徴がある。Upstartは、当時カノニカルの従業員であったスコット・ジェームズ・レムナント英語版が開発した。

Upstart
Upstart logo
作者 スコット・ジェームズ・レムナント英語版
開発元 カノニカル
初版 2006年8月24日 (18年前) (2006-08-24)
最新版
1.13.2[1] / 2014年9月4日 (10年前) (2014-09-04)
リポジトリ ウィキデータを編集
プログラミング
言語
C言語
対応OS Linux
サポート状況 開発終了
種別 initデーモン
ライセンス GPLv2
公式サイト upstart.ubuntu.com
テンプレートを表示

原理の説明

編集

元々古くから備わるinitプロセスは、電源オンの後にコンピュータを通常の起動状態にすることや、シャットダウン前にきちんとサービスを終了することにしか責任を持たなかった。このため、前記の設計により現在のタスクが完了するまで将来のタスクは厳格に同期化され、さらにブロックされてしまう。さらに準備やクリーンアップ機能による制限を受けるため、これらのタスクはあらかじめ定義されねばならない。これでは現代のデスクトップコンピュータにおけるスタートアップ以外の、以下に挙げるような様々なタスクを簡潔に処理できなくなる:

  • マシン起動中におけるUSBフラッシュドライブなどのポータブルストレージやネットワークデバイスの脱着。
  • システムロックなしの、特にディスクがスキャンされるまで電源すらオンになっていない場合における新規ストレージデバイスの発見とスキャン。
  • デバイス用ファームウェアのロード。ロードはデバイスが発見された後かつデバイスが使えない前に行わなければならないはずである。

Upstartのイベント駆動型モデルにより、イベント生成とは非同期にイベント応答ができる[2]

設計

編集

Upstartはブート時のタスクとサービスの起動とシャットダウン時のタスクとサービスの停止を非同期に行い、システム動作中にはタスクとサービスの管理も行う。

System V initとの完全な後方互換性を保ち、容易に移行可能であることが設計目標であった[3]。そのため、既存のSystem V init用スクリプトを無修正で実行可能である。いつも正常起動への完全な移行を仮定し要求するが、スタートアップの古くから備わる手法と新しい手法とが混在した環境をサポートしない大半の他のinit代替手法(systemdOpenRCなど)とそういった点で異なる[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はChromeOSChromium OSで使われている[9]

Upstartをある程度サポートするかしていたが、デフォルトinitシステムとしての使用をやめたか既に使用していないLinuxディストリビューション:

  • Debianjessieリリース立ち上げ時にデフォルトinitシステムをUpstartへ切り替えることを検討したが[10]、systemdへ切り替えることになった[11]。Upstartは結局2015年12月にDebianアーカイブから削除された[12]
  • UbuntuUbuntu 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]。そのため、CentOSScientific 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 PrePalm Pixi(共にパームがHPに買収される以前より)、HP VeerおよびHP Pre 3スマートフォン用のHP webOSで使われている[21]
  • ノキアのインターネットタブレット用のMaemo 5ではsysvinitをUpstartに置き換えた[22]

関連項目

編集

脚注

編集
  1. ^ [Branch ~upstart-devel/upstart/trunk] Rev 1662: * NEWS: Release 1.13.2”. Ubuntu.com (2014年9月4日). 2017年1月18日閲覧。
  2. ^ Remnant, Scott James (2006年8月26日). “Upstart in Universe”. Netsplit. 2009年9月12日閲覧。[リンク切れ]
  3. ^ Launch Pad, Ubuntu, https://bugs.launchpad.net/ubuntu/+source/upstart/+bug/605007 
  4. ^ “Discussion of design and implementation of Upstart”, Ubuntu Wiki, カノニカル, https://wiki.ubuntu.com/ReplacementInit 
  5. ^ The Upstart Cookbook”. カノニカル. 26 January 2014閲覧。
  6. ^ The Upstart Cookbook: Bridges”. カノニカル. 26 January 2014閲覧。
  7. ^ “Upstart”, About (Ubuntu), http://www.ubuntulinux.org/testing/karmic/alpha6#Upstart 
  8. ^ Shuttleworth, Mark. “Losing graciously”. 22 March 2014時点のオリジナルよりアーカイブ。14 February 2014閲覧。
  9. ^ Software Architecture: Chromium OS design documents, Google, https://sites.google.com/a/chromium.org/dev/chromium-os/chromiumos-design-docs/software-architecture 25 January 2014閲覧。 
  10. ^ Petter Reinholdtsen (2009-09-05), The future of the boot system in Debian, Debian.org, http://lists.debian.org/debian-devel-announce/2009/09/msg00003.html 
  11. ^ The Debian technical committee vote concludes, Lwn.net, (2014-02-11), https://lwn.net/Articles/585363/ 2014年2月11日閲覧。 
  12. ^ RM: upstart -- RoQA; unmaintained, debian.org, (2015-12-18), https://packages.qa.debian.org/u/upstart/news/20160111T052637Z.html 2016年1月26日閲覧。 
  13. ^ VividVervet/ReleaseNotes, (2015-04-24), https://wiki.ubuntu.com/VividVervet/ReleaseNotes 
  14. ^ Fedora 14 Accepted Features, (2010-07-13), https://fedoraproject.org/wiki/Releases/14/FeatureList 2010年7月13日閲覧。 
  15. ^ Fedora defers systemd to F15”. Linux Weekly News (2010年9月14日). 2010年9月17日閲覧。
  16. ^ Deployment”. Red Hat Enterprise Linux 6: Technical Notes. レッドハット. 2013年12月31日閲覧。
  17. ^ Poettering, Lennart (2013-06-19), Red Hat Summit talk about systemd in RHEL 7 is now available online, Google Plus, https://plus.google.com/+LennartPoetteringTheOneAndOnly/posts/cBYAcrNZcz9 2013年12月31日閲覧。 
  18. ^ Tim Burke (2012-06-27), “Red Hat Enterprise Linux Roadmap Highlights” (PDF), presentation, http://rhsummit.files.wordpress.com/2012/03/burke_rhel_roadmap.pdf 
  19. ^ OpenSUSE gets an Upstart, The H, (2010-03-26), オリジナルの8 December 2013時点におけるアーカイブ。, https://web.archive.org/web/20131208184815/http://www.h-online.com/open/news/item/OpenSUSE-gets-an-Upstart-964636.html 2010年4月4日閲覧。 
  20. ^ Chris von Eitzen (2011-11-16), openSUSE 12.1 arrives with systemd and Btrfs, The H, オリジナルの20 April 2012時点におけるアーカイブ。, https://web.archive.org/web/20120420063250/http://www.h-online.com/open/news/item/openSUSE-12-1-arrives-with-systemd-and-Btrfs-1380033.html 2011年11月16日閲覧。 
  21. ^ Garrett, Matthew (2009-06-10), Palm Pre, オリジナルの2009-12-23時点におけるアーカイブ。, https://web.archive.org/web/20091223142117/http://mjg59.livejournal.com/111453.html 2009年7月9日閲覧。 
  22. ^ Fremantle, Maemo, http://wiki.maemo.org/Task:Maemo_roadmap/Fremantle 2009年8月24日閲覧。 

外部リンク

編集