Maemo
Maemo is a Linux-based software platform originally developed by Nokia, now developed by the community, for smartphones and Internet tablets. The platform comprises both the Maemo operating system and SDK. Maemo played a key role in Nokia's strategy as an attempt to compete with Apple and Android; the only retail devices that shipped with Maemo were the Nokia Internet tablet line released in 2005 and the Nokia N900 smartphone in 2009.
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 and draws much of its GUI, frameworks, and libraries from the GNOME project. It uses the Matchbox window manager and the GTK-based Hildon framework as its GUI and application framework.
The user interface in Maemo 4 is similar to many hand-held interfaces and features a "home" screen, from which all applications and settings are accessed. The home screen is divided into areas for launching applications, a menu bar, and a large customizable area that can display information such as an RSS reader, Internet radio player, and Google search box. The Maemo 5 user interface 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.
At the Mobile World Congress in February 2010, it was announced that the Maemo project would be merging with Moblin to create the MeeGo mobile software platform. Despite that, the Maemo community continued to be active, and in late 2012 Nokia began transferring Maemo ownership to the Hildon Foundation, which was replaced by a German association Since 2017, a new release called Maemo Leste is in development which is based on Devuan.
User interface
OS2005–OS2008
Up to Maemo 4, 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:- Vertically down the left hand side of the screen is the taskbar, with applets for the web browser, communications, and application menu by default. These can be modified using third party plug-ins.
- Horizontally across the top left half is the menu bar, which shows the application name and window title, and gives access to the application's menu.
- Horizontally across the top right quadrant is the status bar, containing icons such as battery life, wireless connection, volume, Bluetooth status, and brightness by default. These can be expanded using third party plug-ins in the same manner as the task-bar.
- The remaining large part of the display contains Home applets, which can display data as well as serving as a shortcut to applications. These include an RSS reader, Internet radio player, Google search box and contact list by default, but can also be expanded with third party plug-ins.
Maemo 5 (Fremantle)
The user interface in Maemo 5 is different from its predecessors. It provides four fully customizable "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 Mac OS X operating system. From the dashboard, running applications can be brought back to full screen by tapping the preview window, and 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 also be accessed from 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. It supports an 800×480 display resolution, so some web pages can be viewed without horizontal scrolling. It can automatically connect to known wireless networks, download RSS feeds and email and disconnect automatically without user intervention.
Advanced Packaging Tool with a command-line apt-get client can be used to install applications. 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 user's files can be accessed using the standard Removable Storage Device protocol.
A new update was released onto the Nokia N900 on 2 November 2011 as an OTA update. The new version mostly consists of security updates. This is considered to be the final official update to Maemo 5/Fremantle shipped by Nokia.
Further development of Maemo 5 happens as a community effort in Maemo-CSSU.
Features
Updating
Maemo devices can be updated using a simple flashing method with a computer over USB.Since Diablo, Maemo supports "Seamless Software Update", which allows incremental operating system upgrades "over the air" using the Advanced Packaging Tool, without the need for a full flash with every update.
Flashing remains available as a way to start over from scratch with a clean installation.
Security
The quick start guide for developers warns that Maemo security concentrates on preventing remote attacks. It also warns that Maemo's root account has a trivial default password which needs to be changed before enabling remote access.Maemo employs a numeric security code as a way to lock the device's controls and display independently of the root password, to help prevent unauthorised access.
Software architecture
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.
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, which was done, for example, to bring Ogg support to the platform, as well as experimental features such as WebM and VP8 after they were announced by Google. Third-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. This is to improve usability on a mobile device with a small screen.
Although Maemo is based on Linux and other open source software, some parts of Maemo remain closed source. These include some user-space software, like certain status bar and taskbar applets and applications, and some system daemons related to connectivity and power management.
Software
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 the Advanced Packaging Tool and dpkg. Bundled applications include the Mozilla-based MicroB browser, Macromedia Flash player, Gizmo5, and Skype.Notable third-party applications
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:; Media players:MPlayer
; Internet: Claws Mail, Modest, Midori, Firefox for mobile, Opera Mobile
; Office applications: Gnumeric, Abiword
; Instant Messaging: Pidgin
; VOIP: Gizmo5, Skype
; Games: The Battle for Wesnoth, Wormux, Doom, Angry Birds
; Others: FBReader, GPE, rdesktop, Rhapsody, ScummVM, Free42, Monsoon HAVA, Navit, Vagalume, VNC
; Fremantle Stars:Applications developed by the community and supported by Nokia as Fremantle Stars will be part of Maemo 5. Notable applications include ScummVM and Fennec.
; Debian: Image:OpenOffice Writer in Maemo 5.jpg|thumb|200px|right|OpenOffice.org running on Maemo 5 using Easy DebianThe complete ARM Debian distribution can be installed as a Maemo application, making thousands of software packages available. Debian ARM packages can also be used if they are modified with the maemo-optify tool. The ability to run largely unmodified linux packages sets Maemo apart from other Linux-based mobile operating systems, such as Android and webOS.
Media support
Other media types, such as the audio format.OGG, can be added with the use of community plug-ins.; Video: MPEG-1, MPEG-4 ASP, RealVideo, AVI, 3GP
; Audio/playlists: MP3, RealAudio, MPEG-4, AAC, WAV, AMP, MP2, AMR, AWB, M4A, WMA. OGG/Vorbis, M3U, PLS
; Image/Animation: JPEG, BMP, TIFF, PNG, SVG Tiny, ICO
; Text/layout: text files, PDF, HTML.
Software development
Software can be developed in C using the [|Maemo SDK], Java, Python, Ruby, Mono, Vala, Perl and Pascal.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 of the Maemo operating system, Maemo 5 offers the Qt library as a community-supported component, alongside the officially supported GTK+ backend. This will change with the Harmattan release, which will add the Qt library as the default, with GTK+ becoming community-supported. The programming languages Python, C and C++ will also be supported.
The Nokia Developer Wiki community has articles about Qt development, and includes tutorials and articles about development for the Maemo operating system.