Martin Tasker

Martin joined Psion in 1995 after 13 years in the system-software industry. His first commercial software products were a graphics package and debugger for the BBC Micro in its early 1980s heyday, produced while studying Natural Sciences and Computer Science at Cambridge University. On graduation, he joined IBM where he worked in networking and storage management for eight years, programming mainframes in assembler, working on product development, and delivering performance, routing and...

Evolution of Mobile Services

Mobile phone services and technologies have evolved rapidly, as has the global market for mobile phones, including significant cycles of boom and bust. Basic mobile network technologies have evolved from 'plain old' GSM through GSM Phase 2 , otherwise known as 2.5G GSM, GPRS, EDGE , to UMTS 3G, with similar evolutions from CDMA to 3G CDMA2000. Symbian OS has tracked these evolutions. It enables control of landline and mobile phone modems and supports wireless telephony standards for all...

Acknowledgements

Some people told me it would be hard to write this book in and around my real job in the System Management Group at Symbian and a few promised me that it would be impossible. They were all right, of course, although none of them tried to stop me. Many thanks to Wiley and Symbian Press therefore for their patience as I've stretched deadlines. Thanks to Fredrik Josephson for saying 'yes' to my starting the book as a 10 task and for turning a blind eye when it grew beyond that and to Geert Bollen...

Connectivity Services Block 1

Connectivity Services in Symbian OS see Figure 8.15 consist of dedicated service and transport frameworks designed to support basic device or host connectivity functions, including backup and restore, remote file browsing, remote software installation, and so on.4 The first releases of Symbian OS based their connectivity on the proprietary PLP serial and infrared-based protocol. Symbian provided basic software for both PCs and devices, enabling backup and restore, synchronization of...

Connectivity Services

Figure 8.5 Connectivity Services block Connectivity was also considered a vital service from the beginning, although it was a significantly simpler service based on Symbian's proprietary PLP protocol, a simple data transfer protocol over a physical wired serial port or emulated serial port over IrDA. Since then, the rapid evolution of mobile telephony through successive technology generations, the ubiquity of the Internet and the increasing packetization of services, and the emergence of data...

LayerbyLayer Summary of the Symbian OS v Model

A high-level view of the system model for Symbian OS v9.3 is included in this book as a fold-out diagram. All releases of the operating system from Symbian OS v7.0 to Symbian OS v9.3 share the same layer decomposition. UI Framework layer The topmost layer of Symbian OS provides the frameworks and libraries for constructing a user interface, including the basic class hierarchies for user interface controls, and other frameworks and utilities, including concrete widget classes used by interface...

Shortlink Services 1

Short-link services enable individual devices to communicate directly with each other 'peer-to-peer' , either over a physical cable connection such as serial or USB, or using short-range radio, either line-of-sight such as infrared, or unseen paired, such as Bluetooth. Note that, by this definition, Wi-Fi, which is fast becoming important on phones, is considered a network access technology not a short-link connection technology, although Wi-Fi hardware supports a peer-to-peer mode. Symbian OS...

A FreeType Font Rasterizer

Build File Location common generic graphics freetype group Block Multimedia and Graphics Services Component collection Graphics and Printing Services License Classification Optional Replaceable Exposes Third-Party APIs YES Present in OS Releases 7.0, 7.0s, 8.0, 8.1, 9.1, 9.2, 9.3 Description Reference implementation port of the FreeType TrueType font rasterizer, supporting FreeType 2 TrueType font descriptions and the Open Font interface.

A Bluetooth Profiles

Development Name BLUETOOTH_AVRCP, BLUETOOTH_GAVDP Build File Location common generic bluetooth System Model Location Layer OS Services Block Comms Services Sub-block Short Link Services Component collection Short Link License Classification Optional Symbian Exposes Third-Party APIs YES Present in OS Releases 9.1, 9.2, 9.3 Description Support for Bluetooth Audio Video Remote Control Profile AVRCP and Generic Audio Visual Distribution Profile GAVDP . AVRCP is implemented as a bearer plug-in to...

The State of the Art

Symbian OS reached market for the first time towards the end of 2000, with the release of the Ericsson R380 mobile phone in November and the announcement almost immediately afterwards of the Nokia 9210 Communicator, which came to market in June 2001. Both phones were based on versions of what had previously been known as Psion's EPOC operating system. The final EPOC release was EPOC32 Release 5 strictly speaking, the final version was the full Unicode build, designated ER5u . The first release...

Messaging Application Support Collection

This collection see Figure 7.13 provides Messaging and BIO Messaging The Message Store component provides a message server and framework, supporting standard message types for example email and SMS . The BIO Messaging Framework component supports 'smart' message types Bearer-Independent Objects , for example vCard or vCalendar messages and network setup messages. The BIO Watchers component provides a framework and service for notification of message arrival to applications. The Scheduled Send...

Service Framework Collection

This service based on configuration files and port registration enables device-side services to register a port number for use by PC-side clients, which can query for and start device-side services. The configuration files have an XML-based format. Figure 8.17 Service Framework components Figure 8.17 Service Framework components Table 8.9 Service Framework Components Table 8.9 Service Framework Components Figure 8.18 Device Connection components Figure 8.18 Device Connection components Table...

A ETel SIM Toolkit

Build File Location common generic telephony etelsat group Layer OS Services Block Comms Services Sub-block Telephony Services Component collection Telephony Server License Classification Common Symbian Exposes Third-Party APIs NO Present in OS Releases 7.0, 7.0s, 8.0, 8.1, 9.1, 9.2, 9.3 Description ETel Telephony Server API extension that provides access to the GSM WCDMA U SIM Application Toolkit.

A Fax Client and Server

Build File Location common generic telephony FAX group System Model Location Layer OS Services Block Comms Services Sub-block Telephony Services Component collection Telephony Server License Classification Optional Replaceable Exposes Third-Party APIs NO Present in OS Releases 7.0, 7.0s, 8.0, 8.1, 9.1, 9.2, 9.3 Description Fax server and protocol stack together with client-side APIs. Extension to ETel Telephony Server that manages fax transmission and reception requests from application...

A Font and Bitmap Server

Build File Location common generic graphics fbserv group System Model Location Layer OS Services Block Multimedia and Graphics Services Component collection Graphics and Printing Services License Classification Common Symbian Exposes Third-Party APIs YES Present in OS Releases 7.0, 7.0s, 8.0, 8.1, 9.1, 9.2, 9.3 Description Server that manages system-wide shared access to single-instance fonts and bitmaps, providing bitmap and font services for native bitmap fonts and vector fonts through its...

Comms Framework 1

The Comms Framework components implement the infrastructure used by all communications services The Comms Root Server is the primary communications server, responsible for starting and stopping the communications servers that provide dedicated services and for providing the process context in which all dedicated servers are run. The C32 Serial Server and the ESock Socket Server are, respectively, the data communications and socket servers that provide the two direct client interfaces for...

The Kernel Services and Hardware Interface Layer

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 and '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...

Central repository

The Central Repository provides a single persistent store for global settings as well as a notification mechanism allowing clients to register to be notified when specific settings change. The Central Repository is designed as a collection of repositories, where a repository is a collection of settings. A setting is represented by a data value a 32-bit integer, a real number, a byte-array or a text string . Repositories are created from a definition file based on a standard template and may be...

Sound and Vision Evolution

Another area of rapid recent technology evolution is multimedia, and this is again an area in which Symbian OS has undergone significant architectural change. Symbian OS has always supported sophisticated sound-and image-based applications, with Symbian OS v6.1, for example, being the platform for the first Nokia camera-phone in Europe, the Nokia 7650. Multimedia really arrived for the first time in Symbian OS v7.0s which introduced a new multimedia server. In Symbian OS v8.x, the architecture...

Design Goals and Architecture

Architecture is goal driven. The architecture of a system is the vehicle through which its design goals are realized. Even systems with relatively little formal architecture, such as Unix,1 evolve according to more or less well-understood principles, to meet more or less well-understood goals. And while not all systems are 'architected', all systems have an architecture. Symbian OS follows a small number of strong design principles. Many of these principles evolved as responses to the product...

Dbms

The DBMS component defines a general relational-database-access API and provides implementations either for small client-side databases or for client-server-based multiple-client implementations. Client-server databases are stored in files. Client-side databases can either be a whole file or a single file stream enabling multiple single stream databases to reside in a single file . Databases can be manipulated either through a native API or a subset of SQL. Basic database functions are...

Hardware Interface Base Porting and Reference Hardware

Kernel extensions provide the interface to the platform hardware the device-driver model provides the interface to specific devices . The modular, extension-based architecture is designed to allow for flexible customization when moving the operating system to new hardware. In particular, it is designed to enable generic platform dependencies encapsulated by the Application-Specific Integrated Circuit ASIC or ASSP, for example, processor type, MMU architecture and standard peripherals such as...

Generic Services Collection

This collection provides miscellaneous system services including some legacy components retained for API compatibility . The Task Scheduler component is an application-launching server that supports creating, querying and editing of time- or condition-triggered tasks. From Symbian OS v9.1, clients should migrate to revised interfaces. The Event Logger component is only an interface i.e. it is supplied only as a wrapper supporting logging of events, for example, call Table B.1 Generic Services...

Mobile Phone Hardware and Software

Baseband radio 'modem' hardware is complex. In effect, the baseband hardware is a complete package in its own right, consisting of CPU, data bus, dedicated memory, memory controller, digital signal processors DSPs , radio hardware, and so on. The baseband software stack is complex too. Mobile phone protocols are complex and require real-time systems to support their signaling timing tolerances. Real-time support cannot be faked. A real-time operating system is required at the bottom of the...

A Secondary PDP context UMTS Driver

Build File Location common generic networking Spud group System Model Location Layer OS Services Block Comms Services Sub-block Networking Services Component collection Networking Plug-ins License Classification Optional Replaceable Exposes Third-Party APIs NO Present in OS Releases 9.1, 9.2, 9.3 Description Network-interface-adapter component that supports primary and secondary PDP contexts multi-homing over GPRS on the telephony-reference platform only.

A Rtp

Build File Location common generic mm-protocols rtp group Layer Application Services Component collection Multimedia Protocols License Classification Optional Replaceable Exposes Third-Party APIs YES Present in OS Releases 9.1, 9.2, 9.3 Description Server and user-side API providing socket-based access to Real-Time Transport Protocol RTP services, providing an IP-based real-time-network transport service.

Microkernel Architecture

Symbian OS has a microkernel architecture, which sets it apart from operating systems such as Microsoft Windows and Linux.14 In Symbian OS, core services that would be inside the kernel in a monolithic operating system are moved outside. The pervasive use of the client-server architecture, and the protection of system code from clients which follows from it, guarantees both the robustness and high availability of these services. The goal is a robust system that is also responsive and extensible...

A Short History of the UI Architecture

As early as 1997, when the Nokia Communicator project was already underway in Symbian, proposals were made for separating Eikon's look and feel LAF from its basic functional machinery. In the end, the Communicator project, like other early licensee projects, settled for adaptation branching the codeline . However, it was clear that this could only be a short-term solution and that a principled approach was required to support the numbers of licensees and devices which were envisaged.

Keith de Mendonca

Keith was awarded a first-class honors degree in Computer Systems Engineering followed by a DPhil by Sussex University. He joined Psion in 1994 and wrote SDKs and applications for the Psion PDA range. On joining Symbian, Keith originally worked in the messaging team, initially specializing in email protocols before becoming the Messaging Technology Architect. More recently, Keith was the Chief Technology Architect for Symbian's Application Technology Development group in the UK. He is currently...

A Bluetooth HCI

Build File Location common generic bluetooth System Model Location Layer OS Services Block Comms Services Sub-block Short Link Services Component collection Short Link Protocol Plug-ins License Classification Reference Test Exposes Third-Party APIs YES Present in OS Releases 8.0, 8.1, 9.1, 9.2, 9.3 Description Host Controller Interface HCI firmware driver implementation for reference only, so must be replaced by the licensee. The HCI framework, for example, includes public APIs.

A Remote Control Framework

Development Name BLUETOOTH_REMOTECONTROL Build File Location common generic bluetooth System Model Location Layer OS Services Block Comms Services Sub-block Short Link Services Component collection Short Link License Classification Optional Symbian Exposes Third-Party APIs YES Present in OS Releases 9.1, 9.2, 9.3 Description Bearer-agnostic remote-control framework that enables sending and receiving of remote-control commands to and from remote Bluetooth devices using bearers provided as...

Basic Design Patterns of Symbian OS

The design principles of a system derive from its design goals and are realized in the concrete design patterns of the system. The key design patterns of Symbian OS include the following the microkernel pattern kernel responsibilities are reduced to an essential minimum the client-server pattern resources are shared between multiple users, whether system services or applications frameworks design patterns are used at all levels, from applications plug-ins to the application framework to device...

UserSide Hardware Abstraction Collection

This API provides Get and Set functions to query and set information about specific hardware features from the user-side, providing a way to access and control many device-specific features independently of the hardware platform. See Figure 10.4. Figure 10.4 User-Side Hardware Abstraction components Figure 10.4 User-Side Hardware Abstraction components Table 10.2 User-Side Hardware Abstraction Components Table 10.2 User-Side Hardware Abstraction Components This component is deprecated for...

Overview Wts

The Base Services layer includes a number of essential frameworks and libraries on which almost all higher-level services, as well as applications, have some direct or indirect dependencies. The User Library provides the basic programming model for Symbian OS, including system-specific types such as the CBase class and manifest constant4 definitions , as well as the APIs that define the unique native idioms, for example active objects, descriptors and UIDs, libraries which provide DLL and...

A Certificate and Key Management

Build File Location common generic security certman group Layer OS Services Block Generic OS Services Component collection Generic Libraries License Classification Optional Replaceable Exposes Third-Party APIs YES Present in OS Releases 7.0, 7.0s, 8.0, 8.1, 9.1, 9.2, 9.3 Description Framework for managing and storing security certificates and keys supporting storage and retrieval, assignment of trust status, certificate chain construction, and certificate validation and revocation.

Plugin framework

The Plug-in Framework, known as ECOM, has two principal purposes to make it easier to design and implement new services or features as framework plug-ins by providing a standard and best-practice pattern together with ready-made run-time support. Framework plug-in architectures improve the overall modularity, extensibility, and customizability of the system, thus improving usability from a system perspective as well as improving design consistency. As importantly, it provides an evolution path...

The Plugin Framework Model

A final high-level design pattern, the plug-in framework model is used pervasively in Symbian OS, at all levels of the system from the UI Framework at the top to the lowest levels of hardware abstraction at the bottom. A framework as its name suggests is an enclosing structure. A plug-in is an independent component that fits into the framework. The framework has no dependency on the plug-in, which implements an interface defined by the framework the plug-in has a direct, but dynamic, dependency...

USB Manager

This collection comprises the manager for the USB classes present on a device, for example providing the mechanism beneath a configuration application like a control panel to switch on and off the available USB classes on a Symbian OS device and to query a USB host not a Symbian OS device application across a USB connection. See Figure 9.34.

A Cryptography Library

Build File Location common generic security crypto group System Model Location Component collection Low-Level Libraries and Frameworks License Classification Optional Symbian Exposes Third-Party APIs YES Present in OS Releases 7.0, 7.0s, 8.0, 8.1, 9.1, 9.2, 9.3 Description Non-RSA-based cryptographic algorithms including symmetric and asymmetric ciphers, hash functions and a cryptographic random-number generator. Supersedes RSA-based implementations. Implemented in 'strong' and 'weak' versions,...

FrontEnd Processor Framework

The Front-End Processor FEP Framework provides the abstractions that implement user-input capture and preprocessing, for example for handwriting recognition or multitap input systems, in order to capture, process and map user input events onto standard key events. The FEP Framework provides the base classes for creating FEPs and defines the plug-in interface. The FEP Framework extends Control Environment base classes and is implemented as a DLL that is statically linked to by code which wants...

Platform Security from Symbian OS v

Platform Security is the system-wide security model introduced in Symbian OS v9. Providing an open, third-party programmable platform has been an important principle in the development of Symbian OS. However, openness brings with it the risk of misbehaving software whether accidentally or deliberately misbehaving finding its way onto users' devices. The security model is designed to protect users from that risk, while still preserving the openness of the platform. Architecturally, Platform...

A Character Encoding and Conversion Plugins

Build File Location common generic syslibs charconv System Model Location Layer Base Services Component collection Low-Level Libraries and Frameworks License Classification Optional Replaceable Exposes Third-Party APIs YES Present in OS Releases 7.0, 7.0s, 8.0, 8.1, 9.1, 9.2, 9.3 Description Converter plug-ins to the Character Encoding and Conversion Framework that support conversion to and from a variety of ASCII, UTF-7 and UTF-8 text formats, including JIS ShiftJis.

The Control Environment CONE

Controls in Symbian OS are window-using, possibly nested, rectangular screen areas that accept user input and other events. Windows do not necessarily own any controls menus and sprites, for example, do not. Events such as redraw events, standard events and foreground -'focus'- events are supplied by the Window Server to the Control Environment framework.2 Of these, key, pointer and draw events are routed by the Control Environment to controls. Additional events may be generated by controls...

Inheritance

Inheritance is the mechanism in class-based languages that allows new classes to be defined from existing ones. Not all object-oriented languages are class-based e.g., there are actor- and prototype-based object-oriented languages20 , but most are. Therefore while, strictly speaking, inheritance is not universal in object orientation, it is certainly typical. Inheritance is a parent-child relationship between types, usually called subclassing in Smalltalk and Java a class is subclassed from a...

A Software Install Server

Build File Location common generic connectivity SWInstallServer group Layer OS Services Block Connectivity Services Component collection Service Providers License Classification Optional Replaceable Exposes Third-Party APIs YES Present in OS Releases 8.0, 8.1, 9.1, 9.2, 9.3 Description Named service that interacts with the software-installation components on the device to enable remote installation of SIS, JAR and JAD files over TCP IP or OBEX.

The OS Services Layer

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 generic operating system services multimedia and graphics services Together, these provide technology-specific but application-independent services in the operating system. In particular, the following servers are found here...

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 UI Framework layer also includes a number of specialist, graphics-based frameworks which are used by the user interface but which are also available to applications, including the Animation framework, the Front End Processor FEP...

A Printer Drivers

Build File Location common generic graphics printdrv group Block Multimedia and Graphics Services Component collection Graphics and Printing Services License Classification Optional Replaceable Exposes Third-Party APIs NO Present in OS Releases 7.0, 7.0s, 8.0, 8.1, 9.1, 9.2, 9.3 Description Reference implementation for concrete printer driver plugins. Considered legacy for most mobile phones.

Background to the Eikon GUI

Symbian OS originates from the desire to create the perfect usable operating system for small handheld devices. The original GUI - on the Psion Series 5 - was known as Eikon. Eikon itself, at least in the design sense, was an evolution of a previous generation of GUIs written for Psion's earlier 8-bit and 16-bit machines, although in concrete terms it was all new work, a second - or third or fourth, depending on where you start counting - attempt at mastering the GUI. There were several UIs for...

The Danger of the Thin API

For Andy Cloke, the real lesson here is a more general one about API design in the case where both the application-level API clients and the hardware-level adapters are extrinsic to the operating system, and the operating system has the role of defining a thin, stable API against which partners can develop their value-adding components. In this case, two big issues arise how thin can a thin API be and still be sustainable And, how do you manage the design and development process to ensure that...