全新的 Linux 一號行程--
systemd
by Freedman
2014-03-04
Q__
f"_<
○ ○▽ ............. 自由車上自由人
常見的一號行程
● init:
debian, archlinux ~2012-10-12, BSD...
● upstart:
Ubuntu 6.10~, Fedora 9~14
● systemd:
Fedora 15~, archlinu...
常見的系統開機過程
GRUB/LILO/...
載入系統
核心以 Initrd 設定系統
Init Systemd
Init
(upstart)
SysV int | Systemd
prefdm
gdm kdm...
mingetty...
...
systemd 專案
●
由 Lennart Poettering 與 Kay Sievers 開發
●
Linux 上的系統與服務管理程式
●
可以相容、取代 init
●
主要效益:快速啟動、服務程式的線上抽換
●
以 LGPL v2.1+...
運作概念
● init:
設定檔是文件和 shell 腳本,以啟動各種行程為系
統的運作概念
– /etc/inittab /etc/init.d /etc/rc[0~6].d/
● upstart:
基於事件,在事件發生時啟動各種程式,還能支...
systemd 架構圖
圖片取自維基百科 http://zh.wikipedia.org/wiki/File:Systemd_components.svg
systemd 的特色
●
啟動速度較快
– 不使用 shell script
– 各服務平行啟動(只在 SSD 上才會加快)
●
提供系統服務快照
●
掛載及自動掛載管理
●
以事務系統 (transaction) 處理相依服務
●
服務的無...
Target vs. Runlevel
SysVinit systemd
init 0 systemctl poweroff
init 1 systemctl isolate rescue.target
init 3 systemctl iso...
systemd 的設定檔
位置:
/lib/systemd/
/lib/systemd/system/
/etc/systemd/
/etc/systemd/system/
主要類型:
XXX.target
XXX.service
XXX.so...
default.target → graphic.target
[Unit]
Description=Graphical Interface
Documentation=man:systemd.special(7)
Requires=multi...
iscsid.service
[Unit]
Description=Open-iSCSI
Documentation=man:iscsid(8) man:iscsiadm(8)
DefaultDependencies=no
Conflicts=...
iscsid.socket
[Unit]
Description=Open-iSCSI iscsid Socket
Documentation=man:iscsid(8) man:iscsiadm(8)
[Socket]
ListenStrea...
啟動的比較
其他相關命令與套件
●
服務的管理
systemctl start/stop/restart foo.service
立刻啟動、重新啟動或停止服務
systemctl status foo.service 查看服務狀態
systemctl en...
參考資料
● systemd man page
●
鳥哥的私房菜
http://linux.vbird.org/linux_basic/0510osloader.php#startup_init
● Itsmw http://myip.tw/i...
Upcoming SlideShare
Loading in …5
×

The New Process No. 1 of Linux -- SystemD

1,367 views

Published on

Showing what systemD is. These slides had been wrote in traditional chinese.

Published in: Technology
1 Comment
4 Likes
Statistics
Notes
  • 當天有兩個問題沒說清楚,我已經寫在隱藏的第 16 頁投影片中,請大家將檔案下載來看。
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
1,367
On SlideShare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
45
Comments
1
Likes
4
Embeds 0
No embeds

No notes for slide

The New Process No. 1 of Linux -- SystemD

  1. 1. 全新的 Linux 一號行程-- systemd by Freedman 2014-03-04 Q__ f"_< ○ ○▽ ............. 自由車上自由人
  2. 2. 常見的一號行程 ● init: debian, archlinux ~2012-10-12, BSD... ● upstart: Ubuntu 6.10~, Fedora 9~14 ● systemd: Fedora 15~, archlinux 2012-10-13~, Mageia 2, Mandriva 2011, openSUSE 12.1~
  3. 3. 常見的系統開機過程 GRUB/LILO/... 載入系統 核心以 Initrd 設定系統 Init Systemd Init (upstart) SysV int | Systemd prefdm gdm kdm... mingetty... gnome PowerOn BootLoader Splash Kernel InitRAMFS Init Services (Runlevel) mate sugar xsession... kde startx
  4. 4. systemd 專案 ● 由 Lennart Poettering 與 Kay Sievers 開發 ● Linux 上的系統與服務管理程式 ● 可以相容、取代 init ● 主要效益:快速啟動、服務程式的線上抽換 ● 以 LGPL v2.1+ 發行 ● 已經在很多 Linux 發行版中被採用
  5. 5. 運作概念 ● init: 設定檔是文件和 shell 腳本,以啟動各種行程為系 統的運作概念 – /etc/inittab /etc/init.d /etc/rc[0~6].d/ ● upstart: 基於事件,在事件發生時啟動各種程式,還能支援 變動的硬體環境 – /etc/init/ (/etc/event.d/) ● systemd: 基於 socket, 先將各種服務的 socket 建立,然後 各種程式可以同時啟動
  6. 6. systemd 架構圖 圖片取自維基百科 http://zh.wikipedia.org/wiki/File:Systemd_components.svg
  7. 7. systemd 的特色 ● 啟動速度較快 – 不使用 shell script – 各服務平行啟動(只在 SSD 上才會加快) ● 提供系統服務快照 ● 掛載及自動掛載管理 ● 以事務系統 (transaction) 處理相依服務 ● 服務的無感即時更新、重新啟動與暫時結束 ● 使用 Linux 核心 cgroup 功能進行管理
  8. 8. Target vs. Runlevel SysVinit systemd init 0 systemctl poweroff init 1 systemctl isolate rescue.target init 3 systemctl isolate multi-user.target init 5 systemctl isolate graphical.target init 6 systemctl reboot ● 以目標取代執行等級的概念 ● 相關檔案: – /lib/systemd/system/*.target – /etc/systemd/system/default.target
  9. 9. systemd 的設定檔 位置: /lib/systemd/ /lib/systemd/system/ /etc/systemd/ /etc/systemd/system/ 主要類型: XXX.target XXX.service XXX.socket 這些檔案由建構整個 發行版的工程師們撰 寫,一般的系統管理 員通常不需要自行修 改。
  10. 10. default.target → graphic.target [Unit] Description=Graphical Interface Documentation=man:systemd.special(7) Requires=multi-user.target After=multi-user.target Conflicts=rescue.target Wants=display-manager.service AllowIsolate=yes [Install] Alias=default.target
  11. 11. iscsid.service [Unit] Description=Open-iSCSI Documentation=man:iscsid(8) man:iscsiadm(8) DefaultDependencies=no Conflicts=shutdown.target After=network.target iscsiuio.service Before=remote-fs-pre.target [Service] Type=forking PIDFile=/var/run/iscsid.pid ExecStart=/usr/sbin/iscsid ExecStop=/sbin/iscsiadm -k 0 2 [Install] WantedBy=multi-user.target
  12. 12. iscsid.socket [Unit] Description=Open-iSCSI iscsid Socket Documentation=man:iscsid(8) man:iscsiadm(8) [Socket] ListenStream=@ISCSIADM_ABSTRACT_NAMESPA CE [Install] WantedBy=sockets.target
  13. 13. 啟動的比較
  14. 14. 其他相關命令與套件 ● 服務的管理 systemctl start/stop/restart foo.service 立刻啟動、重新啟動或停止服務 systemctl status foo.service 查看服務狀態 systemctl enable/disable foo.service 設定使用或不使用某服務(只會設定在目前的 target ) ● 分析工具: systemd-analyze 套件 systemd-analyze blame 列出最耗時的 systemd-analyze plot > out.svg 製作時序圖
  15. 15. 參考資料 ● systemd man page ● 鳥哥的私房菜 http://linux.vbird.org/linux_basic/0510osloader.php#startup_init ● Itsmw http://myip.tw/itsmw/index.php?title=Upstart ● systemd System and Service Manager http://www.freedesktop.org/wiki/Software/systemd/ ● Systemd/zh-hant - The Chakra Project http://www.chakra-project.org/wiki/index.php?title=Systemd/zh-hant#.E4.BD.BF.E7.94.A8_systemd ● (=..=)/: systemd-analyze http://xatierlike.blogspot.tw/2013/01/systemd-analyze.html

×