Saturday, May 19, 2007

Symbian OS v9 - Advances in Symbian OS

Introduction
Symbian, creators of the world's leading smartphone platform, announced version 9 of their operating system earlier this year. Changes to version 9, combined with those in version 8, are probably the most significant so far. Symbian OS version 8 saw the availability of a new hard real-time kernel (EKA2) and version 9 introduced major advances in platform security. This article focuses on the key changes in Symbian OS and their impact on software development, further articles will cover advances in Series 60 and UQ user interface platforms.

As is usually the case with whole number revisions of Symbian OS this means a total binary compatibility (BC) break with previous versions. Hence some APIs have changed and extensive new functionality and APIs are present. However, the introduction of version 9 also means new tool chains are now required- specifically a new compiler. The good news is that this brings a reduced ROM footprint and moderately increased execution performance.

EKA2 Kernel
The new multithreaded kernel (EKA2) provides predictable (hard) real-time performance and was introduced in Symbian OS v8 as an alternative to the original kernel (EKA1); EKA2 became standard in version 9. Prior to EKA2, all Symbian based devices required dual chip (CPU) hardware platforms, as it was not possible to have one processor supporting the applications and cellular interactions simultaneously. Predictable real time operation means that the OS will respond to interrupts, system and user threads within a known period. So any task in the system cannot prevent the OS from responding to key tasks (such as telephony stacks) that must be serviced within a given time if data is not to be lost or corrupted.

Single chip hardware solutions for Symbian OS based phones are now possible, thus reducing the bill of materials (BOM) significantly. In addition to allowing direct implementation of telephony stacks, the new kernel provides much better support for media‑rich applications, fast action games and protocols such as VoIP. The new kernel also allows easier creation of device drivers - since multiple kernel threads can be used in a device driver and because the overall device driver architecture is much improved.

EKA2 now supports global write‑able static data (WSD) in DLLs that, although strongly discouraged in well-designed Symbian OS code, does ease the problem of porting legacy code to Symbian OS devices, where EKA2 is implemented. Since applications are App DLLs this applies to applications too. Version 9 of Symbian OS is based on EKA2 but the application format has changed from App DLL to EXE. Write‑able static data is therefore allowed in all applications from version 9 onwards. The change of application format, from version 9 onwards, has a number of other effects on the configuration of application source code files and build/configuration files, but these are only minor.

Platform Security
The platform security framework in Symbian OS v9 is aimed at maintaining confidentiality for private data and to limit API access to sensitive operations. It involves three important concepts:
Data caging controls access to the file system so that data privacy can be securely controlled. Each application has its own directory for storing private data and other directories containing resources and executables have limitations on access. This allows applications to guarantee a secure data store e.g. for e‑commerce. An application can access other directories marked as open but cannot access another application's private directory.
The Capability Model ensures that only trusted applications, created via digital certification (i.e. “Symbian Signed”), are able to use certain APIs and system resources. The three levels of permissions are for “Unsigned Applications”, “Symbian Signed basic” and “Symbian Signed extended” with the latter providing the widest access. Around 60% of Symbian OS v9 APIs are available without restrictions.
The Trusted Computing Base (TCB) includes the kernel, file system, and software installer. Only applications with the necessary permissions and authority are allowed to access restricted areas of the device.

The aims are to protect the integrity of the phone, provide extra control over user billable events and to prevent rather than detect and react to malicious software that may try to corrupt executables and data. The Symbian Signed program defines development, operational and testing standards while building in accountability to applications so they are traceable back to the developer or publisher. The certification process only applies to native C++ application and not to JavaTM applications. However, installation of JavaTM MIDP 2.0 MIDlets, including authentication of MIDlets using digital signatures is supported in version 9.

Development and Testing

Initial development, testing and debugging takes place on an emulator that allows full API access control. Emulators can be configured to run in a number of ways; the settings can be changed by adding keywords to the emulator's initialisation file (by default \epoc32\data\epoc.ini). For example using “PlatSecEnforcement On” enables platform security enforcement and “PlatSecEnforcement Off” disables it.

When an application is ready for debugging and testing on the target phone, Developer Certificates provide controlled access to restricted APIs on the device itself. Developer Certificates are locked to specific target phones (via IMEI/ESN number) and allow applications to be tested on a standard target phone only and limit the capabilities that the signed application can access. Registration on the Symbian Signed website is required in order to apply for a Developer Certificate.

Certification

Full details of the process of getting a .SIS file signed with a trusted certificate for Symbian Signed can be found at http://www.symbiansigned.com. The essential steps needed are:

Obtain an ACS Publisher ID, to have the developer identity confirmed
Create a .SIS file for the application
Sign the .SIS file with the ACS publisher ID key and submit it (zipped, along with the .PKG file and the user documentation) to a selected Test House
Test House ensures signature is valid, installs .SIS file and tests it.
If .SIS file passes validation the .SIS is re-signed with a Content Certificate linked to the Symbian root and which has a unique identifier.
The application is now Symbian Signed.
Costs and Benefits
The changes in Symbian OS version 9 will have a significant impact on developers; the key effects are listed below.

Given extended support for single chip devices the costs of production for some devices could be significantly reduced thereby encouraging demand. Increased volumes of cheaper Symbian OS based phones are likely to enter the market.

Developers will benefit from the real time kernel services as they enable Voice over IP (VoIP) and high bandwidth multimedia applications such as video streaming.

EKA2 provides enhanced process emulation in the Win 32 emulator ensuring a more faithful emulation of the target hardware - so less on-target debugging and WINS platform-specific code is required. Porting of legacy code is made easier.

Developing (or porting) for v9 based devices will involve some new complexity due to the platform security changes. Unsigned applications are very restricted in what they can do, thus reducing the probability of malicious software affecting phones and networks. During the development phase of a project, a Symbian developer certificate is needed to test an application that uses any of the restricted APIs on a device. An R&D certificate is required for testing an application on a specific phone

There are additional costs associated with Symbian Signed certification - education, design, coding, testing and signing charges and new tools (compiler) are needed to move to version 9 developments.

This framework will present restrictions for individual developers that do not wish to go through the Symbian Signed certification process. Additionally there are various levels of certification available for the range of platform stakeholders; Symbian OS licensees will be granted more extensive access than a third-party developer.

Symbian signing, effectively mandatory for complex applications, will promote increased consumer and distributor confidence regarding the safety, security and efficiency of applications for sale. Operators will have increased protection for their networks and brands.

Future Directions
Key areas of future development for Symbian devices includes:

Enhanced games development - the introduction of a real time kernel allows the development of faster and media‑rich games.

Symbian OS continues to build on outstanding music and video capabilities that maximize the entertainment value of applications.

Enterprise applications - Symbian OS v9 addresses concerns raised about security of application data and communications

Smartphones are gaining greater market share at the expense of other handheld devices. However, mobile enterprise communications will be increasingly accessible to smartphone developers

Support for variations in device hardware through single and dual-chip devices will allow market segmentation through device configurations with a wider range of form factors and price. Symbian devices will move into the mid price range and at the top end we will see significantly enhanced functionality.

No comments: