Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Modern Linux Desktop Stack

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.
Avatar for Rex Tsai 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 。

Avatar for Rex Tsai

Rex Tsai

August 03, 2013
Tweet

More Decks by Rex Tsai

Other Decks in Programming

Transcript

  1. 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
  2. 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
  3. 5 Session Bus Session Bus System Bus System Bus •

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

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

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

  10. 15

  11. 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
  12. 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
  13. 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
  14. 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
  15. 20 Kernel Kernel Android HAL (RIL) Android HAL (RIL) RIL

    socket RIL socket ofone ofone Telephony client Telephony client Radio
  16. 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
  17. 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