現代Linux的五大初始化系統(1992-2015)
init 程式負責啟動其他所有的程式,比如守護程式、服務和其他後臺程式,因此,它是系統中其它所有程式之母(偏偏叫做“父程式”)。某個程式可以啟動許多個子程式,但在這個過程中,某個子程式的父程式結束之後,該子程式的父程式會變成 init 程式。
這麼多年過去了,許多的初始化系統在主流 Linux 脫穎而出,和本文中,我將你來看看在 Linux 作業系統最好的初始化系統。
1. System V Init
System V (SysV) 是一個在類Unix系統中最為成熟而且大受歡迎的初始化方案,是 Unix/Linux 系統中所有程式的父程式。SysV是第一個商業 Unix 系統設計的初始化方案。
除了Gentoo使用自主的初始化系統、Slackware使用 BSD 風格的初始化方案外,幾乎所有的 Linux 發行版都率先使用 SysV作為初始化方案。
隨著時間的推移,由於一些設計上的缺陷,有幾個 SysV初始化替換方案已經開發出來,用以為 Linux 建立更加高效和完美的初始化系統。
儘管這些替代方案都超越了 SysV 並提供了更多新特性,但它們仍然和原始 SysV 初始化指令碼保持相容。
2. SystemD
SystemD 是一個 Linux 平臺中相對較新的初始化方案。它由 Fedora 15 引入,整合了各類工具以便更好的管理系統。主要目的是:系統初始化、管理和跟蹤引導程式中和系統執行時所有的系統程式。
Systemd 全面有別於其他傳統的 Unix 初始化系統,特別是在啟動系統和服務管理方面。它同樣相容 SysV 和 LBS 初始化指令碼。
其中較為突出的特性如下:
- 純粹、簡單、高效的設計
- 啟動時的併發和並行處理
- 更好的 API
- 開啟可選程式的移除功能
- 使用 journald 來支援事件日誌
- 使用 systemd calender timers 來支援任務計劃
- 以二進位制檔案儲存日誌
- 儲存 systemd 的狀態以待今後檢視
- 與 GNOME 更好整合實現等
檢視 Systemd 初始化系統簡介:https://fedoraproject.org/wiki/Systemd
3. Upstart
Upstart 是一個基於事件的初始化系統,由 Ubuntu 的製作團隊開發的,用以替代 SysV。它可以啟動不同的系統任務和程式、在系統執行時校驗程式並在系統關閉時結束程式。
它是一個使用 SysV 和 Systemd 啟動指令碼的混合初始化系統,Upstart 中值得一提的特性如下:
- Ubuntu 的原生初始化系統,但可以執行在其他所有的發行版中
- 基於事件啟動/結束的任務和服務
- 啟動/結束任務和服務時生成事件
- 可以由其他系統程式傳送事件
- 使用 D-Bus 和 init 程式通訊
- 使用者可以啟動/結束其各自的程式
- 可以再現崩潰的程式等
訪問 Upstart 主頁:http://upstart.ubuntu.com/index.html
4. OpenRC
OpenRC 是一個基於依賴關係的類 Unix 系統初始化方案,相容 SysV。基本可以說是 SysV 的升級版,但必須要清楚記住的是:OpenRC 並非只是完全替代 /sbin/init 檔案。
它所提供的出色特性如下:
- 可執行在包括 Gentoo 和 BSD 在內的多數 Linux 系統之中
- 支援硬體觸發的初始化指令碼
- 支援單個配置檔案
- 不支援單個服務配置檔案
- 以守護程式的方式執行
- 並行服務啟動等
訪問 OpenRC 主頁:https://wiki.gentoo.org/wiki/OpenRC
5. runit
runit 同樣是一個跨平臺初始化系統,可以執行在 GNU/Linux、Solaris、BSD 和 Mac OS X 中,用替代 SysV,同時提供服務監控。
相比於 SysV 和其他 Linux 初始化系統,它提供了一些好用和卓越的元件,如下:
- 服務監控:每個服務都關聯一個服務目錄
- 清理程式狀態,以保證每個程式處於乾淨狀態
- 可靠的日誌機制
- 快速的系統啟動和關閉
- 可移植
- 打包方便
- 程式碼體積小等
訪問 runit 主頁:http://smarden.org/runit/
正如我之前所說的,Linux 中的初始化系統負責啟動和管理所有的程式。此外,SysV 是 Linux 系統中主要的初始化系統,但由於一些效能缺陷,系統開發者已經開發出幾個替代品。
在這裡,我已經介紹了幾個可用的替代方案,但你可能覺得有一些其他的初始化系統值得在此提及。請在下方的評論區將你的想法告訴我們。
相關文章
- 你知道現代Linux五大初始化系統歷史嗎?Linux
- Linux系統初始化*引數初始化(指令碼)Linux指令碼
- CRM系統的五大優點及表現
- 初始化linux系統指令碼薦Linux指令碼
- Linux初始化系統V的Init過程(轉)Linux
- 代購系統代購系統搭建
- 淺析 Linux 初始化 init 系統: SystemdLinux
- 【轉】Linux初始化init系統[sysvinitsystemdupstart]Linux
- 漫談傳統的 Linux 初始化系統的執行級別Linux
- 系統初始化
- 淺析 Linux 初始化 init 系統(1):sysvinitLinux
- 淺析 Linux 初始化 init 系統(3) SystemdLinux
- 數學簡史:現代數學的五大應用
- 現代資料中心對UPS系統的要求
- 現代分散式系統架構的權衡分析分散式架構
- 淺析 Linux 初始化 init 系統(2): UpStartLinux
- 現代資訊系統產品特點
- Ubuntu系統初始化Ubuntu
- NFV時代的新一代OSS系統:三大價值與五大功能要素
- linux系統最小化安裝後的初始化指令碼Linux指令碼
- [譯] 支撐現代儲存系統的演算法演算法
- Aero:用rust編寫的新現代作業系統Rust作業系統
- 深入分析CRM系統對現代企業的作用
- Linux檔案系統的實現Linux
- 五大CRM系統的重要功能
- ModStartBlog 現代化個人部落格系統
- 系統初始化腳步
- 代購系統搭建
- 機器人系統的方程求解(現代控制理論2)機器人
- 基於Linux系統的影片點播系統的實現(轉)Linux
- 現代作業系統-原理與實現【讀書筆記】作業系統筆記
- 客戶管理系統的五大優勢
- 區別CRM系統的五大特色(下)
- 現代IM系統中訊息推送和儲存架構的實現架構
- 歷史系統的現代化改造之路
- linux系統 重啟磁碟機代號錯亂問題Linux
- 神荼之眼——打造現代化監控系統
- Ubuntu成為最廣泛Linux作業系統的五大理由UbuntuLinux作業系統