Symbian developers are probably familiar with how the Symbian OS is divided into different subsystems and components. Unfortunately the structure of the maemo platform and the underlying GNU/Linux operating system differs significantly from Symbian OS, S60, and UIQ.
In some cases these Symbian OS subsystems and APIs can be directly mapped to maemo platform components, but usually the relations are not 1:1. Therefore, this chapter provides just a generalized comparison of the platforms.
Maemo component |
Description |
Symbian OS equivalent |
Basic OS libraries |
Low-level operating system APIs (file and network handling, standard C libraries). |
Parts of User Library E32, Networking subsystem, System libraries. |
X |
X Window System, provides windowing on bitmap displays and event handling from inputs. Low level, usually not used directly by the developer. |
WSERV and GDI in the Graphics subsystem. |
GLib |
A cross-platform software utility library. |
User Library E32. |
D-Bus |
The D-BUS message bus system is used for applications and libraries to deliver messages to each another. |
No direct equivalent component, but the Publish and Subscribe API in User Library E32 comes close. |
HAL |
Hardware Abstraction Layer. |
HAL in Base subsystem. |
GDK |
Computer graphics library. A wrapper around the low-level drawing and windowing functions provided by the underlying graphics system (X Window System). Handles basic rendering. Used internally in GTK+. |
GDI and FBSERV in the Graphics subsystem. |
Cairo |
2D graphics library with SVG image format support. Used internally in GTK+. |
No equivalent in Symbian OS. |
Pango |
Library for laying out and rendering of text, with an emphasis on internationalization. It forms the core of text and font handling for GTK+. |
FBSERV and FNTSTORE in Graphics subsystem. |
ATK |
Accessibility toolkit. Changing UI to suit people with disabilities. Used internally in GTK+. |
No equivalent. |
GTK+ |
Widget toolkit for the X Window System, for creating GUIs. The used GTK+ has been modified for the maemo platform, but it is binary compatible with the original. |
Symbian |
FBSERV in Graphics subsystem. UIKON, CONE in Application framework subsystem. |
S60 |
Avkon UI components, Avkon UI utilities. |
UIQ |
Qikon components. |
|
Hildon widgets |
GTK+ based UI components with modifications for better support for the maemo platform. |
S60 |
Avkon UI components, Avkon UI utilities. |
UIQ |
Qikon components. |
|
Sapwood |
Theme engine for GTK+. More or less GTK+ internals. Not to be confused with UI themeing. |
No equivalent. |
Hildon file UI |
Common UI Widget for accessing files. |
S60 |
Common File Dialogs API in UI Utilities. |
UIQ |
Related Qikon dialog classes (CQikSelectFileDlg, CQikSelectFolderDlg). |
|
GStreamer |
Multimedia framework |
Multimedia Framework from Multimedia subsystem. |
Matchbox |
Window manager for X Window System. |
No equivalent. |
GConf |
A system for storing application preferences. Intended for user preferences, not for storing large amounts of data or complex configurations of software components. |
Central repository in system libraries. |
GnomeVFS |
Abstraction layer for reading, writing, and execution of files. Allows applications to transparently access various types of file systems through a uniform interface (e.g. WebDAV, ftp, local filesystem). |
File server F32. |
BlueZ |
Official Bluetooth stack for GNU/Linux. |
Bluetooth subsystem. |
E-D-S |
The Evolution Data Server provides a single database for common, desktop-wide information, such as a user's address book or calendar events. |
Calendar and Contacts in Application engines. |
Telepathy |
The Telepathy project aims to provide a unified framework for all forms of real time conversations, including instant messaging, IRC, voice calls, and video calls. |
Symbian |
Messaging subsystem, excluding SMS and e-mail. |
S60 |
Instant messaging in Messaging Application Support subsystem. |
|
Avahi |
A system which facilitates service discovery on a local network. This means that you can connect your laptop or computer to a network and instantly be able to view other people you can chat with, find printers to print to, or shared files. |
No equivalent. |
Desktop |
The desktop is visible when no other application is running in the foreground. You can write applets to be shown on the desktop (for instance, an RSS reader can display the latest news using a Desktop Widget). |
S60 |
Active Idle, aka Active Standby, not a public API. |
|
Control Panel |
A centralized place for applications to expose settings for the user. Uses applets like the Desktop mentioned above. |
No equivalent. |
Alarm |
Provides a way to manage timed events. |
Alarm server in Application services. |
Installer |
Application installer, includes automatic dependency management. Uses a standard debian package format. |
Software installation engine and SIS files. |
libhildon |
Base of the Hildon Application Framework. Contains the Hildon widgets and more. |
|
libosso |
Library for user applications. Includes wrapping frequently-used D-Bus services, registering new MIME type(s), logging functions, and other miscellaneous utilities. |
No direct equivalent, same functionality spread all over several subsystems. |
Help |
Centralized Help Framework. Provides a uniform way for applications to present help to the user. |
HLPMODEL in Application Services. |
Search |
Non-public, expandable API for searching different items (local or network). |
No equivalent. |
Backup |
The backup application saves and restores user data. |
Backup and restore in Connectivity subsystem. |
Text Input |
Text input from virtual keyboard visible in touchscreen. |
UIQ |
TextInput server, text input modules. |
|