Openmoko Framework Initiative
I have not been posting about my work for Openmoko for quite a while. There are multiple reasons for that, ask me privately if you want to know… Today though, I want to post about a high-priority project inside Openmoko, Inc. — the new framework and middleware initiative which me and some guys will be working on.
I have been talking privatly about this to people on conferences, but now it’s going to be an official project. It’s something we attempted to do when we started back in 2006, but for some reason, we did it the wrong way. We tried taking existing components to make them fulfill our usecases and to fit our needs, which in some cases turned out to be impossible. This time we’re moving the other way round. We will take our usecases as the goal and create the necessary infrastructure to make it happen. If — while we’re on the way — can integrate existing efforts, even better. If not, we will eventually see how to merge with existing efforts. The goal is to get things done — now!.
Basically all this is about two components, which are independent, but closely related.
- The framework.
- A bread-and-butter application.
The Framework
The purpose here is:
- Give people the infrastructure to create solid and exciting software products based on the Openmoko platform,
- Support competing UIs while collaborating on developing services, and
- Encourage framework users (e.g. application developers) to also contribute to the framework.
With this in mind, we define the following requirements:
- Make it simple,
- Concentrate on core services,
- Be programming language agnostic,
- Be UI toolkit agnostic, and
- Try to reuse existing technologies as much as possible, but not at the cost of a bad API.
Our way to achieve this on a technical level is through dbus:
- Chose dbus as the collaboration line. Below dbus, we can work together. Above dbus, we can differentiate.
- Expose features through dbus APIs implemented by UI-agnostic and language-agnostic services (daemons).
- Optimize for Openmoko devices, but support multiple architectures (OpenEZX, Xanadu, …) 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.
The framework is not going to cover everything but the kitchen sink though, especially it’s not about:
- Bootloader, Kernel, or System Init.
- X-Window-System, Window Manager, UI Toolkits,
- Application Launchers, Applications, or Fancy UIs.
The Bread-and-Butter application
The framework initiative is related to developing an application that uses the framework to turn a Linux-phone into a usable feature phone. The main goals for this application are:
- Make it simple,
- Concentrate on core features,
- Have a beautiful, efficient and consistent UI,
- Be easily extensible through scripting, and
- Show the power of the framework.
This application is developed in tandem with the framework, because when you write framework APIs, it’s important to have existing API consumers. Without API consumers, APIs are just specs, could be awkyard, or plainly unusable — that’s why this bread-and-butter application is of central importance to the framework project.
I’m looking forward to spend a lot of time on this project and I invite all of you to participate. Most of the discussions will happen on the Openmoko developers mailing list and the FreeSmartPhone standards list We already have achieved some important basics thanks to great contributions by the moko underground people that are grouped around the neo1973-germany.de site and the IRC channel #neo1973-germany. I’m also looking forward to great results from this years’ Openmoko Google Summer of Code.
As for the current status, we will update the wiki page OpenmokoFramework frequently and sent status updates once and then to the mailing lists.
Good speed!



Chris wrote:
I wonder if something akin to the Plasma component from KDE4 would be a good idea.
This would allow UI devs to use the same resources or data engines for scripting tools, gadgets/widgets, etc.
Posted on 10-May-08 at 12:35 am | Permalink
niklauz wrote:
finally! what did it take to make this happen?
Posted on 11-May-08 at 3:24 am | Permalink
mickeyl #1 fan wrote:
FAIL.
Posted on 12-May-08 at 5:54 pm | Permalink
JMichel wrote:
It is really not clear to me what is the goal of this change. What is the difference between developing the “High-level framework services” compared to the old architecture’s “libmoko…”? Isn’t it only a change from the GTK+ based architecture to something that can accommodate any UI toolkit? And won’t this add some confusion about what to use to build native OpenMoko applications?
Posted on 20-May-08 at 5:36 pm | Permalink
sh wrote:
Sorry, a bit OT…
One question: how can I get the ‘OpenMoko’ Lanyard without buying the whole old Neo1973 (I want a Freerunner instead
.
Where is the order page for the OM Lanyards?
Thank you!
Posted on 21-May-08 at 9:45 am | Permalink
mickey wrote:
@JMichel: The old libmoko* design was similar in concept and goals, however we failed to see the relevance of detaching applications and services as well as languages and libraries. Back then, we forced everyone to do Gtk+ and C. Now, everything that speaks dbus can use the full service architecture. We can then collaborate in services, but compete on the UI layer (which would inevitably happen — think Qt, wxWidgets, Qtopia, special vertical market needs w/ text interfaces etc.).
Posted on 02-Jun-08 at 1:04 am | Permalink
mickey wrote:
@sh: Unfortunately Openmoko dropped out of the accessory business. I hope that we will have the chance to manufacture some of these things as giveaways on fairs etc.
Posted on 02-Jun-08 at 1:05 am | Permalink
Invictus deus ex machina wrote:
Es kommt……
Noch knapp zwei Wochen (heute wird mal großzügig geschätzt) dann ist mein Freerunner hier Aus diesem Anlass habe ich mich mal wieder ein bisschen intensiver auf den Openmoko Seiten umgeschaut. Als erstes ist mir ins Auge gefallen das zur Zeit an ei…
Posted on 26-Jun-08 at 11:21 pm | Permalink
La Martina wrote:
Finally I have got Openmoko that what I want.Thanks, but I am not getting the exactly process so please inform me through e-mail.
Posted on 11-Jul-10 at 3:50 pm | Permalink