你知道現代Linux五大初始化系統歷史嗎?
導讀 | 在 和其他類 Uniux 系統中,init(初始化)程式是系統啟動時由核心執行的第一個程式,其程式 ID(PID)為 1,並靜默執行在後臺,直到系統關閉。 |
init 程式負責啟動其他所有的程式,比如守護程式、服務和其他後臺程式,因此,它是系統中其它所有程式之母(偏偏叫做“父程式”)。某個程式可以啟動許多個子程式,但在這個過程中,某個子程式的父程式結束之後,該子程式的父程式會變成 init 程式,這麼多年過去了,許多的初始化系統在主流 Linux 脫穎而出,和本文中,我將你來看看在 Linux 作業系統最好的初始化系統。
System V (SysV) 是一個在類 Unix 系統中最為成熟而且大受歡迎的初始化方案,是 Unix/Linux 系統中所有程式的父程式。SysV 是第一個商業 Unix 系統設計的初始化方案。
除了 Gentoo 使用自主的初始化系統、Slackware 使用 BSD 風格的初始化方案外,幾乎所有的 Linux 發行版都率先使用 SysV 作為初始化方案。隨著時間的推移,由於一些設計上的缺陷,有幾個 SysV 初始化替換方案已經開發出來,用以為 Linux 建立更加高效和完美的初始化系統,儘管這些替代方案都超越了 SysV 並提供了更多新特性,但它們仍然和原始 SysV 初始化 保持相容。
SystemD 是一個 Linux 平臺中相對較新的初始化方案。它由 Fedora 15 引入,整合了各類工具以便更好的管理系統。主要目的是:系統初始化、管理和跟蹤引導程式中和系統執行時所有的系統程式。Systemd 全面有別於其他傳統的 Unix 初始化系統,特別是在啟動系統和服務管理方面。它同樣相容 SysV 和 LBS 初始化 。
其中較為突出的特性如下:
- 純粹、簡單、高效的設計
- 啟動時的併發和並行處理
- 更好的 API
- 開啟可選程式的移除功能
- 使用 journald 來支援事件日誌
- 使用 systemd calender timers 來支援任務計劃
- 以二進位制檔案儲存日誌
- 儲存 systemd 的狀態以待今後檢視
- 與 GNOME 更好整合實現等
檢視 Systemd 初始化系統簡介:
Upstart 是一個基於事件的初始化系統,由 Ubuntu 的製作團隊開發的,用以替代 SysV。它可以啟動不同的系統任務和程式、在系統執行時校驗程式並在系統關閉時結束程式。它是一個使用 SysV 和 Systemd 啟動指令碼的混合初始化系統,Upstart 中值得一提的特性如下:
- Ubuntu 的原生初始化系統,但可以執行在其他所有的發行版中
- 基於事件啟動/結束的任務和服務
- 啟動/結束任務和服務時生成事件
- 可以由其他系統程式傳送事件
- 使用 D-Bus 和 init 程式通訊
- 使用者可以啟動/結束其各自的程式
- 可以再現崩潰的程式等
訪問 Upstart 主頁:
OpenRC 是一個基於依賴關係的類 Unix 系統初始化方案,相容 SysV。基本可以說是 SysV 的升級版,但必須要清楚記住的是:OpenRC 並非只是完全替代 /sbin/init 檔案。它所提供的出色特性如下:
- 可執行在包括 Gentoo 和 BSD 在內的多數 Linux 系統之中
- 支援硬體觸發的初始化指令碼(LCTT 譯註:如硬體熱插拔所觸發的)
- 支援單個配置檔案
- 不支援單個服務配置檔案
- 以守護程式的方式執行
- 並行服務啟動等
訪問 OpenRC 主頁:
runit 同樣是一個跨平臺初始化系統,可以執行在 GNU/Linux、Solaris、BSD 和 Mac OS X 中,用替代 SysV,同時提供服務監控。
相比於 SysV 和其他 Linux 初始化系統,它提供了一些好用和卓越的元件,如下:
- 服務監控:每個服務都關聯一個服務目錄
- 清理程式狀態,以保證每個程式處於乾淨狀態
- 可靠的日誌機制
- 快速的系統啟動和關閉
- 可移植
- 打包方便
- 程式碼體積小等
訪問 runit 主頁:
正如我之前所說的,Linux 中的初始化系統負責啟動和管理所有的程式。此外,SysV 是 Linux 系統中主要的初始化系統,但由於一些效能缺陷,系統開發者已經開發出幾個替代品。在這裡,我已經介紹了幾個可用的替代方案,但你可能覺得有一些其他的初始化系統值得在此提及。請在下方的評論區將你的想法告訴我們。
原文來自:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2933664/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 你應該知道的Linux歷史Linux
- 常見的Linux系統有哪些?你知道嗎?Linux
- 關於Linux系統,這些你都知道嗎?Linux
- iOS歷史(iOS系統發展歷史)iOS
- 如果把 AI 寫進歷史書,這些必考點你知道嗎?AI
- linux系統安全問題,如何清除你的cli操作歷史記錄Linux
- 你真的知道什麼是系統呼叫嗎?
- 你知道如何學習Linux嗎?Linux
- Linux伺服器作業系統的六大特性,你都知道嗎?Linux伺服器作業系統
- Linux系統上最快的3個GPU加速終端模擬器你知道嗎?LinuxGPU
- Linux系統的發展歷史和學習前景介紹Linux
- Linux是什麼作業系統?發展歷史介紹Linux作業系統
- HarmonyOS系統的發展歷史
- 數學簡史:現代數學的五大應用
- Linux發展歷史Linux
- 你知道python常見的庫有哪些嗎?五大python庫Python
- 你知道入坑Linux需掌握哪些技能嗎?Linux
- 你知道在Linux系統下都有哪些命令可以快速查詢到對應檔案嗎?Linux
- Linux系統的六大特點,你知道幾個?Linux
- 關於Linux作業系統,這些你必須知道!Linux作業系統
- Linux系統擁有哪些特性?這些你必須知道!Linux
- 4.14你知道入坑Linux需掌握哪些技能嗎?Linux
- 部署Linux系統的經歷Linux
- Linux系統下如何配置DNS?這些你肯定不知道!LinuxDNS
- 你知道前端是如何實現水印的嗎前端
- 你知道如何用 PHP 實現多程式嗎?PHP
- 10.10硬碟,作業系統的歷史發展硬碟作業系統
- 萬能的python程式設計,這五大應用領域你知道嗎?Python程式設計
- 次部署Linux系統的經歷Linux
- Linux系統入門經歷分享Linux
- linux 清空歷史執行記錄Linux
- 你知道Redis可以實現延遲佇列嗎?Redis佇列
- CAS你知道嗎?底層如何實現?ABA問題又是什麼?關於這些你知道答案嗎
- 我經歷過的監控系統演進史
- Linux黑話你知道嗎?啥是顯示伺服器Linux伺服器
- 關於Linux系統,這些知識你都瞭解嗎?Linux
- 你知道嗎?一個好的ERP系統需要具備這些特點
- GTA開發歷史:親爸爸的時代