Symbian OS
is an operating system designed for mobile devices, with associated libraries, user interface frameworks and reference implementations of common tools, produced by Symbian Ltd. It is a descendant of Psion's EPOC and runs exclusively on ARM processors.
On 24 June 1998, Symbian Ltd. was formed as a partnership between Ericsson, Nokia, Motorola and Psion, to exploit the convergence between PDAs and mobile phones. Symbian was previously owned by Nokia (56.3%), Ericsson (15.6%), Sony Ericsson (13.1%), Panasonic (10.5%) and Samsung (4.5%). Ten years to the day later, on 24 June 2008, Nokia announced that they intended to acquire all shares that they did not already own. The acquisition was of €264 million, or $410 million.
On 24 June 2008 the Symbian Foundation was announced with the aim to "provide royalty-free software and accelerate innovation".
Design
Symbian OS, with its roots in Psion S/W's EPOC, is structured like many desktop operating systems with pre-emptive multitasking and memory protection. EPOC was inspired by a VMS-like approach to multitasking with server-based asynchronous serialised access based on events.
Symbian OS was built to follow three design rules: the integrity and security of user data is paramount, user time must not be wasted, and all resources are scarce. This led to a continuation of the use of servers, a microkernel, a request and callback approach to all services, an absolute division of user interfaces from system or application services, reuse and openness, extensibility, and robust management and resource recovery to support extended always-on operation. For hardware the OS is optimised for low-power battery-based devices and for ROM-based systems (e.g. features like XIP and re-entrancy in shared libraries). Applications, and the OS, follow an object-oriented design, MVC.
Later OS iterations diluted this approach in response to market demands, notably the introduction of a real-time kernel and a platform security model in versions 8 and 9.
There is a strong emphasis on conserving resources, using Symbian-specific programming idioms such as descriptors and a cleanup stack. There are similar techniques for conserving disk space (though the disks on Symbian devices are usually flash memory). Furthermore, all Symbian OS programming is event-based, and the CPU is switched off when applications are not directly dealing with an event. This is achieved through a programming idiom called active objects. Similarly the OS approach to threads vs. processes is driven by reducing overheads.
Symbian OS kernel (
EKA2) supports sufficiently-fast real-time response such that it is possible to build a single-core phone around it—that is, a phone in which a single processor core executes both the user
applications and the
signalling stack. This is a feature which is not available in
Linux. This has allowed SymbianOS EKA2 phones to become smaller, cheaper and more power efficient
Competition Symbian OS is the leading OS in the "smart mobile device" market. Statistics published November 2008 showed that Symbian OS had a 46.6% share of the smart mobile device market, with Apple having 17.3% (through
iPhone OS),
RIM having 15.3% and Microsoft having 13.5% (through
Windows CE and
Windows Mobile).
[5] Other competitors include
Palm OS,
Qualcomm's
BREW,
Google Android,
SavaJe and
MontaVista Software.
StructureThe Symbian OS System Model contains the following layers, from top to bottom:
- UI Framework Layer
- Application Services Layer
- 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 behaviour. 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.
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.
*From Wikipedia, the free encyclopedia
Read More ..