Upstart

以事件為基礎的傳統init常駐程式替代品 来自维基百科,自由的百科全书

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

快速預覽 原作者, 開發者 ...
Upstart
Thumb
原作者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行程原本只負責在開機後將電腦帶入正常執行狀態,並且在正常關機前關閉服務。因此,它的設計是嚴格同步的,且會阻塞未來的任務,直到完成當前任務。因為受限於準備或清除函式,它的任務也是事先定義的。這使得它無法簡潔地處理現代桌面電腦上的各種非啟動任務,其中包括:

  • 機器執行時添加或刪除USB隨身碟和其他可攜式儲存/網路裝置
  • 發現並掃描新儲存裝置而不鎖定系統,尤其是當磁碟沒被掃描就不執行時
  • 韌體需要在檢測裝置之後、在它可用之前載入

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發行版:

  • 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的變體,如CentOSScientific LinuxOracle Linux。RHEL 7使用systemd取代upstart。[16][17]
  • openSUSE在11.3 Milestone 4版包含了upstart,但未作為預設。[18]在openSUSE 12.1版中,systemd取代Upstart作為預設init系統。[19]
  • Upstart被用於惠普Palm PrePalm Pixi(在Palm被惠普收購之前)、HP VeerHP Pre 3智慧型手機HP TouchPad平板中的webOS[20]並為N9和N950手機上的MeeGo保留,儘管MeeGo與Moblin合併後正向systemd過渡。[來源請求]
  • Kindle 在韌體也使用 Upstart 來控制裝置的啟動及服務。[來源請求]

參見

參考

外部連結

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.