Index• Introduction• Requirements• Symbian running mobiles• History• UI Design Platforms• Features of Symbian• Multimedia In Symbian• Layers• Java Virtual Machine• Enhancements In Symbain OS V9• C++ In Symbian• Conclusion
Symbian OS is an operating systemfor mobile devices with limitedresources, multitasking needs and softreal time requirements.It’s based on a modular, layered,micro-kernel approach.INTRODUCTION
Resilient power-management Careful use of memory resources Multi-tasking (e.g., phone callsmessages, alarms, games, WAPbrowser, camera, Bluetooth app, etc.) Soft Real-Time (e.g., incoming phone call) RobustRequirements
The Symbian OS Works on thefollowing Handsets• Motorola A1000• FOMA F880iES• Nokia 3230• BenQ P30• FOMA F900iC• Nokia 7710• Sony Ericsson P910• FOMA F901iC• Arima U300• Nokia 7610• Panasonic X700• Lenovo P930• FOMA F900i• FOMA F900iT• FOMA F900iC• Nokia 7710• Sony Ericsson P910• FOMA F901iC• Lenovo P930• FOMA F900i• FOMA F900iT• Panasonic X800• KIA 6600• FOMA F700i• Motorola A1010• Nokia N-Gage QD• and many more…
HistorySymbian OS was designed for mobiledevices, from its earliest incarnation asEPOC32 in the Psion Series 5.Symbian OS is a consortium formed in1998 and owned by Psion, Nokia, SonyEricsson, Panasonic (Matsushita), andSiemens.The shareholders are licensees ofSymbian OS. In addition, becauseSymbian OS is an open platform, anymanufacturer can license it.
UI Design Platforms Leading UI design Platform Owned by Nokia Key based GUI Designed for onehanded operationSeries 60(S60)
Series 80(S80) Owned by Nokia Two-handed operation Designed for business Large colour landscape display Full keyboardUI Design Platforms
UI Design Platforms Large touch landscape colour screen with stylus On-screen keyboard Handwriting recognitionSeries 90(S90)
Key Features of Symbian OS V6 Rich suite of applicationengines includes engines forcontacts, schedule, messaging, browsing, utility and system control;OBEX for exchanging objectssuch as appointments (using theindustry standard vCalendar) andbusiness cards (vCard); Browsing A WAP stack is provided withsupportfor WAP 1.2.1 for mobile browsing
Messaging Multimedia messaging(MMS), enhanced messaging (EMS)and SMS Multimedia Audio and video support forrecording, playback and streaming;image conversion Graphics Direct access to screen andkeyboard for high performance;graphics accelerator API
Communications protocolsMobile telephony Symbian OS v7.0s is ready for the 3Gmarket with support for GSM circuitswitchedInternational support Conforms to the Unicode Standard version3.0Data synchronization the ability to transfer files andsynchronize PIM data.
SecurityFull encryption and certificatemanagement, secure protocolsDeveloping for Symbian OSinclude: C++, Java (J2ME)MIDP 2.0 and Personal Java1.1.1a (with JavaPhone 1.0option), andWAPUser InputsGeneric input mechanismsupporting full keyboard, 0-9*#,voice, handwriting recognitionand predictive text input 2.1
The Multimedia Framework (MMF) providesa lightweight, multi-threaded framework forhandling multimedia data. The framework provides audio recordingand playback, audio streaming and imagerelated functionality. Support is provided for videorecording, playback and streaming. The image conversion library is alightweight, optionally multithreaded, client-side framework for still image codecs andconversion;
Plug-ins supplied by Symbian includeJPEG, GIF, BMP, MBM, SMS, WBMP, PNG,TIFF, WMF and ICO. Third party plug-ins are enabled throughthe extensible nature of the framework. Camera support: An onboard cameraAPI providing a consistent interface tobasic camera functions.
J2ME Architecture(cont.)KVM - Kilobyte Virtual Machine•KVM is 40 – 80 KB in size and is meant for devices with160 KB of memory and 16 or 32-bit RISC/CISCmicroprocessors.
J2ME Architecture(cont.)CLDC - Connected Limited Device Configuration• It provides core lower level functionality at Bare minimum IO andutilities.• It currently consists of java.io, java.lang, java.util.
J2ME Architecture(cont.)MIDP – Mobile Information Device Profile•MIDP provides the core application functionality formobile devices and is meant for Network connectivity, datastorage, and user interfaces.
J2ME and MIDP•The Mobile Information Device Profile (MIDP) is a keyelement of the Java 2 Platform, Mobile Edition (J2ME).When combined with the Connected Limited DeviceConfiguration (CLDC), MIDP provides a standard Javaruntime environment.• The MIDP specification defines a platform fordynamically and securely deploying optimized, graphical,networked applications.• CLDC and MIDP provide the core applicationfunctionality required by mobile applications, in theform of a standardized Java runtime environment and arich set of Java APIs.
J2ME ApplicationsA J2ME app is called a Midlet.AMIDLETLIFECYCLE
1. JAVA SUPPORT2. HARDWARE SUPPORT3. GRAPHICS4. SECURITY5. COMMUNICATION PROTOCOLS
1) JAVA SUPPORT• Java Standards Supported bySYMBIAN O.S :1. MIDP 2.02. CLDC 1.13. JAVA API For BlUETOOTH4. WIRELESS MESSAGING5. MOBILE 3D GRAPHICS(JSR184)
2) HARDWARE SUPPORT• SYMBIAN O.S requires 32 bitmicroprocessor that combines highperformance with low powerconsumption.• It supports latest C.P.U architecture,peripherals, internal , externalmemory types.• Non-symbian to symbian apps portingsystem
3) GRAPHICS• SYMBIAN O.S has direct access tokeyboard and screen for higherperformance.• It is also capable of delivering highdefination imaging ,videos andanimated interfaces.• This technology develops the front-endof UI .
4) SECURITY• It has proactive system defencemechanism based on granting andmonitoring apps capabilities throughSymbian signed certification.• Introduction to security has providedability to place data in secure dataform(cage).• Thus Symbian O.S is less prone toattacks than any other systems.
5) COMMUNICATION PROTOCOLS• Supports Wide Area Networkingstacks including TCP/IP.• Personal Area Networking includingINFRARED , BLUETOOTH , USB.• GPRS networks are also providedfor the multihoming by SymbianO.S.
C++ basics T Classes (T is for type as they are similar tofundamental types). C Classes (classes derived from Cbase.)For memory management to work correctly, Cclasses must ultimately derive from theclass CBase (defined in the Symbian C++ headerfilee32base.h).) R Classes (representing Resource handles)Usually small classes invoking open (), create (),initialize () in the constructor and close (), resent () ondestruction. M ClassesAn M class is an abstract interface class that declarespure virtual functions and has no member data.
THREADS• Active Objects live within threads which arescheduled with a priority based pre-emptivescheduling policy.• Data of threads within the same process is shared andthus must be protected with the usual synchronizationprimitives such as semaphores.• Threads are manipulated via the RThread class• Typical operations areoSuspendoResumeoPanicoKill or Terminate
THREADS• Each thread has its own independent heapand stack and the size of the stack is limitedupon creation RThread::Create ().• Each thread has a uniqueidentifier, returned by RThread::Id ().• Threads can be handled by RThread::Open(identifer)
THREAD PRIORITIES• Threads are pre-emptively scheduled and the currentlyrunning thread is the highest priority thread ready to run.• If there are more threads in the above situation, then theyare time-sliced on a round-robin basis.• Priority can be dynamically changed RThread::SetPriority(). A thread has a relative and an absolute priority.• The absolute priority is either a function of the processpriority, or independent from it.• All threads are created with EPriorityNormal by defaultand put into a suspended state, it runs whenRThread::Resume () is called.• A thread is stopped with Suspend () or with Kill () andTerminate (). Panic () also stops a thread and gives aprogramming error.• It is possible to receive a notification when a thread dies.
» Processes are handled asthreads, with one maindifference, there is no suspendmethod. Processes are notscheduled! Threads are scheduledacross process boundaries.» Processes are used to protectmemory space, rather as units ofmulti-tasking.» The kernel server process is aspecial process that contains twothreads which run at supervisorprivilege level:
» The kernel server thread: the firstthread to run, the highest priorityof all threads» The Null thread: lowest priority ofall threads, used to switch theprocessor into idle mode to savepower, by calling a callbackfunction to shut down part of thehardware. To allow for this threadto run, threads performinginput/output should wait onevents rather than polling
Faults It is raised if a critical error occurs such that the OS cannotcontinue. It reboots the device. It can only occur in system’scode. Also known as system panic Leaves Occur under exceptional conditions, such as out of memory, orcommunication error. It should always be trapped by afunction on the calling stack. If this is not the case it willgenerate a panic Panics A panic is an exception in the thread that causes the halting ofthe execution. It cannot be trapped and may cause thedevice’s rebootError types
LeavesA leave may occur: Calling a leaving function Invoking a system call function tocause a leave When a leave occurs thecorresponding error value ispropagated through the call stackuntil it is caught. Leaves are caught by a trap harness where theexception can be correctly handled. From theimplementation point of view, leaves are similar tothe C setjmp and longjmp mechanisms
When a thread is panicked the code in it stopsrunning. There is no recovery from a panic. Unlike a leave, a panic can’t be trapped. A panic in a system thread will result in areboot of the device! A panic in any other thread results in a“Program Closed” message box showing: theprocess name, panic category and an errorcode.Panic
One thread can panic another one: Used by a server when a client passes a badlyformed request To prevent bugs, but also as self-defence(against denial-of-service attacks)Panic
Symbian OS is a robust multi-tasking operatingsystem, designed specifically for real-world wirelessenvironments and the constraints of mobile phones (includinglimited amount of memory). Symbian OS is natively IP-based, with fully integratedcommunications and messaging. It supports all the leading industry standards that will beessential for this generation of data-enabled mobile phones.Symbian OS enables a large community of developers. The open platform allows the installation of third partysoftware to further enhance the platform.CONCLUSION
Bibliography Symbian OS Explained by Jo Stichbury, Wiley (2005) Symbian official website: http://www.symbian.com Symbian OS Version 7.0s, Functional Description; ByKevin Dixon, (June 2003) Java official website: http://java.sun.com Nokia Official Website:http://www.developer.nokia.com/Community/Wiki/Design_Patterns_in_Symbian