modern linux desktop stack

22
1 Modern Linux Desktop Stack Rex Tsai [email protected] http://nutsfactory.net/ COSCUP 2013 @ TICC 2013-08-03

Upload: rex-tsai

Post on 10-May-2015

766 views

Category:

Technology


4 download

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

Page 1: Modern Linux Desktop Stack

1

Modern Linux Desktop Stack

Rex [email protected]

http://nutsfactory.net/COSCUP 2013 @ TICC

2013-08-03

Page 2: Modern Linux Desktop Stack

2

Rex Tsai 任職 Canonical 軟體工程師, 超過十年的 Linux 使用者、開發者,

活躍於台灣開放原碼社群。

http://about.me/chihchun/

Page 3: Modern Linux Desktop Stack

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

Page 4: Modern Linux Desktop Stack

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

Page 5: Modern Linux Desktop Stack

5

Session BusSession Bus

System BusSystem Bus● Init by /sbin/init● System service

● Init by user session● User's application

Page 6: Modern Linux Desktop Stack

6

Page 7: Modern Linux Desktop Stack

7

Many application supported

Page 8: Modern Linux Desktop Stack

8

Messages

Page 9: Modern Linux Desktop Stack

9

Built-in security

Page 10: Modern Linux Desktop Stack

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

Page 11: Modern Linux Desktop Stack

11

Authentication

PolicyKitPolicyKit

ConsoleKitConsoleKit

● Defined policy on actions● /etc/polkit-1/localauthority/*

● The new `last'

Page 12: Modern Linux Desktop Stack

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

Page 13: Modern Linux Desktop Stack

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

Page 14: Modern Linux Desktop Stack

14

Page 15: Modern Linux Desktop Stack

15

Page 16: Modern Linux Desktop Stack

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

Page 17: Modern Linux Desktop Stack

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

Page 18: Modern Linux Desktop Stack

18Kernel, driversKernel, drivers

Plumbing (hal, devicekit)Plumbing (hal, devicekit)

IPC (D-Bus)IPC (D-Bus) KauthKauth

SolidSolid

KPartKPart

KIOKIO

Page 19: Modern Linux Desktop Stack

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

Page 20: Modern Linux Desktop Stack

20

KernelKernel

Android HAL (RIL)Android HAL (RIL)

RIL socketRIL socket

ofoneofone

Telephony clientTelephony client

Radio

Page 21: Modern Linux Desktop Stack

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

Page 22: Modern Linux Desktop Stack

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