An Introduction to Symbian Operating System Prepared by : Phang Seong Yee
Outline • Trends For Mobile Application • Mobile Application • Mobile Computing Platform • Mobile Operating System • Symbian Operating System • Evolution of Symbian OS • Symbian OS Architecture • Symbian Application Development • Symbian Developer Tools • Conclusion
Trends for Mobile Applications • Application Programming Interfaces (APIs) - To enable third parties to provide new services, such as billing, messaging. - To reduce the time for carriers to introduce new products to their customer. - It would come to the stage of Programmable APIs. • Services Caching - Due to the advance devices with sophisticated processor and more memory, sophisticated multimedia-based and web services-based applications become possible. - The devices can be used to mask the vagaries of the network and services by caching services on the device itself.
Trends for Mobile Applications 3. Further Service Differentiation for carriers 4. XML-based Web Services - To enable application developers to use the existing services over the Internet quickly create new applications for mobile devices. - Since mobile terminal are constrained with respect to memory and processor power, new versions of XML processing had to be developed such as kXML, kSOAP, kUDDI. 5. Real Time Data Streaming - To enable the services beyond 3G, such as mobile TV (television channels from the mobile phone)
Applications: 1 year ago vMiles Color Dialog Mobile Controls Micrographs Signature Capture Control Pocket ftCalc Registry Control Simple Wireless API
Applications: Today GPS GolfPro All Mobile Casino Valentin IliescuChess JL MobileXSales Rep Microsoft CRMMobile Pocket Humanity
Mobile Application • The number of applications is growing exponentially and different applications have different requirements. • For example, distributed applications require interaction and coordination with remote applications, and therefore, leverage the middleware services. • Some applications require the runtime environment to execute, while other applications run natively and interact with the operating system kernel.
Mobile Application • “Resource-poor” mobile devices • Limited memory and buffer space (typically no disk) • Small screen • Low processing capabilities • Limited battery life • Location of a mobile device may change frequently due to mobility • Relative to network and other services • Relative to other hosts
Mobile Application • Capacity of the wireless channel is limited and may vary • Communication is often unreliable • Short-term “fades” – high bit errors • Long-term disconnects – disconnected operation:Forced or voluntary disconnection • Disconnected operation (read/write) requires system support • Data caching • Pre-fetching • Integration
Mobile Application • Applications in mobile computing fall into the following three broad categories: • Stand-alone Applications- run entirely on mobile terminals in disconnect (detached) mode. • Simple Client-Server (C/S) applications - (e.g., DB query). The connection time for C/S interactions is short. • Advanced mobile applications - (groupware and distributed multimedia) - information exchanged is time critical (i.e., real time)
Mobile Application Evolution • The functionality of the mobile terminals has evolved tremendously over last 10 years. • Voice Transmission -Short Message Service (SMS) and Web Browsing • (WAP and I-mode) -Interaction with Vending Machine and Multimedia Message Service (MMS) • Video Conferencing and Interaction with the surrounding physical environment (I-area)-Object-to-Object Communication -Machine-to-Machine Communication-Car-to-Car Communication
Mobile Computing Platform • The evolution of cell phone functionality is the result of the sophistication of supporting infrastructure running in the phones. • The generic mobile computing platform that includes the building blocks shared by most existing approaches. • The building blocks are: • Mobile Operating System • Runtime Environment • Middleware • Applications
Applications Middleware Runtime Environment Mobile Operating System Generic Mobile Computing Platform
Mobile Operating System (1) • It is the software responsible for managing, exporting and arbitrating the hardware resources provided by terminals. • It is vital component that hides the underlying hardware complexity and heterogeneity and enables the construction of software. • It is similar to the desktop operating system with restricted components. • It is including low memory footprint, low dynamic memory usage, efficient power management framework, real-time support for telephony and communication protocols and reliability.
Mobile Operating System (2) • Symbian OS • Palm OS • Windows CE .NET OS • Embedded Linux • Qualcomm BREW Note: All the OS above follow the architecture presented in previous slide except BREW
Mobile OS Example PalmOS PocketPC Symbian OS
Market Leader • Symbian leads the smartphone market with a 70% share Linux 19%, Microsoft 5%, PalmSource 3% (Source: Canalys Q2 2006 worldwide smart mobile device research) • 100m cumulative shipments since the formation of Symbian • 12.3m Symbian OS shipments in Q2 2006 • A new Symbian OS smartphone model was shipped every week in Q2 2006
Symbian Operating System • Symbian OS is licenced to a large number of handset manufacturers, which account for over 80% of annual worldwide mobile phone sales (Symbian 2003). • 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. • The version 8 is the first version that provides a real-time OS kernel and supports the following features: 1) Rich suite of application services, including services for contacts, schedule, messaging, browsing and system control 2) Java support, Real time, Hardware Support (different CPUs, peripherals, and memory types), messaging with support for MMS, EMS, SMS, POP3, SMTP, and MHTML 3) Graphics with a graphic accelerator API, Mobile Telephony, International Support, Data Synchronuization, Device Management, Security, wireless connectivity, including Bluetooth and 802.11b
Is Symbian OS opensource??? • A common question is whether Symbian OS is "open". It is not open in the sense of Open Source software - the source code is not publicly available. However, nearly all the source code is provided to Symbian OS phone manufacturers and many other partners. Moreover, the APIs are publicly documented and anyone can develop software for Symbian OS. This contrasts with traditional embedded phone operating systems, which typically cannot accept any aftermarket software with the exception of Java applications.
Evolution of Symbian OS (I) • EPOC16-Psion released several Series 3 devices from 1991 to 1998 which used the EPOC16 OS, also known as SIBO. • EPOC OS Releases 1–3-The Series 5 device, released in 1997, used the first iterations of the EPOC32 OS. • EPOC Release 4-Oregon Osaris and Geofox 1 were released using ER4.In 1998, Symbian Ltd. was formed as a partnership between Ericsson, Nokia, Motorola and Psion, to explore the convergence between PDAs and mobile phones. • EPOC Release 5 a.k.a. Symbian OS v5-Psion Series 5mx, Series 7, Psion Revo, Psion Netbook, netPad, Ericsson MC218 were released in 1999 using ER5. *EPOC is a family of operating systems developed by Psion for portable devices, primarily PDAs
Evolution of Symbian OS (II) • ER5u a.k.a. Symbian OS v5.1 u = Unicode. The first phone, the Ericsson R380 was released using ER5u in 2000. It was not an 'open' phone - software could not be installed. Notably, a number of never released Psion prototypes for next generation PDAs, including a Bluetooth Revo successor codenamed Conan were using ER5u. • Symbian OS v6.0 and v6.1-Sometimes called ER6. The first 'open' Symbian OS phone, the Nokia 9210, was released on 6.0. • Symbian OS v7.0 and v7.0s-First shipped in 2003. This is an important Symbian release which appeared with all contemporary user interfaces including UIQ (Sony Ericsson P800, P900, P910, Motorola A925, A1000), Series 80 (Nokia 9300, 9500), Series 90 (Nokia 7710), S60 (Nokia 6600, 7310) as well as several FOMA phones in Japan.In 2004, Psion sold its stake in Symbian.
Evolution of Symbian OS (III) • Symbian OS v8.0 First shipped in 2004, one of its advantages would have been a choice of two different kernels (EKA1 or EKA2). However, the EKA2 kernel version did not ship until SymbianOS v8.1b. The kernels behave more or less identically from user-side, but are internally very different. EKA1 was chosen by some manufacturers to maintain compatibility with old device drivers, whilst EKA2 offered advantages such as a hard real-time capability. v8.0b was deproductized in 2003. • Symbian OS v8.1 Basically a cleaned-up version of 8.0, this was available in 8.1a and 8.1b versions, with EKA1 and EKA2 kernels respectively. The 8.1b version, with EKA2's single-chip phone support but no additional security layer, was popular among Japanese phone companies desiring the realtime support but not allowing open application installation.
Evolution of Symbian OS (IV) • Symbian OS v9.0 This version was used for internal Symbian purposes only. It was deproductised in 2004. v9.0 marked the end of the road for EKA1. v8.1a is the final EKA1 version of SymbianOS.Symbian OS has generally maintained reasonable binary compatibility. In theory the OS was BC from ER1-ER5, then from 6.0 to 8.1b. Substantial changes were needed for 9.0, related to tools and security, but this should be a one-off event. The move from requiring ARMv4 to requiring ARMv5 did not break backwards compatibility. A Symbian developer proclaims that porting from Symbian 8.x to Symbian 9.x is a more daunting process than Symbian says.
Evolution of Symbian OS (V) • Symbian OS v9.1 Released early 2005. It includes many new security related features, particularly a controversial platform security module facilitating mandatory code signing. Symbian argues that applications and content, and therefore a developers investment, are better protected than ever, however others contend that the requirement that every application be signed (and thus approved) violates the rights of the end-user, the owner of the phone, and limits the amount of free software available. The new ARM EABI binary model means developers need to retool and the security changes mean they may have to recode. S60 3rd Edition phones have Symbian OS 9.1. Sony Ericsson is shipping the M600i based on Symbian OS 9.1 and should ship the P990 in Q3 2006. The earlier versions had a fatal defect where the phone hangs temporarily after the owner sent hundreds of SMSes. However, on 13 September 2006, Nokia released a small program to fix this defect.
Evolution of Symbian OS (VI) • Symbian OS v9.2 Released Q1 2006. Support for Bluetooth 2.0 (was 1.2) and OMA Device Management 1.2 (was 1.1.2). S60 3rd Edition Feature Pack 1 phones have Symbian OS 9.2. • Symbian OS v9.3 Released on 12 July 2006. Upgrades include native support for Wifi 802.11, HSDPA, Vietnamese language support. On November 16, 2006, the 100 millionth smartphone running the OS was shipped. • Symbian OS v9.5 Released in March 2007. Featured up to 25% reduced RAM usage resulting in better battery life thanks to introduction of Demand paging. Applications should launch up to 75% faster. Native support for mobile digital television broadcasts DVB-H ja ISDB-T and location services. Also supports SQL.
Symbian Based Platform *MOAP-mobile-phone-oriented application platform (NTT DoCoMo's Symbian based MOAP platform ) *UIQ- User Interface Quartz
UIQ • UIQ is stylus-based interface (heavily influenced by the easy-to-use Palm OS one). The best known examples of UIQ devices are the Sony Ericsson P800 and P900/P910i, although there are others, including the Motorola A920/925/1000. Look beyond the Palm-like interface and you'll see glimpses of stuff that's familiar from Psion days. • But only glimpses. The biggest downside of UIQ 2 is that some of the benefits of multitasking have been removed by the way programs revert to a neutral state when sent to the background. So you switch away to check your calendar or answer the phone and then have to re-open your document and find your place all over again. And again. • UIQ 3 promises to restore proper multitasking, thankfully, but this won't be available until the Sony Ericsson P990i, W950 and M600 arrive mid to late 2006. BenQP30 Motorola M1000 Arima U300 MotorolaMOTORIZR Z8 SE P990
Series 60 • Down at the other size extreme, Nokia has been very successful with their small-screen 'Series 60' interface. Again this is recognizable Symbian under the hood, but again there's no touch-screen and this time Nokia has written many of its own applications from scratch, ditching the standard Psion/Symbian ones presumably because they wouldn't suit the one-handed, button-driven interface and generally smaller screen. • There's multi-tasking power here under the hood and many third party applications have been ported to Series 60/S60, but everything's restricted to some degree by the screen size and keypad text input. LG KS10 JoY Samsung SGH - D720 Panasonic X800 Nokia N95 Nokia N93i
Series 80 • Historically, Nokia have opted for Symbian devices which don't need a fragile touch-screen. The well-known Nokia 9210 effectively ran EPOC version 6 and is extremely similar to an old Psion Series 5mx in many, many ways, with the minor difference that the lack of a touch-screen necessitated a set of programmable command buttons to the right of the screen. Nokia refer to this interface as 'Series 80'. • You get almost the full range of built-in applications (including Word, Sheet, etc.) and there's full (and proper) multi-tasking, so you can have dozens of programs and documents open at once, switching between them as needed. Nokia 9500
Series 90 • 'Series 90', as seen in Nokia's idiosyncratic 7710. It uses much the same operating system and applications as Series 80, but tweaked to support a slightly larger, touch-sensitive screen. But there's no keyboard, of course, so input is via gesture recognition, virtual keyboard or Bluetooth keyboard. The interface has been orphaned by Nokia, alas. The 7710 is still a good choice for ex-Psion owners though, with similar software and interface - just make sure you use it with a Bluetooth keyboard! Nokia 7710
Software Development Kits (SDK) • Software development kits *The starting point for developing applications for Symbian OS is to obtain a software development kit (SDK). SDKs for Symbian OS support development in both C++ and Java. They provide: -binaries and tools to facilitate building and deployment of Symbian OS applications -full system documentation for APIs and tools *For the independent software developer, the most important thing to know in targeting a particular phone is the associated UI platform. Next you need to know the Symbian OS version the phone was based on. This combined knowledge defines to a large degree the target phone as a platform for independent software development. You can then decide which SDK you need to obtain. In most cases you will, working with this SDK, be able to target with a single version of your application all phones based on the same UI platform and Symbian OS version. The Symbian OS System Definition papers give further details of possible differences between phones based on a single SDK.
What are the Symbian OS Development Kits? • Symbian creates 4 development environments: 1.) Symbian OS Customisation Kit (CustKit) The Symbian OS Customisation Kit is the development environment that is licensed to handset manufacturers. It is a superset of the “Symbian OS Development” Kit, including some extra tools and source. The license terms are different to those for the “DevKit”. 2.) Symbian OS Development Kit (DevKit) Colloquial name for the Symbian OS Development Kit. 3.) Symbian OS Binary Access Kit (BAK) A binary-only DevKit. Provides access to most APIs in the DevKit but does not contain the source tree 4.) Symbian OS Technology Preview SDK (TPSDK) Technology Preview SDK. An early release SDK
Developer tools (I) • Nokia Carbide Development Tools for Symbian OS C++ Carbide.c++ is a family of Eclipse-based development tools supporting Symbian OS development on S60, Series 80, UIQ and MOAP. The Carbide family consists of: * Carbide.c++ Professional, performance tools for advanced users * Carbide.c++ Developer Edition – Productivity tools for creating applications * Carbide.c++ Express – For developers new to Symbian, Academia • Nokia Carbide Development Tools for Java - Carbide.j Carbide.j (formerly Nokia Developer's Suite for J2ME) is a software development tool for Java™ Platform, Micro Edition (Java™ ME) developers that enhances the development and verification of applications for Nokia devices. It provides tools for creating Mobile Information Device Profile (MIDP) and Personal Profile (PP) applications and deployment packages, signing applications, and deploying applications to devices. It is also an essential tool for managing, configuring, and running emulators for various Nokia platform and device SDKs.
Developer tools (II) • AppForge Crossfire 6.5 Crossfire is a unique technology platform that allows Microsoft Visual Studio Developers to leverage the skills and knowledge they have and apply them to create mobile applications that will run on market leading devices and operating systems. Crossfire includes integration and support for the following: Microsoft IDE Integration -Visual Studio .NET (2005 / 2003) -Visual C# .NET 2003 -Visual Basic .NET 2003 -Visual Studio 6.0 Professional -Visual Basic 6.0 Language Support -Visual Basic .NET -C# -Visual Basic 6.0
Developer tools (III) • Wirelexsoft VistaMax Wirelexsoft is a provider of technology and solutions for the mobile, the web and the desktop. We provide Rapid Application Development (RAD) Tools and IDEs that save significant development effort and reduce cost and time to market. Wirelexsoft offers VistaMax for development on Symbian - S60 and UIQ - and VistaFei for AJAX Application Development based on Google Web Toolkit. VistaMax and VistaFei are based on Eclipse.
Opensource developer tools • SymbDev This is a set of free and open source plug-ins for Eclipse that provide support for the development of Symbian C++ applications. The plug-ins can automatically detect the installed SDKs while the building process is based on the Symbian command-line building tools which are executed as background tasks from the Eclipse IDE. • Xcode Plugin for Symbian OS This is a free and open source plugin for the Apple Xcode development environment for Apple Macintosh computers running the MacOS X operating system. It was developed by Tom Sutcliffe and it currently has the following main features: -Import MMP files into Xcode projects -Edit settings and build targets (exactly like you would for any other Xcode project) -Work with multiple SDKs - UIQ, S60, Series 80 -Build SIS files and send them via Bluetooth to your Symbian OS phone for testing, as part of the build process -GCC and other Symbian OS-specific tools included (no need to download or compile them yourself) -Projects mostly work 'straight from the box'; i.e. no change is needed to code developed on a PC for it to compile in Xcode -The plugin is free and open source. The source is covered by the GPL and is available on tigris.org
Development Language • C++ • Java • Open source :- -Ruby -OPL-dev -Perl -Python for S60 -Python for UIQ -Simkin
Conclusion • In summary, mobile phone manufacturers are given a large amount of way in relation to how much or how little of Symbian OS they incorporate into their phones. • They have taken only limited advantage of this freedom, differentiating products by adding functionality rather than removing or replacing Symbian OS components. Where components have been removed this trends to be at the UI platform level, i.e. the components removed are perceived as inappropriate for the class of phone at which the UI platform (SDK) is targeted. • Where components have been replaced, this is because handset manufacturers have previously developed their own versions of those components, sometimes with additional capabilities, which they prefer to use.
References-Useful Link (I) • http://www.symbian.com/ -symbian ltd website • http://developer.symbian.com/ -tools,tutorial,source code on symbian software development • http://www.allaboutsymbian.com/ -all about symbian news ,software • http://www.allaboutseries80.com -Sites on S80 devices, applications • http://www.s60.com/ -Sites on S60 devices, applications • http://www.i-symbian.com/ -Latest news on symbian phones and application • http://www.uiq.com/ -UIQ technology site • http://www.newlc.com/ (symbian C++ developer forum) -SDK, Development tools, Guide, Example source code
References-Useful Link (II) • http://pf128.krakow.sdi.tpnet.pl/symbdev/ -symDev opensource developer tools • http://www.wirelexsoft.com/ -website for wirelexsoft IDE • http://www.appforge.com/ -website for appforge IDE • http://www.forum.nokia.com -everything on starting to develop symbian application • http://symbian.org -opensource project for Symbian OS