SlideShare a Scribd company logo
Free your phone
   Shaastra 2008 – IIT Madras



Sudharshan 'Sup3rkiddo' S
Agenda

●   Software development in mobile phones
●   Freesmartphone.org framework
●   FSO and freedesktop.org
●   D-Bus primer (a gooey chocolate)
●   Framework daemon components
●   Code walkthrough, zhone
●   A bit about Openmoko
Mobile Software Development
●   Variety of software stacks
    –   Symbian
    –   Windows CE/Mobile
    –   EZX
    –   Android
    –   J2ME
    –   And a lot more
Mobile Software development
●   Variety of hardware capabilities
    –   Camera
    –   GPS
    –   Music player
    –   Touch screen
    –   USB
    –   Accelerometers
    –   And many more
The problem
●   We solve the problem with hardware
    abstraction layers
    –   Neod for Openmoko
    –   Ohm for Maemo
    –   Zaurusd for OpenZaurus
    –   Machined for GPE
..all doing the same damn thing
Wouldn't it be nice if...
What is freesmartphone.org?


 “freesmartphone.org is a collaboration platform
for opensource and open discussion software
projects working on interoperability and shared
technology for Linux-based Smartphones”
                           --
http://wiki.freesmartphone.org
Design goals
●   Be platform agnostic, doesn't matter where you are
    running the code
●   Be language agnostic as well. If it has Dbus bindings you
    are home.
●   Be simple and small. Example, HAL vs. Device subsystem
    of the FSO framework
●   Integrate tightly with the hardware for performance
●   Lastly, “re-use existing technologies, but not overdo it”
Why re-invent something that freedesktop.org is
                              already doing?

●   FDO focuses on interoperability and standards between
    different Desktop Environments, ex: KDE, Gnome, XFCE
●   FSO focuses on interoperability between entire software
    platforms for Smartphones and similar devices
●   (Well, we still use Dbus and thats from FDO)
●   As, the name implies freedesktop.org is for Desktops.
    And Desktops != Mobile phones
D-Bus Primer

●   One of the coolest things to have happened in the
    FOSS world.
●   Inter-process Communication for mortals
D-Bus in one line




Expose an object with an interface on a System
               or Session Bus
D-Bus in FSO framework

●   Use system bus. So only one instance of the code will run.
●   Example. GetCapacity method from
    org.freesmartphone.Device.PowerSupply interface running
    on org.freesmartphone.odeviced system bus
How it all comes together, a quick demonstration
Zhone, walkthrough


  Because APIs
without a consumer
    suck. A code
   walkthrough of
zhone (Zen Phone)
Links and Resources
●   http://www.freesmartphone.org
●   http://git.freesmartphone.org ← code
●   http://wiki.openmoko.org/wiki/OpenmokoFramewor
●   http://dbus.freedesktop.org/
●   http://www.sudharsh.wordpress.com
Yay, Thanks




This talk wouldn't have been possible without the
      hackers at Openmoko and other FOSS
              contributors. Cheers!

More Related Content

Viewers also liked

T-121-5300 (2008) User Interface Design 10 - UIML
T-121-5300 (2008) User Interface Design 10 - UIMLT-121-5300 (2008) User Interface Design 10 - UIML
T-121-5300 (2008) User Interface Design 10 - UIML
mniemi
 
Bc 04 08 Lr Tom V2
Bc 04 08 Lr Tom V2Bc 04 08 Lr Tom V2
Bc 04 08 Lr Tom V2
tparkeboca
 
Strategic Usability
Strategic UsabilityStrategic Usability
Strategic Usability
mniemi
 
Quiz
QuizQuiz
Quiz
sudharsh
 
T-121.5300 Käyttoliittymasuunnittelu - Mallit
T-121.5300 Käyttoliittymasuunnittelu - MallitT-121.5300 Käyttoliittymasuunnittelu - Mallit
T-121.5300 Käyttoliittymasuunnittelu - Mallit
mniemi
 
T-121-5300 (2008) User Interface Design 9 - Process
T-121-5300 (2008) User Interface Design 9 - ProcessT-121-5300 (2008) User Interface Design 9 - Process
T-121-5300 (2008) User Interface Design 9 - Processmniemi
 
Sql – Structured Query Language
Sql – Structured Query LanguageSql – Structured Query Language
Sql – Structured Query Language
pandey3045_bit
 
Database Containerization Platform Checklist
Database Containerization Platform ChecklistDatabase Containerization Platform Checklist
Database Containerization Platform Checklist
Adeesh Fulay
 
T-0.7050 (2008) Introduction to Post Graduate Studies in Computer Science And...
T-0.7050 (2008) Introduction to Post Graduate Studies in Computer Science And...T-0.7050 (2008) Introduction to Post Graduate Studies in Computer Science And...
T-0.7050 (2008) Introduction to Post Graduate Studies in Computer Science And...
mniemi
 

Viewers also liked (9)

T-121-5300 (2008) User Interface Design 10 - UIML
T-121-5300 (2008) User Interface Design 10 - UIMLT-121-5300 (2008) User Interface Design 10 - UIML
T-121-5300 (2008) User Interface Design 10 - UIML
 
Bc 04 08 Lr Tom V2
Bc 04 08 Lr Tom V2Bc 04 08 Lr Tom V2
Bc 04 08 Lr Tom V2
 
Strategic Usability
Strategic UsabilityStrategic Usability
Strategic Usability
 
Quiz
QuizQuiz
Quiz
 
T-121.5300 Käyttoliittymasuunnittelu - Mallit
T-121.5300 Käyttoliittymasuunnittelu - MallitT-121.5300 Käyttoliittymasuunnittelu - Mallit
T-121.5300 Käyttoliittymasuunnittelu - Mallit
 
T-121-5300 (2008) User Interface Design 9 - Process
T-121-5300 (2008) User Interface Design 9 - ProcessT-121-5300 (2008) User Interface Design 9 - Process
T-121-5300 (2008) User Interface Design 9 - Process
 
Sql – Structured Query Language
Sql – Structured Query LanguageSql – Structured Query Language
Sql – Structured Query Language
 
Database Containerization Platform Checklist
Database Containerization Platform ChecklistDatabase Containerization Platform Checklist
Database Containerization Platform Checklist
 
T-0.7050 (2008) Introduction to Post Graduate Studies in Computer Science And...
T-0.7050 (2008) Introduction to Post Graduate Studies in Computer Science And...T-0.7050 (2008) Introduction to Post Graduate Studies in Computer Science And...
T-0.7050 (2008) Introduction to Post Graduate Studies in Computer Science And...
 

Similar to Freesmartphone.org

Fos sintro pres-dav
Fos sintro pres-davFos sintro pres-dav
Fos sintro pres-dav
Parin Sharma
 
Foss Presentation
Foss PresentationFoss Presentation
Foss Presentation
Ahmed Mekkawy
 
Native mobile application development with Flutter (Dart)
Native mobile application development with Flutter (Dart)Native mobile application development with Flutter (Dart)
Native mobile application development with Flutter (Dart)
Randal Schwartz
 
ERTS diagram
ERTS diagramERTS diagram
ERTS diagram
YangJerng Hwa
 
Webtech 17.11.2009
Webtech 17.11.2009Webtech 17.11.2009
Webtech 17.11.2009
Patrick Lauke
 
Story of java
Story of javaStory of java
Story of java
Ahmed Elbassel
 
Story of java
Story of javaStory of java
Story of java
AhmedElbassel
 
Automated mobile application porting
Automated mobile application portingAutomated mobile application porting
Automated mobile application porting
e27
 
Droidcon uk2012 androvm
Droidcon uk2012 androvmDroidcon uk2012 androvm
Droidcon uk2012 androvm
dfages
 
Touch your NetBSD
Touch your NetBSDTouch your NetBSD
Touch your NetBSD
Pierre Pronchery
 
Cross platform development
Cross platform developmentCross platform development
Cross platform development
dftaiwo
 
Open source software siddique
Open source software siddiqueOpen source software siddique
Open source software siddique
Siddique Ibrahim
 
OLPC presentation in a class on Information Systems Strategy
OLPC presentation in a class on Information Systems StrategyOLPC presentation in a class on Information Systems Strategy
OLPC presentation in a class on Information Systems Strategy
Sameer Verma
 
Portable OS & Portable Application
Portable OS & Portable ApplicationPortable OS & Portable Application
Portable OS & Portable Application
Jayaseelan Yezhuaralai
 
groovy DSLs from beginner to expert
groovy DSLs from beginner to expertgroovy DSLs from beginner to expert
groovy DSLs from beginner to expert
Paul King
 
BUD17-104: Scripting Languages in IoT: Challenges and Approaches
BUD17-104: Scripting Languages in IoT: Challenges and ApproachesBUD17-104: Scripting Languages in IoT: Challenges and Approaches
BUD17-104: Scripting Languages in IoT: Challenges and Approaches
Linaro
 
IoTivity for Automotive: meta-ocf-automotive tutorial
IoTivity for Automotive: meta-ocf-automotive tutorialIoTivity for Automotive: meta-ocf-automotive tutorial
IoTivity for Automotive: meta-ocf-automotive tutorial
Samsung Open Source Group
 
Pardus Linux English Presentation
Pardus Linux English PresentationPardus Linux English Presentation
Pardus Linux English Presentation
Emrah Tokalak
 
Introduction to Plone
Introduction to PloneIntroduction to Plone
Introduction to Plone
Jazkarta, Inc.
 
XPDS16: Xenbedded: Xen-based client virtualization for phones and tablets - ...
XPDS16:  Xenbedded: Xen-based client virtualization for phones and tablets - ...XPDS16:  Xenbedded: Xen-based client virtualization for phones and tablets - ...
XPDS16: Xenbedded: Xen-based client virtualization for phones and tablets - ...
The Linux Foundation
 

Similar to Freesmartphone.org (20)

Fos sintro pres-dav
Fos sintro pres-davFos sintro pres-dav
Fos sintro pres-dav
 
Foss Presentation
Foss PresentationFoss Presentation
Foss Presentation
 
Native mobile application development with Flutter (Dart)
Native mobile application development with Flutter (Dart)Native mobile application development with Flutter (Dart)
Native mobile application development with Flutter (Dart)
 
ERTS diagram
ERTS diagramERTS diagram
ERTS diagram
 
Webtech 17.11.2009
Webtech 17.11.2009Webtech 17.11.2009
Webtech 17.11.2009
 
Story of java
Story of javaStory of java
Story of java
 
Story of java
Story of javaStory of java
Story of java
 
Automated mobile application porting
Automated mobile application portingAutomated mobile application porting
Automated mobile application porting
 
Droidcon uk2012 androvm
Droidcon uk2012 androvmDroidcon uk2012 androvm
Droidcon uk2012 androvm
 
Touch your NetBSD
Touch your NetBSDTouch your NetBSD
Touch your NetBSD
 
Cross platform development
Cross platform developmentCross platform development
Cross platform development
 
Open source software siddique
Open source software siddiqueOpen source software siddique
Open source software siddique
 
OLPC presentation in a class on Information Systems Strategy
OLPC presentation in a class on Information Systems StrategyOLPC presentation in a class on Information Systems Strategy
OLPC presentation in a class on Information Systems Strategy
 
Portable OS & Portable Application
Portable OS & Portable ApplicationPortable OS & Portable Application
Portable OS & Portable Application
 
groovy DSLs from beginner to expert
groovy DSLs from beginner to expertgroovy DSLs from beginner to expert
groovy DSLs from beginner to expert
 
BUD17-104: Scripting Languages in IoT: Challenges and Approaches
BUD17-104: Scripting Languages in IoT: Challenges and ApproachesBUD17-104: Scripting Languages in IoT: Challenges and Approaches
BUD17-104: Scripting Languages in IoT: Challenges and Approaches
 
IoTivity for Automotive: meta-ocf-automotive tutorial
IoTivity for Automotive: meta-ocf-automotive tutorialIoTivity for Automotive: meta-ocf-automotive tutorial
IoTivity for Automotive: meta-ocf-automotive tutorial
 
Pardus Linux English Presentation
Pardus Linux English PresentationPardus Linux English Presentation
Pardus Linux English Presentation
 
Introduction to Plone
Introduction to PloneIntroduction to Plone
Introduction to Plone
 
XPDS16: Xenbedded: Xen-based client virtualization for phones and tablets - ...
XPDS16:  Xenbedded: Xen-based client virtualization for phones and tablets - ...XPDS16:  Xenbedded: Xen-based client virtualization for phones and tablets - ...
XPDS16: Xenbedded: Xen-based client virtualization for phones and tablets - ...
 

Recently uploaded

AppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSFAppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSF
Ajin Abraham
 
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
Fwdays
 
High performance Serverless Java on AWS- GoTo Amsterdam 2024
High performance Serverless Java on AWS- GoTo Amsterdam 2024High performance Serverless Java on AWS- GoTo Amsterdam 2024
High performance Serverless Java on AWS- GoTo Amsterdam 2024
Vadym Kazulkin
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
Zilliz
 
Essentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation ParametersEssentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation Parameters
Safe Software
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
Chart Kalyan
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
ssuserfac0301
 
The Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptxThe Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptx
operationspcvita
 
What is an RPA CoE? Session 1 – CoE Vision
What is an RPA CoE?  Session 1 – CoE VisionWhat is an RPA CoE?  Session 1 – CoE Vision
What is an RPA CoE? Session 1 – CoE Vision
DianaGray10
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
Antonios Katsarakis
 
Must Know Postgres Extension for DBA and Developer during Migration
Must Know Postgres Extension for DBA and Developer during MigrationMust Know Postgres Extension for DBA and Developer during Migration
Must Know Postgres Extension for DBA and Developer during Migration
Mydbops
 
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge GraphGraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
Neo4j
 
A Deep Dive into ScyllaDB's Architecture
A Deep Dive into ScyllaDB's ArchitectureA Deep Dive into ScyllaDB's Architecture
A Deep Dive into ScyllaDB's Architecture
ScyllaDB
 
Session 1 - Intro to Robotic Process Automation.pdf
Session 1 - Intro to Robotic Process Automation.pdfSession 1 - Intro to Robotic Process Automation.pdf
Session 1 - Intro to Robotic Process Automation.pdf
UiPathCommunity
 
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyFreshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
ScyllaDB
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
Tatiana Kojar
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
Brandon Minnick, MBA
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
 
inQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
inQuba Webinar Mastering Customer Journey Management with Dr Graham HillinQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
inQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
LizaNolte
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
Jason Packer
 

Recently uploaded (20)

AppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSFAppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSF
 
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
 
High performance Serverless Java on AWS- GoTo Amsterdam 2024
High performance Serverless Java on AWS- GoTo Amsterdam 2024High performance Serverless Java on AWS- GoTo Amsterdam 2024
High performance Serverless Java on AWS- GoTo Amsterdam 2024
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
 
Essentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation ParametersEssentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation Parameters
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
 
The Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptxThe Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptx
 
What is an RPA CoE? Session 1 – CoE Vision
What is an RPA CoE?  Session 1 – CoE VisionWhat is an RPA CoE?  Session 1 – CoE Vision
What is an RPA CoE? Session 1 – CoE Vision
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
 
Must Know Postgres Extension for DBA and Developer during Migration
Must Know Postgres Extension for DBA and Developer during MigrationMust Know Postgres Extension for DBA and Developer during Migration
Must Know Postgres Extension for DBA and Developer during Migration
 
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge GraphGraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
 
A Deep Dive into ScyllaDB's Architecture
A Deep Dive into ScyllaDB's ArchitectureA Deep Dive into ScyllaDB's Architecture
A Deep Dive into ScyllaDB's Architecture
 
Session 1 - Intro to Robotic Process Automation.pdf
Session 1 - Intro to Robotic Process Automation.pdfSession 1 - Intro to Robotic Process Automation.pdf
Session 1 - Intro to Robotic Process Automation.pdf
 
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyFreshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
 
inQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
inQuba Webinar Mastering Customer Journey Management with Dr Graham HillinQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
inQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
 

Freesmartphone.org

  • 1. Free your phone Shaastra 2008 – IIT Madras Sudharshan 'Sup3rkiddo' S
  • 2. Agenda ● Software development in mobile phones ● Freesmartphone.org framework ● FSO and freedesktop.org ● D-Bus primer (a gooey chocolate) ● Framework daemon components ● Code walkthrough, zhone ● A bit about Openmoko
  • 3. Mobile Software Development ● Variety of software stacks – Symbian – Windows CE/Mobile – EZX – Android – J2ME – And a lot more
  • 4. Mobile Software development ● Variety of hardware capabilities – Camera – GPS – Music player – Touch screen – USB – Accelerometers – And many more
  • 5. The problem ● We solve the problem with hardware abstraction layers – Neod for Openmoko – Ohm for Maemo – Zaurusd for OpenZaurus – Machined for GPE
  • 6. ..all doing the same damn thing
  • 7. Wouldn't it be nice if...
  • 8. What is freesmartphone.org? “freesmartphone.org is a collaboration platform for opensource and open discussion software projects working on interoperability and shared technology for Linux-based Smartphones” -- http://wiki.freesmartphone.org
  • 9. Design goals ● Be platform agnostic, doesn't matter where you are running the code ● Be language agnostic as well. If it has Dbus bindings you are home. ● Be simple and small. Example, HAL vs. Device subsystem of the FSO framework ● Integrate tightly with the hardware for performance ● Lastly, “re-use existing technologies, but not overdo it”
  • 10. Why re-invent something that freedesktop.org is already doing? ● FDO focuses on interoperability and standards between different Desktop Environments, ex: KDE, Gnome, XFCE ● FSO focuses on interoperability between entire software platforms for Smartphones and similar devices ● (Well, we still use Dbus and thats from FDO) ● As, the name implies freedesktop.org is for Desktops. And Desktops != Mobile phones
  • 11. D-Bus Primer ● One of the coolest things to have happened in the FOSS world. ● Inter-process Communication for mortals
  • 12. D-Bus in one line Expose an object with an interface on a System or Session Bus
  • 13. D-Bus in FSO framework ● Use system bus. So only one instance of the code will run. ● Example. GetCapacity method from org.freesmartphone.Device.PowerSupply interface running on org.freesmartphone.odeviced system bus
  • 14. How it all comes together, a quick demonstration
  • 15. Zhone, walkthrough Because APIs without a consumer suck. A code walkthrough of zhone (Zen Phone)
  • 16. Links and Resources ● http://www.freesmartphone.org ● http://git.freesmartphone.org ← code ● http://wiki.openmoko.org/wiki/OpenmokoFramewor ● http://dbus.freedesktop.org/ ● http://www.sudharsh.wordpress.com
  • 17. Yay, Thanks This talk wouldn't have been possible without the hackers at Openmoko and other FOSS contributors. Cheers!