Free since 2005 · No login required
AT

Academic Tutorials

Learn at your own pace

site-mobile-top-banner · 320x50

Structure

Added 31 Jul 2008

The Symbian OS System Model contains the following layers, from top to bottom:

  • UI Framework Layer
  • Application Services Layer
    • Java ME
  • OS Services Layer
    • generic OS services
    • communications services
    • multimedia and graphics services
    • connectivity services
  • Base Services Layer
  • Kernel Services & Hardware Interface Layer

The Base Services Layer is the lowest level reachable by user-side operations; it includes the File Server and User Library, the Plug-In Framework which manages all plug-ins, Store, Central Repository, DBMS, and cryptographic services. It also includes the Text Window Server and the Text Shell, the two basic services from which a completely functional port can be created without the need for any higher layer services.

Symbian OS has a microkernel architecture, which means that the minimum necessary is within the kernel to improve robustness, availability, and responsiveness. It contains a scheduler, memory management, and device drivers, but other services like networking, telephony, or filesystem support are placed in the OS Services Layer or Base Services Layer. The inclusion of device drivers means the kernel is not a true microkernel. The EKA2 real-time kernel has been termed a nanokernel, containing only the most basic primitives and supporting an extended kernel to implement any other abstractions.

Symbian OS is designed to emphasize compatibility with other devices, especially removable media file systems. Early development of EPOC led to adopting FAT as the internal file system and this remains in the Symbian OS but an object-oriented persistence model has been placed over the underlying FAT, providing a POSIX-style interface and a streaming model. The internal data formats rely on using the same API that create the data to run all file manipulations - this has created the problems of data-dependence and associated difficulties with changes and data migration.

There is a large networking and communication subsystem, which has three main servers: ETEL (EPOC telephony), ESOCK (EPOC sockets) and C32 (responsible for serial communication). Each of these has a plug-in scheme. For example ESOCK allows different ".PRT" protocol modules, implementing different types of networking protocol scheme. The subsystem also contains code that pertains to short-range communication links, such as Bluetooth, IrDA and USB.

There is also a large volume of user interface (UI) Code. Only the base classes and substructure are contained in Symbian OS, while most of the actual user interfaces are maintained by third parties. This component is known as UIKON. The OS also contains the graphics, text layout, and font rendering libraries.

All Symbian applications are built up from three classes defined by the application architecture: an application class, a document class, and an application user interface class. These classes create the fundamental application behavior. The remaining required functions, the application view, data model, and data interface, are created independently and interact solely through their APIs with the other classes. UIQ and S60 both extend this approach, in two different ways.

Many other things do not yet fit into this model – for example, SyncML, Java ME providing another set of APIs on top of most of the OS and multimedia. Many of these are frameworks, and vendors are expected to supply plug-ins to these frameworks from third parties (for example, Helix player for multimedia codecs). This has the advantage that the APIs to such areas of functionality are the same on many phone models, and that vendors get a lot of flexibility. But it means that phone vendors need to do a great deal of integration work to make a Symbian OS phone.

Also available on E51.

Symbian OS device manufacturers also get supplied with an example user-interface layer called "TechView". It provides a basis to start customisation and is also the environment in which much Symbian OS test code and example code runs. It is very similar to the user interface from a Psion Series 5 personal organiser, so it is not used for any given phone user interface