$30 off During Our Annual Pro Sale. View Details »

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. 1
    Modern Linux Desktop Stack
    Rex Tsai
    [email protected]
    http://nutsfactory.net/
    COSCUP 2013 @ TICC
    2013-08-03

    View Slide

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

    View Slide

  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

    View Slide

  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

    View Slide

  5. 5
    Session Bus
    Session Bus
    System Bus
    System Bus

    Init by /sbin/init

    System service

    Init by user session

    User's application

    View Slide

  6. 6

    View Slide

  7. 7
    Many application supported

    View Slide

  8. 8
    Messages

    View Slide

  9. 9
    Built-in security

    View Slide

  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

    View Slide

  11. 11
    Authentication
    PolicyKit
    PolicyKit
    ConsoleKit
    ConsoleKit

    Defined policy on actions

    /etc/polkit-1/localauthority/*

    The new `last'

    View Slide

  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

    View Slide

  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

    View Slide

  14. 14

    View Slide

  15. 15

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

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

    View Slide

  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

    View Slide

  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

    View Slide