前言:
這篇是之前針對systemd的研究。
systemd是Linux新的啟動管理器,專門用來取代init(SysV init),
但它和舊的init有非常大的差異性。
systemd介紹參考:
systemd的爭議:
systemd的大麻煩除了設定比較複雜外,
systemd本身包裹了非常多的系統服務,也相依了非常多的library和kernel功能,
從wiki上描述到,kFreeBSD無法納入就是個關鍵實例,
看看systemd的組件圖:
光看組件圖就覺得非常複雜。
區分3部份來看這個組件圖:
1. Library
它相依了dbus、pam、crypt、audit、notify這些services library,
這些library實際上都還相依在更底層的library,
像dbus、pam、audit、notify這幾個都很不單純,本身都相依不少library。
2. Kernel
它直接使用了Linux Kernel中cgroup、autofs、dbus這幾個「Linux Kernel功能」,
光1和2就能知道為何GNU/kFreeBSD無法納入,
GNU/Debian考慮半天後,決定先用分支方式支援,
這擺明了就是Linux Only的設計阿.............
試問,FreeBSD如何支援cgroup?如何支援autofs?如何支援dbus?
重新實做會引用的License問題如何解決?
3. systemd內部管理器
systemd不只有原先init的功能,看看systemd Daemons,
就我目前的了解,它至少包含或取代了下列功能:
- init
- inetd
- crontab
- syslog
- 網路管理ifupdown/NetworkManager
- 系統時間、時區管理
- 登入管理器/gdm
- crontab部份參考:
如何使用 systemd 中的定時器
- syslog部份:
它透過journald來取代rsyslog和syslog
- 系統時間、時區管理:
如何在 systemd 下管理Linux系統的時間和日期
- 網路管理:
參考:
嘗鮮: 新的網絡連接管理工具 systemd-networkd
- systemd-network man page
- ArchLinux systemd-networkd
- Introduction to networkd, network management from systemd
- 登入管理器
不熟,但應該就是logind搭配pam
參考:
systemd除了這些外,它將udev專案整個併入,也將dbus幾乎併入,
加上它侵入多數的Linux發行版本,systemd一統Linux指日可待。
4. Application
按前面參考的爭議提到,現在GNOME對systemd的依賴度越來越高,
Ubuntu 14.04的GNOME suspend動作,裡面很多都直接透過systemd進行處理。
當systemd往下吃掉低階系統服務(udev、dbus),再往下依賴Kernel,往上咬住桌面系統GNOME,
那未來Linux就只剩下systemd,FreeBSD也不用搞下去了。
因為systemd包山包海的特性,因此直接可以想到,它在各發行版不一定會是full support,
systemd本身是Fedora的開發專案,RedHat系列不用說,全包應該是正常的,
但Ubuntu自己也開發和主導了不少專案,中間就沒這麼單純了。
參考:
裡面給出了幾個發行版使用systemd的部份的參考連結。
沒有留言:
張貼留言