1
Modern Linux Desktop Stack
Rex Tsai
chihchun@kalug.linux.org.tw
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, 1998J...
4
Kernel, driversKernel, drivers
Plumbing (hal, devicekit)Plumbing (hal, devicekit)
IPC (D-Bus)IPC (D-Bus) Access control
...
5
Session BusSession Bus
System BusSystem Bus
● Init by /sbin/init
● System service
● Init by user session
● User's applic...
6
7
Many application supported
8
Messages
9
Built-in security
10
Kernel, driversKernel, drivers
Plumbing (hal, devicekit)Plumbing (hal, devicekit)
IPC (D-Bus)IPC (D-Bus) Access control...
11
Authentication
PolicyKitPolicyKit
ConsoleKitConsoleKit
● Defined policy on actions
● /etc/polkit-1/localauthority/*
● T...
12
Dbus: System BusDbus: System Bus
Network ManagerNetwork Manager
nm-applet (user session)nm-applet (user session)
pptppp...
13
Power management
Kernel /sys/power/state /sys/class/power_supply*Kernel /sys/power/state /sys/class/power_supply*
pm-ut...
14
15
16
Kernel /sys/block/*, mount(), mkfs, fuseKernel /sys/block/*, mount(), mkfs, fuse
udisksudisks
g-s-d mounter helperg-s-d...
17
Kernel /sys/block/*, mount(), mkfs, fuseKernel /sys/block/*, mount(), mkfs, fuse
alsaalsa
pulseaudiopulseaudio
bluezblu...
18
Kernel, driversKernel, drivers
Plumbing (hal, devicekit)Plumbing (hal, devicekit)
IPC (D-Bus)IPC (D-Bus) KauthKauth
Sol...
19
Power management
Kernel /sys/power/state /sys/class/power_supply*Kernel /sys/power/state /sys/class/power_supply*
pm-ut...
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)...
22
Thank you
Ref
* Linux Desktop Plumbing Stack by Martin Pitt
https://docs.google.com/presentation/d/15PMqKUWkDeA2GAF-x1Q...
Upcoming SlideShare
Loading in …5
×

Modern Linux Desktop Stack

1,318 views

Published on

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 。

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,318
On SlideShare
0
From Embeds
0
Number of Embeds
26
Actions
Shares
0
Downloads
14
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Modern Linux Desktop Stack

  1. 1. 1 Modern Linux Desktop Stack Rex Tsai chihchun@kalug.linux.org.tw http://nutsfactory.net/ COSCUP 2013 @ TICC 2013-08-03
  2. 2. 2 Rex Tsai 任職 Canonical 軟體工程師, 超過十年的 Linux 使用者、開發者, 活躍於台灣開放原碼社群。 http://about.me/chihchun/
  3. 3. 3 Pre-Desktop eraPre-Desktop era GNOME/KDEGNOME/KDE KDE 1.0KDE 1.0 POST-PC / Mobile eraPOST-PC / Mobile era July 12, 1998July 12, 1998 History of Linux Desktop
  4. 4. 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. 5. 5 Session BusSession Bus System BusSystem Bus ● Init by /sbin/init ● System service ● Init by user session ● User's application
  6. 6. 6
  7. 7. 7 Many application supported
  8. 8. 8 Messages
  9. 9. 9 Built-in security
  10. 10. 10 Kernel, driversKernel, drivers Plumbing (hal, devicekit)Plumbing (hal, devicekit) IPC (D-Bus)IPC (D-Bus) Access control (PolicyKit, ConsoleKit) Access control (PolicyKit, ConsoleKit) powerpower media-keysmedia-keys xrandrxrandr colorcolor soundsound xsettingsxsettingswacomwacom
  11. 11. 11 Authentication PolicyKitPolicyKit ConsoleKitConsoleKit ● Defined policy on actions ● /etc/polkit-1/localauthority/* ● The new `last'
  12. 12. 12 Dbus: System BusDbus: System Bus Network ManagerNetwork Manager nm-applet (user session)nm-applet (user session) pptppptp iw wpa_supplicant iw wpa_supplicant ifconfigifconfig dnsmasqdnsmasq Network manager
  13. 13. 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. 14. 14
  15. 15. 15
  16. 16. 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. 17. 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
  18. 18. 18 Kernel, driversKernel, drivers Plumbing (hal, devicekit)Plumbing (hal, devicekit) IPC (D-Bus)IPC (D-Bus) KauthKauth SolidSolid KPartKPart KIOKIO
  19. 19. 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. 20. 20 KernelKernel Android HAL (RIL)Android HAL (RIL) RIL socketRIL socket ofoneofone Telephony clientTelephony client Radio
  21. 21. 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. 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

×