SlideShare una empresa de Scribd logo
1 de 22
Descargar para leer sin conexión
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, 1998July 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
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
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 iw
wpa_supplicant
iw
wpa_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
18
Kernel, 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-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

Más contenido relacionado

La actualidad más candente

Claudio Scordino - Handling mixed criticality on embedded multi-core systems
Claudio Scordino - Handling mixed criticality on embedded multi-core systemsClaudio Scordino - Handling mixed criticality on embedded multi-core systems
Claudio Scordino - Handling mixed criticality on embedded multi-core systemslinuxlab_conf
 
OpenWrt From Top to Bottom
OpenWrt From Top to BottomOpenWrt From Top to Bottom
OpenWrt From Top to BottomKernel TLV
 
Upgrade ux-fosdem-2015-gdhaese
Upgrade ux-fosdem-2015-gdhaeseUpgrade ux-fosdem-2015-gdhaese
Upgrade ux-fosdem-2015-gdhaeseGratien D'haese
 
Linux kernel vs user space - Hervé Nicol (GFI)
Linux  kernel vs user space - Hervé Nicol (GFI)Linux  kernel vs user space - Hervé Nicol (GFI)
Linux kernel vs user space - Hervé Nicol (GFI)TelecomValley
 
Introduction to Linux OS
Introduction to Linux OSIntroduction to Linux OS
Introduction to Linux OSMohammed Safwat
 
Reflections on Trusting Trust
Reflections on Trusting TrustReflections on Trusting Trust
Reflections on Trusting Trustyeokm1
 
Linux SMEP bypass techniques
Linux SMEP bypass techniquesLinux SMEP bypass techniques
Linux SMEP bypass techniquesVitaly Nikolenko
 
What is open source
What is open sourceWhat is open source
What is open sourceKumar
 
pkgsrc 2010 - the record of the past year
pkgsrc 2010 - the record of the past yearpkgsrc 2010 - the record of the past year
pkgsrc 2010 - the record of the past yearAkio OBATA
 
Tommaso Cucinotta - Low-latency and power-efficient audio applications on Linux
Tommaso Cucinotta - Low-latency and power-efficient audio applications on LinuxTommaso Cucinotta - Low-latency and power-efficient audio applications on Linux
Tommaso Cucinotta - Low-latency and power-efficient audio applications on Linuxlinuxlab_conf
 
Michele Dionisio & Pietro Lorefice - Developing and testing a device driver w...
Michele Dionisio & Pietro Lorefice - Developing and testing a device driver w...Michele Dionisio & Pietro Lorefice - Developing and testing a device driver w...
Michele Dionisio & Pietro Lorefice - Developing and testing a device driver w...linuxlab_conf
 
ARM Linux Embedded memory protection techniques
ARM Linux Embedded memory protection techniquesARM Linux Embedded memory protection techniques
ARM Linux Embedded memory protection techniquesPrabindh Sundareson
 
Embedded Recipes 2018 - swupdate: update your embedded device - Charles-Anto...
Embedded Recipes 2018 -  swupdate: update your embedded device - Charles-Anto...Embedded Recipes 2018 -  swupdate: update your embedded device - Charles-Anto...
Embedded Recipes 2018 - swupdate: update your embedded device - Charles-Anto...Anne Nicolas
 
Gnu/Linux Introduction
Gnu/Linux IntroductionGnu/Linux Introduction
Gnu/Linux IntroductionBadri_Bady
 

La actualidad más candente (19)

Claudio Scordino - Handling mixed criticality on embedded multi-core systems
Claudio Scordino - Handling mixed criticality on embedded multi-core systemsClaudio Scordino - Handling mixed criticality on embedded multi-core systems
Claudio Scordino - Handling mixed criticality on embedded multi-core systems
 
OpenWrt From Top to Bottom
OpenWrt From Top to BottomOpenWrt From Top to Bottom
OpenWrt From Top to Bottom
 
Upgrade ux-fosdem-2015-gdhaese
Upgrade ux-fosdem-2015-gdhaeseUpgrade ux-fosdem-2015-gdhaese
Upgrade ux-fosdem-2015-gdhaese
 
tizen-oshw-tds14sh
tizen-oshw-tds14shtizen-oshw-tds14sh
tizen-oshw-tds14sh
 
Linux kernel vs user space - Hervé Nicol (GFI)
Linux  kernel vs user space - Hervé Nicol (GFI)Linux  kernel vs user space - Hervé Nicol (GFI)
Linux kernel vs user space - Hervé Nicol (GFI)
 
Introduction to Linux OS
Introduction to Linux OSIntroduction to Linux OS
Introduction to Linux OS
 
Pallavi v
Pallavi vPallavi v
Pallavi v
 
Reflections on Trusting Trust
Reflections on Trusting TrustReflections on Trusting Trust
Reflections on Trusting Trust
 
Linux SMEP bypass techniques
Linux SMEP bypass techniquesLinux SMEP bypass techniques
Linux SMEP bypass techniques
 
What is open source
What is open sourceWhat is open source
What is open source
 
Adhocr T-dose 2012
Adhocr T-dose 2012Adhocr T-dose 2012
Adhocr T-dose 2012
 
pkgsrc 2010 - the record of the past year
pkgsrc 2010 - the record of the past yearpkgsrc 2010 - the record of the past year
pkgsrc 2010 - the record of the past year
 
Tommaso Cucinotta - Low-latency and power-efficient audio applications on Linux
Tommaso Cucinotta - Low-latency and power-efficient audio applications on LinuxTommaso Cucinotta - Low-latency and power-efficient audio applications on Linux
Tommaso Cucinotta - Low-latency and power-efficient audio applications on Linux
 
Michele Dionisio & Pietro Lorefice - Developing and testing a device driver w...
Michele Dionisio & Pietro Lorefice - Developing and testing a device driver w...Michele Dionisio & Pietro Lorefice - Developing and testing a device driver w...
Michele Dionisio & Pietro Lorefice - Developing and testing a device driver w...
 
Cfg2html fosdem2014
Cfg2html fosdem2014Cfg2html fosdem2014
Cfg2html fosdem2014
 
ARM Linux Embedded memory protection techniques
ARM Linux Embedded memory protection techniquesARM Linux Embedded memory protection techniques
ARM Linux Embedded memory protection techniques
 
Embedded Recipes 2018 - swupdate: update your embedded device - Charles-Anto...
Embedded Recipes 2018 -  swupdate: update your embedded device - Charles-Anto...Embedded Recipes 2018 -  swupdate: update your embedded device - Charles-Anto...
Embedded Recipes 2018 - swupdate: update your embedded device - Charles-Anto...
 
Gnu/Linux Introduction
Gnu/Linux IntroductionGnu/Linux Introduction
Gnu/Linux Introduction
 
Pc bsd-intro
Pc bsd-introPc bsd-intro
Pc bsd-intro
 

Similar a Modern Linux Desktop Stack

2008-11-13 CAVMEN RHEL for System z Deep Dive
2008-11-13 CAVMEN RHEL for System z Deep Dive2008-11-13 CAVMEN RHEL for System z Deep Dive
2008-11-13 CAVMEN RHEL for System z Deep DiveShawn Wells
 
Amazing KDE (K Desktop Environment)
Amazing KDE (K Desktop Environment)Amazing KDE (K Desktop Environment)
Amazing KDE (K Desktop Environment)anandvaidya
 
Linux rumpkernel - ABC2018 (AsiaBSDCon 2018)
Linux rumpkernel - ABC2018 (AsiaBSDCon 2018)Linux rumpkernel - ABC2018 (AsiaBSDCon 2018)
Linux rumpkernel - ABC2018 (AsiaBSDCon 2018)Hajime Tazaki
 
An Introduction to Linux
An Introduction to LinuxAn Introduction to Linux
An Introduction to Linuxanandvaidya
 
Slackware Demystified [SELF 2011]
Slackware Demystified [SELF 2011]Slackware Demystified [SELF 2011]
Slackware Demystified [SELF 2011]Vincent Batts
 
Cookies for kernel developers
Cookies for kernel developersCookies for kernel developers
Cookies for kernel developersMajor Hayden
 
Rapid prototyping with open source
Rapid prototyping with open sourceRapid prototyping with open source
Rapid prototyping with open sourceAlison Chaiken
 
How to save the environment
How to save the environmentHow to save the environment
How to save the environmentAaron Zauner
 
From Uc To Embedded
From Uc To EmbeddedFrom Uc To Embedded
From Uc To Embeddedguest0cf711
 
Linux fundamentals Training
Linux fundamentals TrainingLinux fundamentals Training
Linux fundamentals TrainingLove Steven
 
Network Stack in Userspace (NUSE)
Network Stack in Userspace (NUSE)Network Stack in Userspace (NUSE)
Network Stack in Userspace (NUSE)Hajime Tazaki
 
Linux; Operating System
Linux; Operating SystemLinux; Operating System
Linux; Operating SystemJayEl Cadawas
 
Pearce Barry Resume
Pearce Barry ResumePearce Barry Resume
Pearce Barry ResumePearce Barry
 

Similar a Modern Linux Desktop Stack (20)

Rhce ppt
Rhce pptRhce ppt
Rhce ppt
 
2008-11-13 CAVMEN RHEL for System z Deep Dive
2008-11-13 CAVMEN RHEL for System z Deep Dive2008-11-13 CAVMEN RHEL for System z Deep Dive
2008-11-13 CAVMEN RHEL for System z Deep Dive
 
Amazing KDE (K Desktop Environment)
Amazing KDE (K Desktop Environment)Amazing KDE (K Desktop Environment)
Amazing KDE (K Desktop Environment)
 
Linux rumpkernel - ABC2018 (AsiaBSDCon 2018)
Linux rumpkernel - ABC2018 (AsiaBSDCon 2018)Linux rumpkernel - ABC2018 (AsiaBSDCon 2018)
Linux rumpkernel - ABC2018 (AsiaBSDCon 2018)
 
An Introduction to Linux
An Introduction to LinuxAn Introduction to Linux
An Introduction to Linux
 
Linux
Linux Linux
Linux
 
Slackware Demystified [SELF 2011]
Slackware Demystified [SELF 2011]Slackware Demystified [SELF 2011]
Slackware Demystified [SELF 2011]
 
Xen in Linux (aka PVOPS update)
Xen in Linux (aka PVOPS update)Xen in Linux (aka PVOPS update)
Xen in Linux (aka PVOPS update)
 
Cookies for kernel developers
Cookies for kernel developersCookies for kernel developers
Cookies for kernel developers
 
Rapid prototyping with open source
Rapid prototyping with open sourceRapid prototyping with open source
Rapid prototyping with open source
 
Mohit_Resume (1)
Mohit_Resume (1)Mohit_Resume (1)
Mohit_Resume (1)
 
How to save the environment
How to save the environmentHow to save the environment
How to save the environment
 
From Uc To Embedded
From Uc To EmbeddedFrom Uc To Embedded
From Uc To Embedded
 
Linux fundamentals Training
Linux fundamentals TrainingLinux fundamentals Training
Linux fundamentals Training
 
Linux introduction (eng)
Linux introduction (eng)Linux introduction (eng)
Linux introduction (eng)
 
Network Stack in Userspace (NUSE)
Network Stack in Userspace (NUSE)Network Stack in Userspace (NUSE)
Network Stack in Userspace (NUSE)
 
Linux; Operating System
Linux; Operating SystemLinux; Operating System
Linux; Operating System
 
Pearce Barry Resume
Pearce Barry ResumePearce Barry Resume
Pearce Barry Resume
 
Linux kernel
Linux kernelLinux kernel
Linux kernel
 
Linux kernel
Linux kernelLinux kernel
Linux kernel
 

Más de Rex Tsai

如何在 Ubuntu 上更快、更便捷地部署物联网设备
如何在 Ubuntu 上更快、更便捷地部署物联网设备如何在 Ubuntu 上更快、更便捷地部署物联网设备
如何在 Ubuntu 上更快、更便捷地部署物联网设备Rex Tsai
 
Ubuntu Core 技术详解
Ubuntu Core 技术详解Ubuntu Core 技术详解
Ubuntu Core 技术详解Rex Tsai
 
登山步道開放資料格式標準化
登山步道開放資料格式標準化登山步道開放資料格式標準化
登山步道開放資料格式標準化Rex Tsai
 
Building a developer community with containers
Building a developer community with containersBuilding a developer community with containers
Building a developer community with containersRex Tsai
 
台灣開源社區淺談 (Open Source and Free Software community in Taiwan)
台灣開源社區淺談 (Open Source and Free Software community in Taiwan)台灣開源社區淺談 (Open Source and Free Software community in Taiwan)
台灣開源社區淺談 (Open Source and Free Software community in Taiwan)Rex Tsai
 
开放原码手机操作系统 Ubuntu Phone 架构、移植与刷机
开放原码手机操作系统 Ubuntu Phone 架构、移植与刷机开放原码手机操作系统 Ubuntu Phone 架构、移植与刷机
开放原码手机操作系统 Ubuntu Phone 架构、移植与刷机Rex Tsai
 
Ubuntu phone engineering
Ubuntu phone engineeringUbuntu phone engineering
Ubuntu phone engineeringRex Tsai
 
以 Leaflet 濫用^H^H呈現開放街圖資料
以 Leaflet 濫用^H^H呈現開放街圖資料以 Leaflet 濫用^H^H呈現開放街圖資料
以 Leaflet 濫用^H^H呈現開放街圖資料Rex Tsai
 
Everest basecamp & gokyo trekking
Everest basecamp & gokyo trekkingEverest basecamp & gokyo trekking
Everest basecamp & gokyo trekkingRex Tsai
 
Oepn Street Map Batch edting via API
Oepn Street Map Batch edting via APIOepn Street Map Batch edting via API
Oepn Street Map Batch edting via APIRex Tsai
 
Screencasting
ScreencastingScreencasting
ScreencastingRex Tsai
 
以開源軟體與 Open Street Map 規劃登山行程
 以開源軟體與 Open Street Map 規劃登山行程 以開源軟體與 Open Street Map 規劃登山行程
以開源軟體與 Open Street Map 規劃登山行程Rex Tsai
 
Get your FLOSS problems solved
Get your FLOSS problems solvedGet your FLOSS problems solved
Get your FLOSS problems solvedRex Tsai
 
遺失的時代精神 - Zeitgeist and GNOME Activity Journal
遺失的時代精神 - Zeitgeist and GNOME Activity Journal遺失的時代精神 - Zeitgeist and GNOME Activity Journal
遺失的時代精神 - Zeitgeist and GNOME Activity JournalRex Tsai
 
Layer 8 - Open source communities and your product
Layer 8  - Open source communities and your productLayer 8  - Open source communities and your product
Layer 8 - Open source communities and your productRex Tsai
 
A Study of SVG-based Application Development @ OSDC 2010
A Study of SVG-based Application Development @ OSDC 2010A Study of SVG-based Application Development @ OSDC 2010
A Study of SVG-based Application Development @ OSDC 2010Rex Tsai
 
OpenWrt Case Study 2008
OpenWrt Case Study 2008OpenWrt Case Study 2008
OpenWrt Case Study 2008Rex Tsai
 
OpenWrt101 2007
OpenWrt101 2007OpenWrt101 2007
OpenWrt101 2007Rex Tsai
 
OpenLab.Taipei #2 PORTA2030 Extra
OpenLab.Taipei #2 PORTA2030 ExtraOpenLab.Taipei #2 PORTA2030 Extra
OpenLab.Taipei #2 PORTA2030 ExtraRex Tsai
 
OpenLab.Taipei #2 PORTA2030
OpenLab.Taipei #2 PORTA2030OpenLab.Taipei #2 PORTA2030
OpenLab.Taipei #2 PORTA2030Rex Tsai
 

Más de Rex Tsai (20)

如何在 Ubuntu 上更快、更便捷地部署物联网设备
如何在 Ubuntu 上更快、更便捷地部署物联网设备如何在 Ubuntu 上更快、更便捷地部署物联网设备
如何在 Ubuntu 上更快、更便捷地部署物联网设备
 
Ubuntu Core 技术详解
Ubuntu Core 技术详解Ubuntu Core 技术详解
Ubuntu Core 技术详解
 
登山步道開放資料格式標準化
登山步道開放資料格式標準化登山步道開放資料格式標準化
登山步道開放資料格式標準化
 
Building a developer community with containers
Building a developer community with containersBuilding a developer community with containers
Building a developer community with containers
 
台灣開源社區淺談 (Open Source and Free Software community in Taiwan)
台灣開源社區淺談 (Open Source and Free Software community in Taiwan)台灣開源社區淺談 (Open Source and Free Software community in Taiwan)
台灣開源社區淺談 (Open Source and Free Software community in Taiwan)
 
开放原码手机操作系统 Ubuntu Phone 架构、移植与刷机
开放原码手机操作系统 Ubuntu Phone 架构、移植与刷机开放原码手机操作系统 Ubuntu Phone 架构、移植与刷机
开放原码手机操作系统 Ubuntu Phone 架构、移植与刷机
 
Ubuntu phone engineering
Ubuntu phone engineeringUbuntu phone engineering
Ubuntu phone engineering
 
以 Leaflet 濫用^H^H呈現開放街圖資料
以 Leaflet 濫用^H^H呈現開放街圖資料以 Leaflet 濫用^H^H呈現開放街圖資料
以 Leaflet 濫用^H^H呈現開放街圖資料
 
Everest basecamp & gokyo trekking
Everest basecamp & gokyo trekkingEverest basecamp & gokyo trekking
Everest basecamp & gokyo trekking
 
Oepn Street Map Batch edting via API
Oepn Street Map Batch edting via APIOepn Street Map Batch edting via API
Oepn Street Map Batch edting via API
 
Screencasting
ScreencastingScreencasting
Screencasting
 
以開源軟體與 Open Street Map 規劃登山行程
 以開源軟體與 Open Street Map 規劃登山行程 以開源軟體與 Open Street Map 規劃登山行程
以開源軟體與 Open Street Map 規劃登山行程
 
Get your FLOSS problems solved
Get your FLOSS problems solvedGet your FLOSS problems solved
Get your FLOSS problems solved
 
遺失的時代精神 - Zeitgeist and GNOME Activity Journal
遺失的時代精神 - Zeitgeist and GNOME Activity Journal遺失的時代精神 - Zeitgeist and GNOME Activity Journal
遺失的時代精神 - Zeitgeist and GNOME Activity Journal
 
Layer 8 - Open source communities and your product
Layer 8  - Open source communities and your productLayer 8  - Open source communities and your product
Layer 8 - Open source communities and your product
 
A Study of SVG-based Application Development @ OSDC 2010
A Study of SVG-based Application Development @ OSDC 2010A Study of SVG-based Application Development @ OSDC 2010
A Study of SVG-based Application Development @ OSDC 2010
 
OpenWrt Case Study 2008
OpenWrt Case Study 2008OpenWrt Case Study 2008
OpenWrt Case Study 2008
 
OpenWrt101 2007
OpenWrt101 2007OpenWrt101 2007
OpenWrt101 2007
 
OpenLab.Taipei #2 PORTA2030 Extra
OpenLab.Taipei #2 PORTA2030 ExtraOpenLab.Taipei #2 PORTA2030 Extra
OpenLab.Taipei #2 PORTA2030 Extra
 
OpenLab.Taipei #2 PORTA2030
OpenLab.Taipei #2 PORTA2030OpenLab.Taipei #2 PORTA2030
OpenLab.Taipei #2 PORTA2030
 

Último

HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 

Último (20)

HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 

Modern Linux Desktop Stack

  • 1. 1 Modern Linux Desktop Stack Rex Tsai chihchun@kalug.linux.org.tw http://nutsfactory.net/ COSCUP 2013 @ TICC 2013-08-03
  • 2. 2 Rex Tsai 任職 Canonical 軟體工程師, 超過十年的 Linux 使用者、開發者, 活躍於台灣開放原碼社群。 http://about.me/chihchun/
  • 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 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 Session BusSession Bus System BusSystem Bus ● Init by /sbin/init ● System service ● Init by user session ● User's application
  • 6. 6
  • 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 Authentication PolicyKitPolicyKit ConsoleKitConsoleKit ● Defined policy on actions ● /etc/polkit-1/localauthority/* ● The new `last'
  • 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 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
  • 15. 15
  • 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 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 Kernel, driversKernel, drivers Plumbing (hal, devicekit)Plumbing (hal, devicekit) IPC (D-Bus)IPC (D-Bus) KauthKauth SolidSolid KPartKPart KIOKIO
  • 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 KernelKernel Android HAL (RIL)Android HAL (RIL) RIL socketRIL socket ofoneofone Telephony clientTelephony client Radio
  • 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 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