Screenshot of Maemo 5
|Company / developer||Nokia|
|Source model||Largely open source with mandatory proprietary components|
|Latest stable release||5.0 PR1.1.1 / February 16, 2010|
|Update method||APT and Flashing|
|Supported platforms||ARM architecture|
|Kernel type||Monolithic (Linux)|
|Default user interface||Hildon UI|
The platform comprises the Maemo operating system and the Maemo SDK.
Maemo is mostly based on open source code, and has been developed by Maemo Devices within Nokia in collaboration with many open source projects such as the Linux kernel, Debian, and GNOME. Maemo is based on Debian GNU/Linux and draws much of its GUI, frameworks, and libraries from the GNOME project. It uses the Matchbox window manager, and the GTK-based Hildon as its GUI and application framework.
The UI in Maemo 4 is similar to many handheld interfaces, and features a "Home" screen, which acts as a central point from which all applications and settings are accessed. The Home Screen is divided into areas for launching applications, a menu bar, and a large customisable area that can display information such as an RSS reader, Internet radio player, and Google search box.
The Maemo 5 UI is slightly different: The menu bar and info area are consolidated to the top of the display, and the four desktops can be customized with shortcuts and widgets.
Up to Maemo 4 (a.k.a OS2008), the default screen is the "Home" screen—the central point from which all applications and settings are accessed. The Home Screen is divided into the following areas:
The interface uses either the touch screen, or a directional pad and select button, with separate back, menu, and home buttons. It is capable of two modes of text input: handwriting recognition, and two different sizes of onscreen keyboard, as well as hardware keyboard input with the N810.
The UI in Maemo 5 has changed with respect to its predecessors. It provides four fully customizable (add/remove widgets, move widgets around, change the background, shortcut to applications/contacts) "Home" screens, called Panorama Desktop. Switching from one desktop to the others is done by sliding one's finger horizontally on the background. The dashboard is accessed via the upper left icon and shows all the running applications, in a manner similar to the Exposé feature in Apple's MacOS X operating system. From the dashboard, running applications can be brought back to fullscreen by tapping the preview window or applications can be closed by tapping an X-symbol located in the top right corner of the preview window, similar to the concept of closing applications in other operating systems. The application launcher, where all the installed applications can be launched, can be accessed as well from the dashboard by tapping the same area again in the upper left corner of the screen which invokes the dashboard. If no task or application is running in the background, tapping the top left icon skips the dashboard and directly displays the application launcher.
Maemo provides the Mozilla-based MicroB web-browser with complete Adobe Flash support, which can operate over a wireless connection. It supports an 800x480 display resolution, so some web pages can be viewed without horizontal scrolling. It can automatically connect to known wireless networks and download RSS feeds and email and disconnect automatically without user intervention.
Software is installed or uninstalled using the Application manager. The X Terminal can also be used to install applications using the "apt-get" command (Although this is discouraged for inexperienced users). Users can subscribe to different software repositories which can then be used to automatically keep software up to date. The Application manager also provides an overview of everything currently installed on the system. Data can be synchronized with a PC via a USB connection, and the users files can be accessed using the standard Removable Storage Device protocol.
Maemo devices can be updated using a simple flashing method with a computer over USB.
Since Diablo (Maemo 4.1), Maemo supports "Seamless Software Update" (SSU), which allows incremental operating system upgrades "over the air" using apt without the need for a full flash with every update.
Flashing remains available as a way to start over from scratch with a clean install (much like formatting your hard drive and reinstalling your OS on a PC).
The quick start guide for developers warns that Maemo security concentrates on preventing remote attacks (e.g. by wireless networking and Bluetooth). In particular, it warns that Maemo makes use of a root account, but has a trivial default password (sudo gainroot, pw:rootme).
Independent of the root password, Maemo provides a way to lock the device's controls and display with a numeric access code to help prevent unauthorised access.
Maemo is a modified version of the Debian Linux distribution, slimmed down for mobile devices. It uses an X Window System-based graphical user interface using Xomap and the Matchbox window manager; the GUI uses the GTK+ toolkit and Hildon user interface widgets and API.
BusyBox, a software package for embedded and mobile devices, replaces the GNU Core Utilities used in Debian-proper to reduce memory usage and storage requirements (at the expense of some functionality).
ESD is used as the primary sound server, and GStreamer is used by the shipped media player to play back sounds and movies. The formats supported by GStreamer can be extended by compiling GStreamer plugins in scratchbox (Maemo SDK), which was done, for example, to bring Ogg support to the platform. 3rd party media players can access GStreamer directly or via "osso-media-server".
Window management is handled by the Matchbox window manager, which limits the screen to showing a single window at a time (Ubuntu Netbook Remix implements a similar system). This is to improve handheld usability on a mobile device with a small screen.
Although Maemo is based on Linux and open source software, some parts of Maemo remain closed source. These include some user-space software, like certain statusbar and taskbar applets (including the display brightness applet) and applications, and some system daemons related to connectivity and power management.
Maemo comes with a number of built-in applications, but additional applications can be installed from a number of sources, including various official and community software repositories and deb files through either the built-in package manager "Application manager" or apt and dpkg.
Due in part to the free and open source nature of Linux and Maemo, porting applications to Maemo is a straightforward procedure. Because of this, there are many third-party applications available for the platform. Some applications are original software written specifically for Maemo, while other applications are straight ports of existing Linux programs. Some notable software includes:
Other file types, such as the audio format .OGG, can be added with the use of community plug-ins.
The Maemo SDK is based around the Debian-oriented Scratchbox Cross Compilation Toolkit, which provides a sandbox environment in which development may take place. Scratchbox uses Qemu to emulate an ARM processor or sbrsh to remotely execute instructions. Scratchbox-compatible rootstraps are available for both x86 and ARM, so the majority of development and debugging takes place on x86, with final packaging being for ARM.
As a new feature to the Maemo operating system, Maemo 5 brings the Qt library as a community-supported component alongside the officially supported GTK+ backend. This is going to change with the Harmattan release which will bring in the Qt library as the default, GTK+ becoming community-supported. The programming languages Python, C and C++ will also be supported.
The Maemo operating system is designed for Nokia Internet Tablets, which feature very similar specifications to Nokia's high-end N-series and E-series cellphones, with TI OMAP ARM SoCs, large screens, and expandable internal storage. Although the highly optimized, hardware-specific nature of Maemo means running all of it on non-Internet Tablet hardware would be very difficult, most of the important non-proprietary parts of the OS and some of the available 3rd party applications are actively being packaged for Debian and are available for use on other distributions, which will open up a large range of other hardware options.
Shipped with the 770 in November 2005, this is the original Internet Tablet OS. It came bundled with the Opera web browser, Flash 6, basic Email and RSS clients, audio and video players, PDF and image viewers, a graphical APT front-end (dubbed simply "Application manager"), and a variety of simple games and utilities.
On May 16, 2006 Nokia announced a new version of Internet Tablet OS, which was subsequentially released as a beta version for the 770 on June 9, 2006 and as a final on June 20, 2006. The update featured improved performance and stability, a built-in Google Talk client, a refreshed look, and a new full-screen finger keyboard. Because of significant API and architecture changes, existing applications required recompiling. It is the last officially supported Internet Tablet OS release for the 770.
Also included was the ability to support 2GB RS-MMC cards (formatted FAT). The Linux kernel was upgraded to 2.6.16 with the associated patches for the OMAP platform. This new version uses kernel preemption for improved interactivity.
OS2007 was released and bundled with the N800 on January 8, 2007 after its announcement at the Las Vegas CES 2007 summit. It featured significant bug fixes and performance improvements in almost all areas of the OS, bringing updated versions of Opera 8 and Flash 7, an updated interface and various API and library updates.
OS2008 was released with the N810 in November 2007, based on Linux 2.6.21, and featuring MicroB, a new Mozilla-based web browser that replaces Opera, integrated Samba file sharing and additional support for Windows Media Player Formats and H.264, improved support for USB devices, among other incremental UI improvements (particularly in the direction of finger-friendliness). Dynamic frequency scaling (between 165 MHz and 400 MHz) was also implemented, which gave the N800 a 70 MHz speed increase.
Diablo is the codename for the OS2008 Feature Upgrade (corresponding to Maemo 4.1)., released in June 2008. Major features include significant improvements to the built-in Application manager, incremental operating system upgrades without reflashing ("Seamless Software Update", SSU), Modest as the default mail client, and a new version of the MicroB browser with more optimizations and some interface improvements (though still based on the same Gecko release as Chinook's MicroB).
SSU, in particular, is one of the most significant parts of the Diablo release, as it eliminates the flash-based upgrade system of previous Maemo releases which required the user to completely wipe their device with each upgrade. With SSU, the user can receive "over-the-air" updates to the live system. This also decouples bundled software updates from the major system updates as was required with the flash-based method, so Nokia can release more frequent updates to individual packages than before.
The first SSU update was pushed on August 11, 2008, and brought Diablo up to version 4.2008.30-2. The update primarily features MicroB, Modest, and connectivity framework updates as well as a number of other minor bugfixes.
Maemo 5, also known as Fremantle, is the default operating system on the Nokia N900. The release features a much more finger-friendly and consistent UI, and an X-server based on Xorg rather than KDrive. It features several new technologies, including the Tracker search system, PulseAudio (replacing ESD), the OHM hardware management daemon, the gUPnP UPnP framework, enhanced location framework, and Upstart. Several existing technologies have also been updated, including Gecko, BlueZ, gstreamer (will include OpenMAX), GTK+, and Telepathy.
Maemo 5 comes with new hardware, the Nokia N900 featuring a Texas Instruments OMAP3 SoC, with an HSPA modem and HD camera, which provides significant improvements in the areas of speed, 3D acceleration, and media playback. It has been decided by Nokia that the commercial Maemo 5 platform releases will not be available on N800/N810 hardware, for compatibility reasons. An open source Linux project called Mer, a variant of Maemo, has been formed to provide an alternative, fully open operating system for mobile devices including the Nokia N800 and N810.
Unlike most smartphones, the end-user is able to gain root access by issuing the command "sudo gainroot" in the terminal in Maemo 5. The device does not need to be unlocked or "jailbroken" in order to install an unsupported application. The UK cellular operator Vodafone has its own branded, somewhat more restricted version of the Maemo 5 operating system. Users can flash (change) to the Global variant of the operating system.
The Maemo 5 operating system comes preloaded with a variety of applications such as:
Nokia expects the open source community to play a large part in the development of applications for Maemo 5. As an example, Nokia has launched a contest at the onedotzero festival in London called PUSH N900 aimed at designers, artists, hackers and modders. The contest invites participants "to connect the N900 to something you love."
Nokia's release of the N800 in January 2007 brought Internet Tablet OS 2007. OS2007 ran only on the N800 and Nokia initially had no plans to release it for the 770; however feedback from disgruntled 770 owners led Nokia to release an unsupported hybrid of OS2006 and OS2007, dubbed Internet Tablet OS 2007 Hacker Edition, in February 2007. OS2007HE combined the binary parts of OS2006 with most of the updated libraries and user-space applications of OS2007.
Nokia followed the release of the N810 and OS2008 in November 2007 with the OS2008 Hacker Edition for the 770 on February 14, 2008, following a similar method to the OS2007HE release to create a hybrid between OS2006 and OS2007. The Hacker Editions allow 770 users to access the latest Internet Tablet OS releases and 3rd party software, although due to the 770's hardware limitations and the increased CPU requirements of OS2008, performance is inferior to that of OS2007 HE in most areas.
In addition to the officially supported Hildon environment that comes standard on the tablets, several alternate desktop systems are available. Penguinbait, a member of the Internet Tablet Talk community, has successfully ported KDE 3, Openbox, and XFCE to the N800 and N810 (the 770 is able to run an early version of the KDE port). KDE 4 is being ported at the present time. LXDE is the default desktop for the "Easy Debian" distribution, which is installed as a single application under Maemo, but provides access to the full range of software in the ARM Debian distribution via a chroot environment.
Mer is a completely open-sourced alternative operating system for the N800 and N810 (collectively known as the N8x0 devices). It is based on Ubuntu 9.04, and with the release of Maemo 5/Fremantle, a new goal has emerged: "[To bring] as much of Fremantle as we can get on the N8x0."
Mer is still under development, at release 0.17, and is in the process of obtaining drivers from the various hardware manufacturers of the N8x0 devices (for example, the Mer team recently obtained a set of drivers from Texas Instruments, the manufacturer of the processor).
Harmattan, with the MeeGo announcement, is set to be the "first" MeeGo incarnation on a Nokia device, rather than Maemo 6.
In January 2008, Nokia began the process of acquiring Trolltech, the developer of the Qt application framework. Nokia has since announced plans for the Qt libraries to be bundled with Maemo by Q4 2008, though without a platform-specific "hildonized" UI as is offered with GTK (meaning Qt applications will look different from hildonized GTK ones). This will make porting of Qt applications to the platform easier for developers and make new applications available to users. Qt support on S60 devices will likely lead to cross-platform application sharing between the two platforms. The announcement has met with mixed reaction in the developer community.
|Version||Codename||Build identifier||Release date||First device shipped with||Notes||Devices Supported|
|OS2006||2.0||Mistral||0.2006.22-21||May 2006||Beta release||770|
|OS2007||3.0||Bora||2.2006.51-6||January 2007||N800||770*, N800|
|3.1||3.2007.10-7||March 2007||770*, N800|
|3.2||4.2007.26-8||July 2007||770*, N800|
|4.2007.38-2||October 2007||SDHC corruption fix||770*, N800|
|OS2008||4.0||Chinook||1.2007.42-18||November 2007||N810||(N810 only)||N810|
|1.2007.42-19||November 2007||Kernel upgrade only (N810 only)||N810|
|1.2007.44-4||November 2007||Beta release (N800 only)||N800|
|2.2007.50-2||November 2007||770*, N800, N810|
|2.2007.51-3||January 2008||NOLO (Nokia bootloader) upgrade only||770*, N800, N810|
|4.1||Diablo||4.2008.23-14||June 2008||Adds SSU (Seamless Software Update) support||770*, N800, N810|
|4.2008.30-2||August 2008||First SSU update||770*, N800, N810|
|4.2008.36-5||September 2008||770*, N800, N810|
|5.2008.43-7||December 2008||770*, N800, N810|
|Maemo 5||5.0||Fremantle||1.2009.42-11||November 2009||N900||Bundled officially supported Qt libraries||N900|
|1.2009.44-1||January 2010||Preparatory release for the 2.2009.51-1 firmware, released only OTA (Over-the-air) to 1.2009.42-11 users||N900|
|2.2009.51-1||January 2010||Also known as PR1.1. Changes||N900|
|3.2010.02-8||February 2010||Preparatory release for the PR1.2 firmware. Also known as PR1.1.1. Changes||N900|
|MeeGo||6.0||Harmattan||–||2010–2011||Bundled officially supported Qt libraries, Begins the transition to MeeGo. Previously known as Maemo 6.||Unknown|
*: Hacker Editions, Nokia-released, but Community-maintained. Primarily used by developers to continue developing programs while using older hardware.
Each year, the Maemo developers and users gather at Maemo Summit. The registration for the summit is free. Each participant gets a badge and a Maemo T-shirt.
The 2009 Maemo Summit was held in Amsterdam on October 9–11. The first day was the Nokia day while the other two days were the community days. Nearly 400 developers attended the summit. Nokia gave out 300 pre-production N900 devices (branded as "N00" to distinguish between pre-production, and production variants) to independent developers during the summit.
The maemo SDK is based around the Debian-oriented Scratchbox Cross Compilation Toolkit, which provides a sandbox environment in which development may take place. Scratchbox uses Qemu to emulate an ARMEL processor or sbrsh to remotely execute instructions. Scratchbox-compatible rootstraps are available for both x86 and ARMEL, so the majority of development and debugging takes place on x86, with final packaging being for ARMEL.