D-Bus and Friends: Making Linux “Just Work” on the Desktop John (J5) Palmieri Desktop Engineer

Slides:



Advertisements
Similar presentations
1. Reasons for logging on as a root •Most people are familiar with Windows systems with regard to administrative privileges. Many user running windows.
Advertisements

Why to learn OSI reference Model? The answer is too simple that It tells us that how communication takes place between computers on internet but how??
Spring 2000CS 4611 Introduction Outline Statistical Multiplexing Inter-Process Communication Network Architecture Performance Metrics.
15.1 © 2004 Pearson Education, Inc. Exam Managing and Maintaining a Microsoft® Windows® Server 2003 Environment Lesson 15: Configuring a Windows.
Red Hat Linux Network. Red Hat Network Red Hat Network is the environment for system- level support and management of Red Hat Linux networks. Red Hat.
Web Services Members Troy Tony Ellen Vincent. Web Services What is it Why is it useful What have been solved Demo Alternative technologies Question.
CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.
CIS 240 Introduction to UNIX Instructor: Sue Sampson.
UMass DieselNet: A Disruption-Tolerant Network Testbed John Burgess Department of Computer Science UMass Amherst John Burgess Department of Computer Science.
SE-2840 Dr. Mark L. Hornick1 Java Servlet-based web apps Servlet Architecture.
What is in Presentation What is IPsec Why is IPsec Important IPsec Protocols IPsec Architecture How to Implement IPsec in linux.
Common Object Request Broker Architecture (CORBA) CS-328.
Java: Chapter 1 Computer Systems Computer Programming II.
Module 14: WCF Send Adapters. Overview Lesson 1: Introduction to WCF Send Adapters Lesson 2: Consuming a Web Service Lesson 3: Consuming Services from.
Nightly Releases and Testing Alexander Undrus Atlas SW week, May
SUSE Linux Enterprise Desktop Administration Chapter 12 Administer Printing.
Crossing The Line: Distributed Computing Across Network and Filesystem Boundaries.
1 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Introduction to Etch Scott.
Course Presentation EEL5881, Fall, 2003 Project: Network Reliability Tests Project: Network Reliability Tests Team Client: Dr. Joseph Berrios Team Client:
Computing Division Requests The following is a list of tasks about to be officially submitted to the Computing Division for requested support. D0 personnel.
7 February 2008Dietrich Beck A LabVIEW Interface to ELOG ELOG Possible solution paths Status Integration into – CS ? – Domain Management System?
Advanced Packet Analysis and Troubleshooting Using Wireshark 23AF
Fundamentals of Web DevelopmentRandy Connolly and Ricardo HoarFundamentals of Web DevelopmentRandy Connolly and Ricardo Hoar Fundamentals of Web DevelopmentRandy.
PTA Linux Series Copyright Professional Training Academy, CSIS, University of Limerick, 2006 © Workshop I Introduction to Linux Professional Training Academy.
Cross desktop Application Scripting Ideas for an implementation Desktop Developer Conference 2006, Ottawa, Canada Tuesday July 18 th 2006 Hubert Figuière.
Tango - Icalepcs 2009 ESRF. E Taurel - Icalepcs TANGO kernel status and evolution Brief introduction What's new since Icalepcs 2007 New projects.
All about Eugene Teo Linux Users' Group (Singapore) April 2006 Meeting Core 5.
Introducing Fedora Core 5 Codename: Xxxxxxxx March 18, 2006 Robert 'Bob' Jensen Fedora Ambassador Release Notes Editor-in-Chief.
Linux Kernel Security (SELinux vs AppArmor vs Grsecurity)
OBM OBM (Open Business Management)‏ Discover the full GPL enterprise-class and groupware solution By Pierre Baudracco OBM Leader
Strigi Desktop integration Flavio Castelli. Strigi desktop integration Flavio Castelli FOSDEM 2007 Why choose Strigi Strigi's main features ● fast and.
D-Bus with Perl Emmanuel Rodriguez Vienna What is D-Bus? ● A message bus system (IPC) – Influenced by KDE's DCOP – Language independent (C/C++,
April 1st, 2009 Cobbler Provisioning Made Easy Jasper Capel.
SOCKET PROGRAMMING Presented By : Divya Sharma.
System configuration Red Hat Jaroslav Řezník Roman Rakus
DBus, PolicyKit and YaST Modern Technologies in Linux Ing. Ladislav Slezák Novell.
GNOME Desktop Accessibility Development & Testing Sun Microsystems, Inc. Aug 2010.
QA Process within OEM Services Ethan Chang QA Engineer OEM Service, Canonical
Fmci Jaroslav Reznik Presented by Red Hat, Inc. License statement goes here. See for acceptable.
WebYaST Remote Web Based System Management
100% Exam Passing Guarantee & Money Back Assurance
Managing State Chapter 13.
CSE775 - Distributed Objects, Spring 2006
application into a Flatpak
File System Implementation
The Internet Communications Engine (Ice)
© 2003, Cisco Systems, Inc. All rights reserved.
Demystifying SELinux: WTF is it saying?
ABRT (Automatic Bug Reporting Tool)
Java RMI CS-328 Internet Programming.
What the OSI Protocol Layers Do
What is RMI? Remote Method Invocation
Jesse Keating Linux Fest Northwest 2008
THE ARCHITECTURE AND FUNCTIONALITIES OF SELECTED MODULES.
Say Hello to my Little Friend - Fedora Messaging Infrastructure
AppArmor Update 2014 Linux Security Summit
Troubleshooting IP Communications
Understanding the OSI Reference Model
Introduction to Networks
Debugging DBus Ted Gould Device Sprint Oct 2014
RDA3 high-level – API & architecture 26th JUNE 2013
How To Fix Outlook Integration Error? This is a message which appears when users are trying to click on the message to display the details. So, it is.
The Visible Computer Chapter 3.
XML-RPC a lightweight data communication protocol
X Windows.
Tango in a Nutshell 31/12/2018.
Understanding Android Security
NetChat Communications Framework
New Tools In Education Minjun Wang
PyWBEM Python WBEM Client: Overview #2
Presentation transcript:

D-Bus and Friends: Making Linux “Just Work” on the Desktop John (J5) Palmieri Desktop Engineer

History of D-Bus ● Started in 2002 on freedesktop.org – Havoc Pennington, Alexander Larson, Anders Carlson ● Conceived as a common communication channel for the desktop – Buy in from both GNOME and KDE was a major goal

What is D-Bus? ● A local IPC mechanism ● Optimized for desktop communication – Session bus ● Enables system/session communication – System bus ● Peer to peer communication

Who uses D-Bus? ● Gnome – Fedora/Red Hat – Novell/SuSE – Debian – Nokia ● KDE – Limited support in Qt3 – Qt4 support being implemented (DCOP replacement?)

D-Bus and Friends Architecture in Fedora

Current Applications that use D-Bus in Fedora ● HAL ● NetworkManager ● desktop-printing (eggcups) ● cups-config-daemon ● gnome-volume-manager ● gfloppy

HAL

NetworkManager

desktop-printing & cups-config-daemon

gnome-volume-manager

Future D-Bus Applications ● oddjob – System administration tool by Nalin Dahyabhai ● Notification Bubbles ● Session Services – Augmenting gnome session ● System Services – Augmenting init

Future D-Bus Applications cont. ● Evolution integration – You’ve got mail – online/offline integration ● CORBA replacement in gnome-VFS ● XWindows – Static configuration files are so 90’s ● Package Installer – We’ve got MIME-types, why not use them?

More on Session Services ● Augments gnome-session ● Starts applications using D-Bus activation ● All desktop services are D-Bus aware or are provided by a D-Bus aware wrapper ● Dependency information makes sure services that are needed are loaded and in the right order ● Demo

Implications for System Services ● Take the Session Services idea and expand it to init ● Services started in parallel and with dependencies ● Some services are started when needed – cups-config-daemon is an ideal candidate – Dependency information applies to these services also ● Red Hat has an intern looking at this right now – He could use your help

The Pieces of D-Bus ● Bus’ – System and Session – Arbitrary ● Protocol – Header – Body ● Bindings – G-Lib, Qt, Python (and Twisted), Mono, Java?, Perl, Ruby, S- Lang, etc.

The Bus ● Bus’ run as daemons and route messages ● Connect to the bus – connection = dbus_bus_get (DBUS_BUS_SYSTEM, &error); ● Get a name on the bus – dbus_bus_request_name (connection, “org.foo.Bar”, 0, &error);

Protocol ● Unique Names vs Common Names – Unique Names (:1.02) – Common Name (org.foo.Bar) ● Header – Path, Interface, Member, Error Name, Reply Serial, Destination, Sender, Signature, (Details?) ● Body – The data

The Type System ● Basic Types – Byte, Boolean, (U)Int (16, 32, 64), Double, String ● Complex (recursive) Types – Array, Struct, Dict Entry, Varient ● Special Types – Object Path, Signature

Security ● ACL’s – Console user ● SELinux Integration – ImSep

Bindings ● Where users should be using D-Bus ● Main Bindings – Glib, Qt, Python, Mono ● Third Party Bindings – Ruby, Perl, S-Lang, C++, Java ● I maintain the Python Bindings and they are my favorite so lets write a quick server and client in Python ;-)

D-Bus 1.0 ● When – Soon – Sooner if you help out ● What’s Left to Do? – TODO – Write test cases, finalize the protocol, fix bugs – Finish bindings – Testing and Feedback (Qt4) – Documentation

For more info... ● D-Bus Website – ● Mailing List – ● Bugzilla – ● John (J5) Palmieri –