OpenRC

在類UNIX作業系統使用的以依賴關係為基礎的init系統

類Unix系統上,OpenRC是一個基於依賴的init系統。因為多數發行版切換成了systemd,它被用作一種替代的init系統[3][4][5]。它是Roy Marples創建的,他是也活躍於 Gentoo計劃的NetBSD開發者[6][7]

OpenRC
原作者Roy Marples
開發者OpenRC開發者
首次發佈2007年4月5日,​17年前​(2007-04-05
當前版本0.43.3(2021年4月16日,​3年前​(2021-04-16[1]
原始碼庫 編輯維基數據鏈接
程式語言C[2], Shell
作業系統Linux, FreeBSD, NetBSD, TrueOS
文件大小~900 KB
類型Init守護進程
許可協議2條款BSD許可證
網站www.gentoo.org/proj/en/base/openrc/

OpenRC是GentooAlpine LinuxHyperbola GNU/Linux-libreParabola GNU/Linux-libreArtix Linux英語Artix LinuxMaemo LesteTrueOS[8]和其他類unix系統的缺省init系統,而其他一些發行版比如Devuan把它作為一個選項提供[9]。這意味着這些支持它的系統/發行版的軟件包和守護進程(daemon),帶有或使用可獲得的腳本。

設計

OpenRC構成自一些模塊組件,主要的組件是init(可選)、核心依賴管理系統和守護進程監管器英語Process supervision(supervisor)(可選)。它用C語言和遵循POSIX的shell寫成,這使得它在BSD和Linux系統上可以使用。

OpenRC的核心部份處理依賴管理和init腳本分析。OpenRC通過掃描運行級別,建造依賴圖,接着啟動需要的服務腳本來工作。一旦腳本都已經啟動它就退出。缺省的,OpenRC使用一個修改版本的start-stop-daemon用於守護進程管理[10]

init腳本享有與SysVinit使用的腳本的相似性,但是提供了一些特徵來簡化它們的創建。腳本都假定有start()stop()status(),而系統使用已經聲明的變量來創建這些缺省函數[11]。使用依賴函數來聲明對其他服務的依賴性,這在SysVinit中是用LSB頭完成的。配置和機制是分離的,分別採用在conf.d目錄中的配置文件和在init.d目錄中的init文件。

Openrc-init首先出現在版本0.25中,用作對/sbin/init的可選的替代。還支持一些其他init包括SysVinitBusyBox[12]

監管守護進程(supervise-daemon)首次出現在版本0.21中,給予openrc監管能力。它可以在init腳本中啟用,用作啟動和監控一個守護進程的監管守護進程。支持一些其他其他守護進程監管器包括runit[13]和s6[14]

特徵

  • 在Linux、TrueOS、FreeBSD和NetBSD之間可移植。
  • 並行的服務啟動(缺省關閉)。
  • 基於依賴的引導。
  • 通過cgroups的進程隔離[15]
  • 每服務資源限制(ulimit)。
  • 代碼和配置分離(init.d / conf.d)。
  • 可擴展的啟動腳本。
  • 有狀態的init腳本(它已經啟動了嗎?)。
  • 啟動多個組件的複雜init腳本(Samba(smbd和nmbd),NFS(nfsd、portmap等))。
  • 自動的依賴計算和服務定序。
  • 模塊化架構和可選組件的分離(Cronsyslog)。
  • 有表達力和靈活性的網絡處理(包括VPN,網橋等)。
  • 冗長調試模式。

引用

  1. ^ openrc-0.43.3. [2021-04-16]. (原始內容存檔於2020-11-05). 
  2. ^ openrc, Analysis Summary (Ohloh), [2012-03-10], (原始內容存檔於2012-11-05) 
  3. ^ DistroWatch.com: Put the fun back into computing. Use Linux, BSD.. distrowatch.com. [2020-04-04]. (原始內容存檔於2020-11-17). 
  4. ^ 5 Differences Between TrueOS & Linux. [6 April 2020]. (原始內容存檔於2020-11-17). 
  5. ^ Improving TrueOS: OpenRC. [6 April 2020]. (原始內容存檔於2020-04-06). 
  6. ^ History. [6 April 2020]. (原始內容存檔於2018-02-18). 
  7. ^ Developers. [6 April 2020]. (原始內容存檔於2011-07-19). 
  8. ^ 4. Post Installation Configuration — TrueOS® User Guide. www.trueos.org. [2017-03-12]. (原始內容存檔於2017-09-18) (英語). 
  9. ^ Devuan ASCII 2.0.0 stable release. [2018-07-17]. (原始內容存檔於2018-09-23) (英語). 
  10. ^ user guide. [6 April 2020]. (原始內容存檔於2021-12-11). 
  11. ^ service script guide. [6 April 2020]. (原始內容存檔於2020-11-11). 
  12. ^ OpenRC. [2020-11-15]. (原始內容存檔於2021-01-25). 
  13. ^ runit guide. [6 April 2020]. (原始內容存檔於2021-03-08). 
  14. ^ s6 Guide. [6 April 2020]. (原始內容存檔於2019-03-06). 
  15. ^ CGroups Support. [5 April 2020]. (原始內容存檔於2021-01-25). 

外部連結