Modern Linux Desktop Stack

B17c0e2f2a3a734d4472a3a9b378888c?s=47 Rex Tsai
August 03, 2013

Modern Linux Desktop Stack

Talk on Linux Desktop Stack for COSCUP 2013 http://coscup.org/2013/

介紹近幾年來的 Linux Desktop Stack 的發展與近況,基於 Ubuntu 桌面系統,預期含括 Networking, Accounts, Policy Kit, dBus, init scripts, graphic stacks 。

B17c0e2f2a3a734d4472a3a9b378888c?s=128

Rex Tsai

August 03, 2013
Tweet

Transcript

  1. 1 Modern Linux Desktop Stack Rex Tsai chihchun@kalug.linux.org.tw http://nutsfactory.net/ COSCUP

    2013 @ TICC 2013-08-03
  2. 2 Rex Tsai 任職 Canonical 軟體工程師, 超過十年的 Linux 使用者、開發者, 活躍於台灣開放原碼社群。

    http://about.me/chihchun/
  3. 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
  4. 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
  5. 5 Session Bus Session Bus System Bus System Bus •

    Init by /sbin/init • System service • Init by user session • User's application
  6. 6

  7. 7 Many application supported

  8. 8 Messages

  9. 9 Built-in security

  10. 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
  11. 11 Authentication PolicyKit PolicyKit ConsoleKit ConsoleKit • Defined policy on

    actions • /etc/polkit-1/localauthority/* • The new `last'
  12. 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
  13. 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
  14. 14

  15. 15

  16. 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
  17. 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
  18. 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
  19. 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
  20. 20 Kernel Kernel Android HAL (RIL) Android HAL (RIL) RIL

    socket RIL socket ofone ofone Telephony client Telephony client Radio
  21. 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
  22. 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