Upstart
以事件為基礎的傳統init常駐程式替代品
Upstart是一個基於事件的init程式 ,用於替代傳統的init(多種類Unix電腦作業系統啟動時用於執行任務的程式)。它是由Canonical公司前僱員Scott James Remnant所寫。
原作者 | Scott James Remnant |
---|---|
開發者 | Canonical公司 |
首次發佈 | 2006年8月24日 |
目前版本 | 1.13.2[1](2014年9月4日 ) |
原始碼庫 | |
程式語言 | C |
作業系統 | Linux |
類型 | 初始化常驻程式 |
許可協定 | GPLv2 |
網站 | upstart |
解釋
傳統的init行程原本只負責在開機後將電腦帶入正常執行狀態,並且在正常關機前關閉服務。因此,它的設計是嚴格同步的,且會阻塞未來的任務,直到完成當前任務。因為受限於準備或清除函數,它的任務也是事先定義的。這使得它無法簡潔地處理現代桌面電腦上的各種非啟動任務,其中包括:
Upstart的事件驅動模型允許它以非同步方式對生成的事件作出回應。[2]
設計
Upstart是非同步工作的;它在系統執行時監督服務,並且在開關機時啟動和關閉任務和服務。
對sysvinit簡單的過渡和完善的向下相容是明確的設計目標;[3]因此,Upstart能執行未經修改的sysvinit指令碼。因此,與大多數其他的init替代(除了systemd和OpenRC)不同,它們通常假設並要求徹底的過渡,以正常執行,且不支援新舊啟動方法混合的環境。[4]
通過使用initctl輸入自訂的單一事件,或整合更多更複雜事件的事件橋,Upstart允許擴充其事件模型。[5]預設情況下,Upstart包括介面(socket)、dbus、udev、檔案及dconf事件橋;另外,可以有更多種橋(例如Mach埠橋,或devd(FreeBSD系統上)橋)。[6]
採用
使用Upstart作為預設init系統的Linux發行版及其他基於Linux內核的作業系統:
支援或已在一定程度上支援Upstart,但棄用它作為預設init系統的Linux發行版:
- Debian在考慮切換至Upstart後,[8]決定systemd將從jessie版(Debian 8)開始作為預設init系統。[9]
- Ubuntu首次在2006年底6.10 (Edgy Eft)版中包含Upstart,以取代sysvinit。Ubuntu 9.10(Karmic Koala) Alpha 6中推出可原生啟動的Upstart。[10]反過來,在2014年Debian專案決定在Debian 8版本中使用systemd後,Ubuntu在15.04起亦改用systemd,以保持與上游一致。[11][12]
- 在Fedora 9中,Upstart替換了sysvinit,然而,systemd在Fedora15版本替代了Upstart。[13][14]
- 紅帽在他們的Red Hat Enterprise Linux 6中包含了Upstart。[15]因此,它也被用於RHEL 6的變體,如CentOS、Scientific Linux和Oracle Linux。RHEL 7使用systemd取代upstart。[16][17]
- openSUSE在11.3 Milestone 4版包含了upstart,但未作為預設。[18]在openSUSE 12.1版中,systemd取代Upstart作為預設init系統。[19]
- Upstart被用於惠普Palm Pre、Palm Pixi(在Palm被惠普收購之前)、HP Veer、HP Pre 3智能電話HP TouchPad和平板中的webOS[20]並為N9和N950手機上的MeeGo保留,儘管MeeGo與Moblin合併後正向systemd過渡。[來源請求]
- Kindle 在韌體也使用 Upstart 來控制裝置的啟動及服務。[來源請求]
參見
參考
- ^ All releases of upstart. Freecode.com. [2014-09-04]. (原始內容存檔於2016-03-04).
- ^ Remnant, Scott James. Upstart in Universe. Netsplit. 2006-08-26 [2009-09-12]. (原始內容存檔於2009-09-04).
- ^ Upstart, Launch Pad (605007), Ubuntu, [2014-01-27], (原始內容存檔於2020-06-12).
- ^ Discussion of design and implementation of Upstart, Ubuntu Wiki, Canonical, [2014-01-27], (原始內容存檔於2020-05-26).
- ^ The Upstart Cookbook. Canonical. [26 January 2014]. (原始內容存檔於2014-02-14).
|chapter=
被忽略 (幫助) - ^ The Upstart Cookbook. Canonical. [26 January 2014]. (原始內容存檔於2014-02-14).
|chapter=
被忽略 (幫助) - ^ Software Architecture: Chromium OS design documents, Google, [25 January 2014], (原始內容存檔於2022-04-09)
- ^ Petter Reinholdtsen, The future of the boot system in Debian, Debian.org, 2009-09-05 [2014-01-27], (原始內容存檔於2022-01-09)
- ^ The Debian technical committee vote concludes, Lwn.net, 2014-02-11 [2014-02-11], (原始內容存檔於2014-02-22)
- ^ Upstart, About (Ubuntu)[永久失效連結]
- ^ Shuttleworth, Mark. Losing graciously. [14 February 2014]. (原始內容存檔於2014-03-22).
- ^ VividVervet/ReleaseNotes - Ubuntu Wiki. [2017-10-17]. (原始內容存檔於2015-06-11).
- ^ Fedora 14 Accepted Features, 2010-07-13 [2010-07-13], (原始內容存檔於2022-03-27)
- ^ Fedora defers systemd to F15. Linux Weekly News. 2010-09-14 [2010-09-17]. (原始內容存檔於2022-04-09).
- ^ Deployment. Red Hat Enterprise Linux 6: Technical Notes. 紅帽公司. [2013-12-31]. (原始內容存檔於2013-12-31).
- ^ Lennart Poettering, Red Hat Summit talk about systemd in RHEL 7 is now available online, Google Plus, 2013-06-19 [2013-12-31], (原始內容存檔於2017-03-03)
- ^ Tim Burke, Red Hat Enterprise Linux Roadmap Highlights (PDF), presentation, 2012-06-27 [2014-04-09], (原始內容 (PDF)存檔於2013-01-18)
- ^ OpenSUSE gets an Upstart, The H, 2010-03-26 [2010-04-04], (原始內容存檔於2013-12-08)
- ^ Chris von Eitzen, openSUSE 12.1 arrives with systemd and Btrfs, The H, 2011-11-16 [2011-11-16], (原始內容存檔於2012-04-20)
- ^ Palm Pre, Live Journal, [2009-07-09], (原始內容存檔於2009-12-23)