Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Introduction
Symbian OS was designed from its inception with smartphones as the target
platform. It is not a generic operating system shoehorned into a smartphone nor is it
an adaptation of a larger operating system for a smaller platform.
Consider the way system calls work in Symbian OS. There are two types of system
call. An executive call makes a request for the kernel to execute an operation in
privileged mode on behalf of the user-space requestor. An executive call causes a
software interrupt, which is serviced by branching the operation into kernel code. The
interrupt is serviced and control is passed back to the user. There is a server that
protects kernel resources and requests to manipulate those resources need to go
through that server. Server requests are themselves
executive calls.
OS Services Layer
Generic Communication Services Multimedi Connectivit
OS Telephony Short Link Networkin
a y
Services Services Services g & Services
Graphics
Symbian operating system can be decomposed into layers, and layers as further
decomposed into blocks and sub-blocks and finally blocks are decomposed into
collections of individual components. Layers are the highest level abstraction in the
model; components are the lowest level abstraction, the fundamental units of the
model; blocks and sub-blocks decompose layers by functionality – roughly speaking,
by broad technology area.
The key concepts used by the system model are layers, blocks and sub-blocks,
component collections and components. Components provide the essential mapping
from the logical model to the concrete system. While layers, blocks and sub-blocks
are essentially logical concepts, components are physically realized in software,
typically consisting of multiple files in the operating system delivery (e.g. source code
files including test code; built executables including libraries; data and configuration
files; build files; and documentation). However, from the perspective of the model,
components are treated atomically and constitute the smallest units of architectural
interest.
UI Framework Layer
The topmost layer of Symbian OS, the UI Framework layer provides the frameworks
and libraries for constructing a user interface, including the basic class hierarchies for
user interface controls and other frameworks and utilities used by user interface
components.
The Application Services layer provides support independent of the user interface for
applications on Symbian OS. These services are divided into three broad groupings:
1. System-level services used by all applications, for example the Application
Architecture.
2. Services that support generic types of application and application-like
services, for example personal productivity applications (vCard and vCal,
Alarm Server) and data synchronization services
3. Services based on generic but application-centric technologies, for example
mail, messaging and browsing (Messaging Store, MIME, HTTP Transport
Framework).
The OS Services layer is, in effect, the ‘middleware’ layer of Symbian OS, providing
the servers, frameworks, and libraries that extend the bare system below it into a
complete operating system.
The services are divided into four major blocks, by broad functional area:
The foundational layer of Symbian OS, the Base Services layer provides the lowest
level of user-side services. In particular, the Base Services layer includes the File
Server and the User Library. The microkernel architecture of Symbian OS places them
outside the kernel in user space. (This is in contrast to monolithic system
architectures, such as both Linux and Microsoft Windows, in which file system
services and User Library equivalents are provided as kernel services.)
Other important system frameworks provided by this layer include the ECom Plug-in
Framework, which implements the standard management interface used by all
Symbian OS framework plug-ins; Store, which provides the persistence model; and
the Cryptography Library.
The lowest layer of Symbian OS, the Kernel Services and Hardware Interface layer
contains the operating system kernel itself, and the supporting components which
abstract the interfaces to the underlying hardware, including logical and physical
device drivers ‘variant support’, which implements pre-packaged support for the
standard, supported platforms (including the Emulator and reference hardware
boards).
In releases up to Symbian OS v8, the kernel was the EKA1 (Kernel Architecture 1)
kernel, the original Symbian OS kernel. In Symbian OS v8, the EKA2 (Kernel
Architecture 2) real-time kernel shipped for the first time as an option. From Symbian
OS v9, EKA1 no longer ships and all systems are based on the real-time EKA2 kernel
Java ME
In some sense, Java does not fit neatly into the layered operating system model.
Symbian’s Java implementation is based around:
• a virtual machine (VM) and layered support for the Java system which
complements it, based on the MIDP 2.0 Profile
• a set of standard MIDP 2.0 Packages
• an implementation of the CLDC 1.1 language, I/O, and utilities services
• a number of low-level plug-ins which implement the interface between CLDC,
the supported packages, and the native system.
Key Design Patterns of Symbian Operating System
Like any good architecture, the patterns repeat at multiple levels of abstraction and
in all corners of the system.
In Symbian OS, all system resources are managed by servers. The kernel itself is a
server whose task is to manage the lowest level machine resources, CPU cycles and
memory. From the kernel up, this pattern is ubiquitous. For example, the display is a
resource managed by the Window Server; display fonts and bitmaps are managed by
the Font and Bitmap Server; the data communications hardware is managed by the
Serial Server; the telephony stack and associated hardware by the Telephony Server;
and so on all the way to the user-interface level, where the generic Uikon server (as
specialized by the production GUI running on the final system) manages the GUI
abstractions on behalf of application clients.
Asynchronous Services
Blocking is unsatisfactory because it blocks others from accessing the system call
which is being waited on, while it is waiting. Polling is unsatisfactory because code
which is functionally idle, waiting for an event, is in reality not idle at all, but
continuously executing its tight polling loop. Blocking reduces responsiveness. Polling
wastes clock cycles, which on a small system like mobile phones translates directly to
power consumption and battery life.
Symbian OS Kernel
The real-time kernel architecture also introduces important changes (in particular to
mechanisms such as interprocess communication) to support the new platform
security model introduced from Symbian OS v9.
UI Platforms
User interface issues are particularly interesting because they highlight many of the
unique problems of the mobile phone market
Symbian supports (but does not provide itself) multiple UIs. Licensees either buy in
the platform pre-integrated and tested from a Symbian OS UI vendor such as S60 or
UIQ or they buy in the operating
system ‘headless’ and develop their own GUI.
The Symbian operating system does not provide the UI layer; instead it provides the
infrastructure (frameworks and primitives) for UI creation. Beneath the UI, the
common frameworks and the underlying services of the operating system itself
ensure substantial platform compatibility at the application-engine (i.e. application-
logic) level. Indeed applications can be targeted at the different available user
interfaces by customizing the application UI without changing the application engine.
A Symbian licensee either creates a bespoke user interface from the frameworks
(although this is not a trivial engineering effort, it is the option chosen by DoCoMo in
Japan for its FOMA platform, for example) or buys in a UI from a specialist vendor
(UIQ and S60).
Symbian OS on a Sony Ericsson phone or a Motorola phone with the UIQ GUI – the
P910 or P990, say, or the Motorola A1000 – looks and feels very different to Symbian
OS on a Fujitsu or Mitsubishi FOMA phone or to Symbian OS on a Nokia, Samsung or
LG phone with an S60 GUI. And yet the underlying operating system is the same and
the very same applications can run on all of these different phones, sharing identical
source code at the application-logic and data-model levels.
While Symbian OS is tightly integrated to the GUI which runs on top of it, by way of
the UI and application frameworks, it is designed to be GUI-neutral. For application
developers and from the application perspective, although Symbian OS applications
are intrinsically GUI in nature, applications are only loosely coupled to a particular
GUI variant, since the application model and the application-event loop are enshrined
in the operating system itself and in the UI Framework support, and not in the variant
user interface.
References