Slide 1

Slide 1 text

1 Modern Linux Desktop Stack Rex Tsai [email protected] http://nutsfactory.net/ COSCUP 2013 @ TICC 2013-08-03

Slide 2

Slide 2 text

2 Rex Tsai 任職 Canonical 軟體工程師, 超過十年的 Linux 使用者、開發者, 活躍於台灣開放原碼社群。 http://about.me/chihchun/

Slide 3

Slide 3 text

3 Pre-Desktop era Pre-Desktop era GNOME/KDE GNOME/KDE KDE 1.0 KDE 1.0 POST-PC / Mobile era POST-PC / Mobile era July 12, 1998 July 12, 1998 History of Linux Desktop

Slide 4

Slide 4 text

4 Kernel, drivers Kernel, drivers Plumbing (hal, devicekit) Plumbing (hal, devicekit) IPC (D-Bus) IPC (D-Bus) Access control (PolicyKit, ConsoleKit) Access control (PolicyKit, ConsoleKit) Desktop (nm-applet, g-s-d, gnome-control-center) Desktop (nm-applet, g-s-d, gnome-control-center) uevent /sys, /dev, ioctls ... Current design

Slide 5

Slide 5 text

5 Session Bus Session Bus System Bus System Bus ● Init by /sbin/init ● System service ● Init by user session ● User's application

Slide 6

Slide 6 text

6

Slide 7

Slide 7 text

7 Many application supported

Slide 8

Slide 8 text

8 Messages

Slide 9

Slide 9 text

9 Built-in security

Slide 10

Slide 10 text

10 Kernel, drivers Kernel, drivers Plumbing (hal, devicekit) Plumbing (hal, devicekit) IPC (D-Bus) IPC (D-Bus) Access control (PolicyKit, ConsoleKit) Access control (PolicyKit, ConsoleKit) power power media-keys media-keys xrandr xrandr color color sound sound xsettings xsettings wacom wacom

Slide 11

Slide 11 text

11 Authentication PolicyKit PolicyKit ConsoleKit ConsoleKit ● Defined policy on actions ● /etc/polkit-1/localauthority/* ● The new `last'

Slide 12

Slide 12 text

12 Dbus: System Bus Dbus: System Bus Network Manager Network Manager nm-applet (user session) nm-applet (user session) pptp pptp iw wpa_supplicant iw wpa_supplicant ifconfig ifconfig dnsmasq dnsmasq Network manager

Slide 13

Slide 13 text

13 Power management Kernel /sys/power/state /sys/class/power_supply* Kernel /sys/power/state /sys/class/power_supply* pm-utils pm-utils g-s-d power g-s-d power upower upower indicator-session indicator-session gnome-power-statistics gnome-power-statistics

Slide 14

Slide 14 text

14

Slide 15

Slide 15 text

15

Slide 16

Slide 16 text

16 Kernel /sys/block/*, mount(), mkfs, fuse Kernel /sys/block/*, mount(), mkfs, fuse udisks udisks g-s-d mounter helper g-s-d mounter helper gvfs gvfs Nemo/nautilus Nemo/nautilus Storage

Slide 17

Slide 17 text

17 Kernel /sys/block/*, mount(), mkfs, fuse Kernel /sys/block/*, mount(), mkfs, fuse alsa alsa pulseaudio pulseaudio bluez bluez Audio gnome-control-center sound-nua gnome-control-center sound-nua gstreamer gstreamer alsa alsa

Slide 18

Slide 18 text

18 Kernel, drivers Kernel, drivers Plumbing (hal, devicekit) Plumbing (hal, devicekit) IPC (D-Bus) IPC (D-Bus) Kauth Kauth Solid Solid KPart KPart KIO KIO

Slide 19

Slide 19 text

19 Power management Kernel /sys/power/state /sys/class/power_supply* Kernel /sys/power/state /sys/class/power_supply* pm-utils pm-utils g-s-d power g-s-d power upower upower indicator-session indicator-session gnome-power-statistics gnome-power-statistics

Slide 20

Slide 20 text

20 Kernel Kernel Android HAL (RIL) Android HAL (RIL) RIL socket RIL socket ofone ofone Telephony client Telephony client Radio

Slide 21

Slide 21 text

21 Kernel Kernel HAL / GBM, KMS, DRM HAL / GBM, KMS, DRM Android HAL (Graphic) Android HAL (Graphic) Libhybris (bionic/glibc) Libhybris (bionic/glibc) MIR MIR QtUbuntu QtUbuntu Qt/QML Qt/QML Ubuntu Touch Ubuntu Touch XMIR XMIR Applications Applications Qt/QML Qt/QML Ubuntu Apps Ubuntu Apps Graphic Qt Qt Gtk Gtk

Slide 22

Slide 22 text

22 Thank you Ref * Linux Desktop Plumbing Stack by Martin Pitt https://docs.google.com/presentation/d/15PMqKUWkDeA2GAF-x1QiZxLXbOmlRpBs1lk LOI8KcFQ/present * Under the Hood of GNOME3 — 関西 Debian 勉強会用資料 http://yyatsuo.com/kansai-debian/index.html * 基本的 DBus 偵錯技巧 http://blog.nutsfactory.net/2011/03/08/test-and-debug-dbus/ * Watch Bossa '09: Plumbing The Linux Desktop - David Zeuthen http://blip.tv/openbossa/bossa-09-plumbing-the-linux-desktop-david-zeuthen-1893874