Linux mobile developers, Nokia employees, and members of the Maemo community came together in Berlin this past weekend for the very first Maemo Summit. The event offered attendees an opportunity to share ideas and participate in collaborative development. It also provided Nokia with a venue for introducing the Maemo development community to some of the innovative new concepts and technologies that will define the evolution of Maemo 5 (codenamed Fremantle), the next major version of the platform.

Nokia is pushing significant architectural changes at many different levels in the Maemo platform stack. The new components will simplify application development and bring new capabilities to future Internet Tablet products. Nokia also has some plans to stimulate third-party application development and expand the ecosystem of independent Maemo software.

Hardware and boot management



Nokia has adopted Upstart, a framework developed by Canonical that manages system services and processes that are executed during startup and shutdown. Upstart is asynchronous and event-driven, which means that it can perform multiple tasks at the same time and will start tasks when the necessary system conditions have been reached. It has the potential to provide a lot more granularity and robustness than the conventional SysV init daemon, which performs tasks iteratively based on a predetermined order. Upstart delivers the performance advantages of concurrent booting, while avoiding race conditions. The benefit for end users is that, with a proper configuration, Upstart could significantly reduce startup time for Maemo-based devices.

The Open Hardware Manager (OHM) is slated for inclusion, too. It is a lightweight, pluggable service that wraps around the FreeDesktop.org Hardware Abstraction Layer (HAL) and provides a generic, standardized interface for accessing power statistics and controlling relevant mobile device functionality, such as backlighting and heat dissipation. It is user-configurable and supports rule-based policies. Some possible use cases include disabling the power button during a firmware update, instructing the system to throttle down the processor if components start to get too hot, and automatically adjusting screen brightness on the basis of remaining battery life.

Some of the most exciting changes to the Maemo platform are in the area of connectivity. As we discussed in our recent coverage of Ari Jaaksi's presentation about Maemo 5, Nokia is opening its HSPA source code and will be bringing cellular connectivity to the platform. Nokia has also opened the source code of stlc45xx, a WiFi driver for the STMicro WiFi parts used in Nokia Internet Tablet devices. It is based on mac80211, a popular SoftMAC implementation for Linux that has also been adopted by Intel and Atheros. Nokia wants members of the open source software community to participate in improving the stlc45xx driver and is trying to get it mainlined into the Linux kernel.

Multimedia



Users and developers can look forward to lots of multimedia improvements in Maemo 5. One of the biggest infrastructure changes is the addition of PulseAudio (PA), a cross-platform open sound server that is network-transparent and supports some really nifty mixing features. PA makes it easy to control the volume of audio streams on a per-application basis and to redirect audio streams among devices or computers on a network. There are many scenarios in which these abilities could be useful on a tablet device. For instance, PA would allow a VoIP application to programmatically mute a music player application when the user initiates a voice call.

PA is already used in several desktop Linux distributions, but it has been problematic in many ways because of configuration glitches and legacy applications that require work-arounds. These issues could pose some challenges to Nokia and detract from PA's value to end users. It is also unclear at this point how much of PA's advanced functionality will be exposed to the end user. If Nokia can avoid the configuration pitfalls and provide a clean and simple UI that lets users take advantage of powerful features like audio stream redirection and network autodiscovery, I'll be really impressed.

Another big multimedia improvement will come in the form of GstOpenMAX, an open source GStreamer plugin. This leverages STMicro's Bellagio implementation of the OpenMAX integration layer—a standardized API that is defined by Khronos, the same group that is behind OpenGL. The plugin—which was developed collaboratively by Nokia, Fluendo, TI, and STMicro—will allow OpenMAX-compliant media components to be snapped into GStreamer, the GObject-based media framework that is used by most GTK+ and GNOME audio and video applications. End users can probably look forward to getting better hardware-accelerated audio support.

At a higher level, Nokia's new Midas framework will simplify the development of multimedia applications by providing developers with a rich API that brings together a lot of media-related functionality. Applications will be able to use Midas to manage and share playlists, interact with metadata, and tap into the local filesystem media index.

The platform improvement that will have the most visible impact on the Maemo user experience is the inclusion of Clutter, a powerful graphics framework that enables development of rich user interfaces. This will be leveraged for aesthetic improvements, visual effects, and heightened usability. There are also changes to Nokia's Hildon widget toolkit, which will gain some new, finger-friendly components. Nokia revealed that internal experimentation with multitouch is ongoing, but declined to confirm whether this functionality will be adopted for future products. For extensive details about those aspects of the platform, keep an eye out for our upcoming article about Maemo design and usability.

Search and UPnP



Maemo 5 will include the Tracker indexing and metadata extraction system, an open source search framework that is similar to Apple's Spotlight. Tracker provides some compelling backend features, such as system-wide metadata storage, but its front-end utilities are still very poor. On the desktop, many users favor Beagle, a more complete and mature alternative that is used by several Linux distributions. Tracker is a better choice than Beagle for mobile and embedded environments, however, because it is implemented in native C and designed for superior runtime performance on resource-constrained devices. If it matures sufficiently, Tracker could be really useful for several tasks, ranging from basic file searches to supplying Midas with media library metadata.

The new version of Maemo will also bundle gUPnP, an open source implementation of the Universal Plug and Play (UPnP) network protocol. The framework, which was developed by OpenedHand, provides a simple GObject-based API and includes support for network autodiscovery with the Simple Service Discovery Protocol. Additionally, it includes libraries with GTK+ widgets for displaying UPnP information, and another that has functions for leveraging UPnP in multimedia applications. It will make it trivially easy for Maemo-based devices to interface with UPnP services on commercial products and networked computers.

Encouraging independent application development



Nokia will aggressively encourage third-party application development and help make Maemo software more visible to end users. A big part of that plan is the upcoming maemo.nokia.com web site, which will promote and sell third-party programs. Nokia will also offer free user experience consulting services to developers. Peter Schnieder, Nokia's director of Maemo marketing, told attendees at the summit that the company will even be paying to promote certain third-party applications with search engine advertising. These moves are clearly Nokia's answer to Apple's increasingly popular application store for the iPhone.

Most of the source code for the new components is already available. The platform will continue to be developed transparently with the participation of the open source software community. The first official Maemo 5 SDK alpha release is loosely planned for November. The first beta could land between March and May. Nokia says that incremental releases will be issued every week until the final version of the SDK is released.

It is still unclear whether Maemo 5 will be able to run on legacy Internet Tablet devices, but it seems increasingly unlikely. Those of us who want to test prerelease builds on real OMAP 3 hardware are going to have to work with TI Beagle Board devices until we can get our hands on some next-generation tablets.

Nokia's roadmap for Maemo 5 is a huge win for mobile Linux enthusiasts. Nokia is liberating new hardware drivers, adapting intriguing new desktop Linux technologies, and is working closely with the open source software community to accelerate evolution of their operating system.