Upstart

以事件為基礎的傳統init常駐程式替代品

Upstart是一個基於事件init程式 ,用於替代傳統的init(多種類Unix計算機操作系統啟動時用於執行任務的程序)。它是由Canonical公司前雇員Scott James Remnant所寫。

Upstart
Upstart logo
原作者Scott James Remnant
開發者Canonical公司
首次發布2006年8月24日,​18年前​(2006-08-24
當前版本1.13.2[1](2014年9月4日,​10年前​(2014-09-04
源代碼庫 編輯維基數據鏈接
編程語言C
操作系統Linux
類型初始化常驻程式
許可協議GPLv2
網站upstart.ubuntu.com

解釋

編輯

傳統的init進程原本只負責在開機後將計算機帶入正常運行狀態,並且在正常關機前關閉服務。因此,它的設計是嚴格同步的,且會阻塞未來的任務,直到完成當前任務。因為受限於準備或清除函數,它的任務也是事先定義的。這使得它無法簡潔地處理現代桌面計算機上的各種非啟動任務,其中包括:

  • 機器運行時添加或刪除U盤和其他便攜式存儲/網絡設備
  • 發現並掃描新存儲設備而不鎖定系統,尤其是當磁盤沒被掃描就不運行時
  • 固件需要在檢測設備之後、在它可用之前加載

Upstart的事件驅動模型允許它以異步方式對生成的事件作出回應。[2]

設計

編輯

Upstart是異步工作的;它在系統運行時監督服務,並且在開關機時啟動和關閉任務和服務。

sysvinit簡單的過渡和完善的向後兼容是明確的設計目標;[3]因此,Upstart能運行未經修改的sysvinit腳本。因此,與大多數其他的init替代(除了systemdOpenRC)不同,它們通常假設並要求徹底的過渡,以正常運行,且不支持新舊啟動方法混合的環境。[4]

通過使用initctl輸入自定義的單一事件,或整合更多更複雜事件的事件橋,Upstart允許擴展其事件模型。[5]默認情況下,Upstart包括接口(socket)、dbus、udev、文件及dconf事件橋;另外,可以有更多種橋(例如Mach端口橋,或devd(FreeBSD系統上)橋)。[6]

採用

編輯

使用Upstart作為默認init系統的Linux發行版及其他基於Linux內核的操作系統:

支持或已在一定程度上支持Upstart,但棄用它作為默認init系統的Linux發行版:

參見

編輯

參考

編輯
  1. ^ All releases of upstart. Freecode.com. [2014-09-04]. (原始內容存檔於2016-03-04). 
  2. ^ Remnant, Scott James. Upstart in Universe. Netsplit. 2006-08-26 [2009-09-12]. (原始內容存檔於2009-09-04). 
  3. ^ Upstart, Launch Pad (605007), Ubuntu, [2014-01-27], (原始內容存檔於2020-06-12) .
  4. ^ Discussion of design and implementation of Upstart, Ubuntu Wiki, Canonical, [2014-01-27], (原始內容存檔於2020-05-26) .
  5. ^ The Upstart Cookbook. Canonical. [26 January 2014]. (原始內容存檔於2014-02-14).  |chapter=被忽略 (幫助)
  6. ^ The Upstart Cookbook. Canonical. [26 January 2014]. (原始內容存檔於2014-02-14).  |chapter=被忽略 (幫助)
  7. ^ Software Architecture: Chromium OS design documents, Google, [25 January 2014], (原始內容存檔於2022-04-09) 
  8. ^ Petter Reinholdtsen, The future of the boot system in Debian, Debian.org, 2009-09-05 [2014-01-27], (原始內容存檔於2022-01-09) 
  9. ^ The Debian technical committee vote concludes, Lwn.net, 2014-02-11 [2014-02-11], (原始內容存檔於2014-02-22) 
  10. ^ Upstart, About (Ubuntu) [永久失效連結]
  11. ^ Shuttleworth, Mark. Losing graciously. [14 February 2014]. (原始內容存檔於2014-03-22). 
  12. ^ VividVervet/ReleaseNotes - Ubuntu Wiki. [2017-10-17]. (原始內容存檔於2015-06-11). 
  13. ^ Fedora 14 Accepted Features, 2010-07-13 [2010-07-13], (原始內容存檔於2022-03-27) 
  14. ^ Fedora defers systemd to F15. Linux Weekly News. 2010-09-14 [2010-09-17]. (原始內容存檔於2022-04-09). 
  15. ^ Deployment. Red Hat Enterprise Linux 6: Technical Notes. 紅帽公司. [2013-12-31]. (原始內容存檔於2013-12-31). 
  16. ^ 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) 
  17. ^ Tim Burke, Red Hat Enterprise Linux Roadmap Highlights (PDF), presentation, 2012-06-27 [2014-04-09], (原始內容 (PDF)存檔於2013-01-18) 
  18. ^ OpenSUSE gets an Upstart, The H, 2010-03-26 [2010-04-04], (原始內容存檔於2013-12-08) 
  19. ^ Chris von Eitzen, openSUSE 12.1 arrives with systemd and Btrfs, The H, 2011-11-16 [2011-11-16], (原始內容存檔於2012-04-20) 
  20. ^ Palm Pre, Live Journal, [2009-07-09], (原始內容存檔於2009-12-23) 

外部連結

編輯