OpenRC
原作者 | Roy Marples |
---|---|
開發者 | OpenRC開發者 |
首次發佈 | 2007年4月5日 |
當前版本 | 0.43.3(2021年4月16日[1]) |
原始碼庫 | |
程式語言 | C[2], Shell |
作業系統 | Linux, FreeBSD, NetBSD, TrueOS |
文件大小 | ~900 KB |
類型 | Init守護進程 |
許可協議 | 2條款BSD許可證 |
網站 | www |
在類Unix系統上,OpenRC是一個基於依賴的init系統。因為多數發行版切換成了systemd,它被用作一種替代的init系統[3][4][5]。它是Roy Marples創建的,他是也活躍於 Gentoo計劃的NetBSD開發者[6][7]。
OpenRC是Gentoo、Alpine Linux、Hyperbola GNU/Linux-libre、Parabola GNU/Linux-libre、Artix Linux、Maemo Leste、TrueOS[8]和其他類unix系統的缺省init系統,而其他一些發行版比如Devuan把它作為一個選項提供[9]。這意味着這些支持它的系統/發行版的軟件包和守護進程(daemon),帶有或使用可獲得的腳本。
設計
[編輯]OpenRC構成自一些模塊組件,主要的組件是init(可選)、核心依賴管理系統和守護進程監管器(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包括SysVinit和BusyBox[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等))。
- 自動的依賴計算和服務定序。
- 模塊化架構和可選組件的分離(Cron、syslog)。
- 有表達力和靈活性的網絡處理(包括VPN,網橋等)。
- 冗長調試模式。
引用
[編輯]- ^ openrc-0.43.3. [2021-04-16]. (原始內容存檔於2020-11-05).
- ^ openrc, Analysis Summary (Ohloh), [2012-03-10], (原始內容存檔於2012-11-05)
- ^ DistroWatch.com: Put the fun back into computing. Use Linux, BSD.. distrowatch.com. [2020-04-04]. (原始內容存檔於2020-11-17).
- ^ 5 Differences Between TrueOS & Linux. [6 April 2020]. (原始內容存檔於2020-11-17).
- ^ Improving TrueOS: OpenRC. [6 April 2020]. (原始內容存檔於2020-04-06).
- ^ History. [6 April 2020]. (原始內容存檔於2018-02-18).
- ^ Developers. [6 April 2020]. (原始內容存檔於2011-07-19).
- ^ 4. Post Installation Configuration — TrueOS® User Guide. www.trueos.org. [2017-03-12]. (原始內容存檔於2017-09-18) (英語).
- ^ Devuan ASCII 2.0.0 stable release. [2018-07-17]. (原始內容存檔於2018-09-23) (英語).
- ^ user guide. [6 April 2020]. (原始內容存檔於2021-12-11).
- ^ service script guide. [6 April 2020]. (原始內容存檔於2020-11-11).
- ^ OpenRC. [2020-11-15]. (原始內容存檔於2021-01-25).
- ^ runit guide. [6 April 2020]. (原始內容存檔於2021-03-08).
- ^ s6 Guide. [6 April 2020]. (原始內容存檔於2019-03-06).
- ^ CGroups Support. [5 April 2020]. (原始內容存檔於2021-01-25).