Symbian OS
Architecture:-
• Symbian os works on the ARM architecture RISC processors
• CPU is expected to be equipped with integrated MMU(memory
management unit) and cache
• Symbian os – main objective - provide hardware abstraction and
manage system resources
• Divided into 3 layers
Bottom most layer interact with hardware and hardware
abstraction layer – kernel, device drivers, file services,
memory
Network and security support components – multimedia
and communication protocol implementations
Application framework and application support mechanism
– PC synchronization, Bluetooth and USB support
Topmost layer – development environments and
applications
Hardware interfaces
• All applications need to access hardware for I/O media control
• Optional hardware – plug-ins
• OS is expected to recognize and service
• Hardware support also implemented as DLLS
• Hardware access – privileged mode - all calls need to pass through kernel
• Support for additional hardware – provided through separate DLL, kernel extension – eg.
Keyboard, media devices etc.
• Device drivers for optional hardware
• Each device drivers – 2 parts
• User side library for applications to link
• Kernel side library – actual hardware access
Memory Management
• MMU – primary function - provide protected mode
• Other functions
• Restriction on access to process data
• Protection of application code and OS code
• Isolation of peripheral hardware
• Partial constructed objects placed here until their construction completed
• If phone not have sufficient memory to complete object creation, delete the contents of
stack
System software
• Symbian os system services framework operates in client server mode
• Most of the system services are provided as servers – file server, font and bitmap server,
media server
• Applications – client connect to server and request their services
• Client connects to server using kernel interfaces and use message passing mechanism for
interaction
• Server operates in unprivileged mode – backend device drivers or kernel extensions to
perform their task
• User library – provide APIs to application framework and controlled access to kernel
Applications for symbian
• Symbian enables independent software vendors(ISV) to focus on developing new
applications for mobile phones
• Third party vendors provide software in installation file(SIS)
• SIS file – libraries and resources of application secured by certification system
• During installation, Update file system with the files from SIS file
• After installation, user can launch the application
• Applications – 2 parts
– engine that implement functionality
– UI
Development environment
• C++ and Java
• JAVA
->Symbian supports various forms of java – personal java, Java phone APIs, MIDP
->Symbian v8.0 supports J2ME MIDP2.0, CLDC 1.1. Additional libraries provided – bluetooth,
FileGCF, PIM, wireless messaging(WMA), Mobile media, 3D graphics
• C++
->Windows emulator running on PC that maps Symbian OS calls to Win32 APIs
->Also require VC++
->SDKs have emulation environment that can imitate exact target environment in terms of
stack and heap size, runtime memory utilization, etc.
Sample Symbian OS code: -
• Kernel and user library together constitute – e32
• e32Cons.h – information for console
• E32base.h – few basic classes used by most Symbian applications
• CBase class – base for all objects
• CConsoleBase – inherits from Cbase
• E32Main() – main function
• Descriptors – handle strings and binary data
• prinf() – method of Cbase class
• Source file
• Project specification file
• Applications can be built for different targets, the information for each target is
different file
• .mmp file
• Component definition file
• Always called the bld.inf
• Contains information about the project specification files
Source Code
• NewApplication() – starting point of any UI based application
• Display “Hello Symbian”
• HelloSymbian_Main.cpp
• NewApplication() – Return object of CHelloSymbian