OpenmokoFramework
From Openmoko
m (→Components) |
m (→Components) |
||
Line 47: | Line 47: | ||
... discussion of subsystem purposes ... | ... discussion of subsystem purposes ... | ||
− | + | == low level == | |
− | device | + | * device |
− | gsm | + | * gsm |
− | bluetooth | + | * bluetooth |
− | network | + | * network |
− | gps | + | * gps |
− | + | ||
− | + | == high level == | |
− | eventd | + | |
+ | ===pimd=== | ||
+ | ** intelligent storage database | ||
+ | |||
+ | ===eventd=== | ||
** signaling events via I/O (ringing, blinking, vibrating) | ** signaling events via I/O (ringing, blinking, vibrating) | ||
− | usaged | + | ** might use fd.o notification API |
− | ** coordinating application I/O requirements | + | |
− | + | ===usaged=== | |
+ | ** coordinating application I/O requirements (think ''reference counting'' for I/O requirements) | ||
+ | ** might use fd.o policy API | ||
+ | |||
+ | ===preferencesd=== | ||
=Tasks= | =Tasks= |
Revision as of 17:21, 24 April 2008
Note: This is the (ongoing) description of the new framework architecture. See OpenmokoOldFramework for the framework architecture of 2007.1 and 2007.2
Contents |
Purposes
- Give people the infrastructure to create solid and exciting software products based on the Openmoko platform
- Support competing UIs while collaborating on developing services
- Encourage framework users (e.g. application developers) to also contribute to the framework
Requirements
- Make it simple
- Concentrate on core services
- Be programming language agnostic
- Be UI toolkit agnostic
- Try to reuse existing technologies as much as possible, but not at the cost of a bad API
How to achieve that technically
- Chose Dbus as the collaboration line. Below dbus, we can work together. Above dbus, we can differenciate.
- Expose features through dbus APIs implemented by UI and language-agnostic services (daemons).
- Optimize for Openmoko devices, but support multiple architectures and purposes through plugin interfaces and suitable hardware abstraction mechanisms.
- Be not afraid of reinventing the wheel for a wheel-barrow if all the existing wheels are made for sports cars.
Mandatory Readings
- Frameworks exist for conceptual integrity
- Ten ways to make more humane open source software
- FreeSmartPhone.org Wiki
What this is NOT about
This initiative does not cover low level services such as the
- Bootloader,
- Kernel,
- System Init,
This initiative does not cover high level services as the
- X-Window-System,
- Window Manager,
- Application Launcher,
Overview
... picture ...
Components
... discussion of subsystem purposes ...
low level
- device
- gsm
- bluetooth
- network
- gps
high level
pimd
- intelligent storage database
eventd
- signaling events via I/O (ringing, blinking, vibrating)
- might use fd.o notification API
usaged
- coordinating application I/O requirements (think reference counting for I/O requirements)
- might use fd.o policy API
preferencesd
Tasks
... explain what's already there, what's missing, what do we need to do ...
Team & Roadmap
... talk about the team and the roadmap ...