systemd 與 sysVinit 彩版對照表
systemd 是一種新型init系統「譯者註:每個作業系統都有一個啟動程式,而Linux init是Linux系統操作中不可缺少的程式之一。所謂的init進程,它是一個由核心啟動的使用者級進程。核心自行啟動(已經被載入記憶體,開始運行,並已初始化所有的裝置驅動程式和資料結構等)之後,就通過啟動一個使用者級程式init的方式,完成引導進程。所以init始終是第一個進程(其進程編號始終為1)」,最早在Fedora中使用「譯者註:據維基百科資料:http://en.wikipedia.org/wiki/Systemd#Adoption,最早使用 systemd 的是gentoo,最早使用並成為預設 init system 的是openSUSE。」,經過調整適應了其它許多發行版,例如RedHat、Suse和CentOS。
曆史上,我們大部分人用過傳統的SysV init 初始化指令碼,它通常情況下在/etc/rc.d/init.d/檔案夾下。這些指令碼調用守護進程二進位代碼,在後台fork一個進程。
Linux 引導方式systemd upstart sysV
為什麼systemd會被如此迅速的採用?
儘管shell指令碼非常的靈活,但是很難實現像superviseing(監管)進程和並存執行命令這樣的任務。
通過對systemd的新式守護進程的介紹,我們發現systemd可以在runtime(運行時)更加簡單的監管和控制守護進程,並且簡化了監控的實現方式(implementation)。
systemctl命令是systemd團隊一個非常好的首創。
這個命令能夠顯示更多的詳細錯誤資訊和包括啟動錯誤在內的服務執行階段錯誤。systemd引入了一個新術語:cgroups(控制組),它基本上是可被分層次安排的進程工作群組。「譯者註:這裡簡單介紹一下cgroup(control group)稱為Containers,Containers著眼於資源的分配,利用configfs作配置。它有兩個重要概念:第一是subsystem,核心可以給進程提供的服務/資源;第二是container,一個進程組,成員共用同樣的一個或多個子系統分配限制。Containers是分層次的,一個container可以hold多個container。它的可取之處是建立了一個資源分派的架構,其它開發人員可以利用這個架構去開發自己的資源分派patch,比如磁碟裝置。」
如果僅僅通過原來的初始化系統,決定哪個進程是做什麼的、屬於哪個使用者的變得越來越困難。
但是通過systemd,當一個進程派生其它進程時,這些子進程會被自動變成父進程式控制制組的成員,這樣一來就可以避免繼承的混亂。
有許多新的運行在 rhel / centos 7.0 上的 systemd 命令可以替代 sysvinit 的對應命令(見)。你也可以下載 本文的 PDF 版本。
------------------------------------------分割線------------------------------------------
免費在 http://linux.bkjia.com/
使用者名稱與密碼都是www.bkjia.com
具體下載目錄在 /2014年資料/9月/11日/systemd 與 sysVinit 彩版對照表
下載方法見
------------------------------------------分割線------------------------------------------
本文永久更新連結地址: