modern linux desktop stack
DESCRIPTION
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 。TRANSCRIPT
1
Modern Linux Desktop Stack
http://nutsfactory.net/COSCUP 2013 @ TICC
2013-08-03
2
Rex Tsai 任職 Canonical 軟體工程師, 超過十年的 Linux 使用者、開發者,
活躍於台灣開放原碼社群。
http://about.me/chihchun/
3
Pre-Desktop eraPre-Desktop era
GNOME/KDEGNOME/KDE
KDE 1.0KDE 1.0
POST-PC / Mobile eraPOST-PC / Mobile era
July 12, 1998 July 12, 1998
History of Linux Desktop
4
Kernel, driversKernel, 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
Session BusSession Bus
System BusSystem Bus● Init by /sbin/init● System service
● Init by user session● User's application
6
7
Many application supported
8
Messages
9
Built-in security
10Kernel, driversKernel, drivers
Plumbing (hal, devicekit)Plumbing (hal, devicekit)
IPC (D-Bus)IPC (D-Bus) Access control(PolicyKit, ConsoleKit)
Access control(PolicyKit, ConsoleKit)
powerpowermedia-keysmedia-keys
xrandrxrandr
colorcolor
soundsound
xsettingsxsettingswacomwacom
11
Authentication
PolicyKitPolicyKit
ConsoleKitConsoleKit
● Defined policy on actions● /etc/polkit-1/localauthority/*
● The new `last'
12
Dbus: System BusDbus: System Bus
Network ManagerNetwork Manager
nm-applet (user session)nm-applet (user session)
pptppptp iwwpa_supplicant
iwwpa_supplicant ifconfigifconfig dnsmasqdnsmasq
Network manager
13
Power management
Kernel /sys/power/state /sys/class/power_supply*Kernel /sys/power/state /sys/class/power_supply*
pm-utilspm-utils
g-s-d powerg-s-d power
upowerupower
indicator-sessionindicator-session gnome-power-statisticsgnome-power-statistics
14
15
16
Kernel /sys/block/*, mount(), mkfs, fuseKernel /sys/block/*, mount(), mkfs, fuse
udisksudisks
g-s-d mounter helperg-s-d mounter helper
gvfsgvfs
Nemo/nautilusNemo/nautilus
Storage
17
Kernel /sys/block/*, mount(), mkfs, fuseKernel /sys/block/*, mount(), mkfs, fuse
alsaalsa
pulseaudiopulseaudio
bluezbluez
Audio
gnome-control-center sound-nuagnome-control-center sound-nua gstreamergstreamer alsaalsa
18Kernel, driversKernel, drivers
Plumbing (hal, devicekit)Plumbing (hal, devicekit)
IPC (D-Bus)IPC (D-Bus) KauthKauth
SolidSolid
KPartKPart
KIOKIO
19
Power management
Kernel /sys/power/state /sys/class/power_supply*Kernel /sys/power/state /sys/class/power_supply*
pm-utilspm-utils
g-s-d powerg-s-d power
upowerupower
indicator-sessionindicator-session gnome-power-statisticsgnome-power-statistics
20
KernelKernel
Android HAL (RIL)Android HAL (RIL)
RIL socketRIL socket
ofoneofone
Telephony clientTelephony client
Radio
21
KernelKernel
HAL / GBM, KMS, DRMHAL / GBM, KMS, DRM
Android HAL (Graphic)Android HAL (Graphic)
Libhybris (bionic/glibc)Libhybris (bionic/glibc)
MIRMIR
QtUbuntuQtUbuntu
Qt/QMLQt/QML
Ubuntu TouchUbuntu Touch
XMIRXMIR
ApplicationsApplications
Qt/QMLQt/QML
Ubuntu AppsUbuntu Apps
Graphic
QtQt GtkGtk
22
Thank you
Ref* Linux Desktop Plumbing Stack by Martin Pitt https://docs.google.com/presentation/d/15PMqKUWkDeA2GAF-x1QiZxLXbOmlRpBs1lkLOI8KcFQ/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