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

Modern Linux Desktop Stack

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 。

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