Download comparison between smartphone operating systems

Document related concepts

VS/9 wikipedia , lookup

Unix security wikipedia , lookup

Maemo wikipedia , lookup

Android (operating system) wikipedia , lookup

Process management (computing) wikipedia , lookup

IOS wikipedia , lookup

Spring (operating system) wikipedia , lookup

System 7 wikipedia , lookup

Smartwatch wikipedia , lookup

Security-focused operating system wikipedia , lookup

CP/M wikipedia , lookup

Distributed operating system wikipedia , lookup

Symbian wikipedia , lookup

Copland (operating system) wikipedia , lookup

Android software development wikipedia , lookup

Mobile operating system wikipedia , lookup

Mohamed Eltuhami Mohamed Abdulmageed
A report submitted in partial fulfillment of the requirements for the
Degree of:
B.Sc. (Hon.)
Electrical and Electronic Engineering
Supervised By Utz Hiba Hassan Imam
Department of Electrical and Electronic Engineering,
Faculty of Engineering, University of Khartoum
I hereby declare that this thesis is my own work and effort, and that it has not been
submitted anywhere else for any award. Where other sources of information have been
used, they have been cited or acknowledged
Signature ………………………………………………………
Date ……………………………………………………………
This thesis is dedicated to my beloved mother and dear father who supported me with
their encouragement throughout my life.
I would like to express my deep gratitude and appreciation to my supervisor, Ustaza
Hiba Hassan
Imam, who has been extremely supportive and quite encouraging
throughout the different phases of this research project. Her guidance and support
have always been an enticement for me to work hard.
I am also thankful to all members of my family for their unfailing encouragement and
trust during execution of the project phases, in addition to the support they have always
given me as a University Student and before. My special thanks are due to my father
Professor Eltohami M Abdel-Magied for encouragement and the time he devoted for
going through the manuscript.
I am also grateful to my friends and colleagues for their continuous support.
This study was undertaken in an effort to reveal the strengths and weaknesses of the operating
systems (OSs) of the four most popular Smartphone, namely Symbian, Android, iPhone and
The four OSs were evaluated on the characteristics of six base categories that included Supported
phones and Platforms, Development Environment, Hardware Support, Power Management,
Multimedia Features, and Software Features (that comprise multitasking, system calls, memory
management, threads management, interrupts and networking).
Symbian and Android OSs were found to be supported by more phones than iPhone and
Blackberry OSs. Moreover, Symbian, Android and iPhone OSs were found to support the ARM
platform - the most widely used 32-bit architecture. In addition, both Symbian and Android support
the X 86 platform. Blackberry OS on the other hand was found to support only the BlackBerry
platform. As for the development environment, the four OSs showed different software developer’s
kits (SDKs); The SDK being Windows for Blackberry and Mac OSX for iPhone. Symbian and
Android utilize multiplatform SDK. Accordingly, iPhone and Blackberry have limited
programming language choices and development software. The four Smartphones showed a wide
array of hardware components and input options, and power management capabilities.
Symbian, Android and BlackBerry OSs showed great multitasking capabilities, whereas iPhone
OS was found to have limited multitasking facilities, even in its latest version, the iOS4.
Furthermore, all four OSs showed great system call capabilities; accomplished by different
As for multimedia features, Symbian OS showed a noticeable superiority for both audio and video
support. Blackberry showed the least capability for audio support and video support.
Taking users needs along with OS capabilities it is concluded that iPhone is the most suitable for
gamers, Android OS for casual users, BlackBerry for business users and Symbian for third party
‫شيوعا يف العامل‪،‬‬
‫أجريت ىذه الدراسة للكشف عن نقاط القوة والضعف يف نظم تشغيل أربعة من اهلواتف الذكية األكثرة ً‬
‫وىي نظم تشغيل مسبيان وأندرويد وآي فون وبالك بريي‪ ،‬والتعرف على مالءمة كل منها على الفئات املختلفة من‬
‫مستخدمي اهلواتف الذكية ‪.‬‬
‫اعتمادا على ست فئات أساسية ىي‪ :‬اهلواتف واملنصات املدعومة‪ ،‬وبيئة التطوير‪ ،‬ودعم‬
‫مت تقييم نظم التشغيل األربعة ىذه‬
‫األجهزة‪ ،‬وإدارة الطاقة‪ ،‬ومسات الوسائط املتعددة‪ ،‬ومسات الربجميات (واليت تشمل تعدد املهام‪ ،‬ونداءات النظام‪ ،‬وإدارة‬
‫الذاكرة‪ ،‬وإدارة مؤشرات الًتابط‪ ،‬واملقاطع‪ ،‬الربط الشبكي)‪.‬‬
‫اعا من اهلواتف أكثر دما يدعمو نظامي آي فون وبالك بريي‪.‬‬
‫أظهرت ىذه الدر اسة أن نظام مسبيان وأندرويد يدعمان أنو ً‬
‫إضافة لذلك‪ ،‬أظهرت الدراسة أن نظم تشغيل مسبيان وأندرويد وآي فون تدعم منصة ‪ ARM‬وىي أكثر املنصات ً‬
‫كذلك‪ ،‬فإن نظام تشغيل ٍ‬
‫كل من مسبيان وأندرويد يدعمان املنصة ‪ ، X86.‬ومن ناحية أخرى‪ ،‬وجد أن نظام تشغيل بالك‬
‫بريي يدعم منصة بالك بريي فقط‪ .‬أما فيما يتعلق ببيئة التطوير‪ ،‬فقد ًوجد أن لنظم التشغيل األربعة أدوات تطوير برجميات‬
‫‪ SDK‬خمتلفة‪ ،‬حيث تكون األدوات متوافقة مع ويندوز بالنسبة لبالك بريي وماك ‪ Mac OSX‬بالنسبة آلي فون فيما‬
‫يستطيع كل من مسبيان وأندرويد استخدام ادوات تطوير برجميات عديدة املنصات‪ .‬وىكذا‪ ،‬فإن لكل من آي فون وبالك‬
‫بريي خيارات لغات برجمة حمدودة فيما يتعلق بنطوير الربجميات مقارنة بسمبيان وأندرويد‪ .‬وبالنسبة لألجهزة وخيارات‬
‫اإلدخال وقدرا ت إدارة الطاقة وجدت الدراسة أن لكل نظام من نظم النشغيل األربعة جمموعة كبرية من املكونات وخيارات‬
‫التشغيل وتفاوتًا يف إدارة الطاقة‪.‬‬
‫تتميز أنظمة تشغيل مسبيان وأندرويد وبالك بريي مبقدرات تعدد مهام عالية خالفًا لنظام تشغيل آي فون الذي يفنقر إى‬
‫ىذه املقدرات العالية حىت يف آخر إصداراتو (آي فون ‪ .)4‬أما فيما خيتص نداءات النظام‪ ،‬فقد ُوجد أن أنظمة التشغيل‬
‫األربعة هلا قدرات نداءات نظام عالية رغم اختالف آليات العمل يف كل منها‪.‬‬
‫وفيما يتعلق بسمات الوسائط املتعددة وجدت الدراسة أن نظام تشغيل مسبيان يتفوق على األنظمة األخرى يف دعم‬
‫الصوت ودعم الفيديو‪ ،‬وأظهرت الدراسة أن نظام تشغيل بالك بريي ىو األقل دعما هلذه الوسائط‪.‬‬
‫وخلصت الدراسة‪ ،‬بعد أخذ احتياجات املستخدمني وقدرات كل نظام من ىذه األنظمة يف احلسبان أن نظام تشغيل آي‬
‫فون ىو األنسب ملستخدمي األلعاب‪ ،‬وأن نظام أندرويد ىو األنسب للمستخدمني العابرين‪ ،‬وأن نظام بالك بريي ىو‬
‫األنسب لرجال األعمال ونظام مسبيان ىو األنسب للمطورين من الطرف الثالث‪.‬‬
Declaration of Originality
Table of Contents
List of Figures
List of Tables
1 Introduction
1.1 Problem Definition
1.2 Objective
1.3 Operating Systems Comparison Domains
1.4 Overview
1.4.1 A brief history of mobile communication
1.4.2 Mobile Device Categories
1.4.3 Definition of Smartphone
1.4.4 Smartphone Market Share
1.4.5 Apple iPhone
1.4.6 Google Android
1.4.7 RIM Blackberry
1.4.8 Symbian
1.5 Expected Outcome
1.6 Thesis Layout
2 Literature Review
2.1.1 Platform design
vi Microkernel Design
2.1.2 Development Environment
2.1.3 Threads Management
2.1.4 System Calls
2.1.5 Interrupts
2.1.6 Memory Management
2.1.7 Hardware
2.1.8 Networking
2.1.9 Multitasking
2.2 Android
2.2.1 Platform design
20 Monolithic kernel (Modified Linux version 2.6 OS)
2.2.2 Development Environment
2.2.3 Threads Management
2.2.4 System Calls
2.2.5 Interrupts
2.2.6 Memory Management
2.2.7 Hardware
2.2.8 Networking
2.2.9 Multitasking
2.3 iPhone OS
2.3.1 Platform design
30 Darwin (Hybrid) kernel (XNU)
2.3.2 Development Environment
2.3.3 Threads Management
2.3.4 System Calls
2.3.5 Interrupts
2.3.6 Memory Management
2.3.7 Hardware
2.3.8 Networking
2.3.9 Multitasking
2.4 Blackberry OS
2.4.1 Platform Design
2.4.2 Development Environment
2.4.3 Interrupts
2.4.4 Memory Management
2.4.5 Hardware
2.4.6 Networking
2.4.7 Multitasking
3 Comparison
3.1 Platform
3.2 Development Environment
3.3 Software Features
3.4 Hardware
3.5 Multimedia Support
3.6 Power Management
4 Conclusion
4.1 Strength and Weakness
4.1.1 Symbian
4.1.2 Android
4.1.3 iPhone OS
4.1.4 Blackberry OS
4.2 Conclusion
4.2.2 Business Users
4.2.3 Casual Users
4.2.4 Third Party Developers
List of Figures
Figure (1.1) Worldwide Smartphone OS sales in 1Q11…………………………..……..5
Figure (2.1) Model-View-Controller ……………………………………………………9
Figure (2.2) Structure of Symbian OS kernel……………………………….....……….10
Figure (2.3) Microkernel design………………………………………………..………12
Figure (2.4) Symbian OS moving model memory ………………………………………16
Figure (2.5) Symbian OS multiple memory map ………………………………………..17
Figure (2.6) Nokia N8 Smartphone………………………………………………….......19
Figure (2.7) Android Platform Architecture…………………………………………..…22
Figure (2.8) Android Application priority……………………………………………….26
Figure (2.9) Nexus S Smartphone …………………………………………….…………28
Figure (2.10) Android multitasking…………………………………………………..….29
Figure (2.11) iPhone OS Architecture………………………..........................................30
Figure (2.12) iPhone 4 Smartphone…………………………………………………….34
Figure (2.13) Multitasking capabilities of the iPhone OS……………………………...36
Figure (2.14) Multitasking in a recent iPhone OS operated Smartphone………………37
Figure (2.15) BlackBerry Torch 9800 Smartphone…………………………………….41
Figure (4.1) Smartphone OS Users Types………………………………………..…….59
List of Tables
Table (1.1) Worldwide Smartphone OS Sales in 1Q11……………………………….…..6
Table (3.1) Comparison between the four operating systems as regards to supported
phones and supported platforms…………………………………………………………43
Table (3.2) Compares the main elements of the development environments of the four
operating systems………………………………………………………………………...46
Table (3.3) Comparison between software features of Symbian, Android, iPhone and
Blackberry OS……………………………………………………………………………48
Table (3.4) Comparison between the hardware components of Symbian, Android, iPhone
and Blackberry OS……………………………………………………………………….51
Table (3.5) Comparison between multimedia support capabilities of Symbian, Android,
iPhone and Blackberry OS……………………………………………………………….53
Table (3.6) Power Management of Symbian, Android, iPhone OS and Blackberry
2D = Two-Dimensional
2G = Second Generation
3D = Three-Dimensional
3G = Third Generation
ADT = Android Development Tools
API = Application Programming Interface
ARM = Advanced RISC Machine
ASIC = Application-Specific Integrated Circuit
CDMA = Code Division Multiple Access
CPU = Central Processing Unit DFC = Deferred Function Calls DLL = Dynamic-Link
Library DMA = Direct Memory Access
EDGE = Enhanced Data rates for GSM Evolution
EKA2 = EPOC Kernel Architecture 2
EV-DO = Evolution-Data Optimized
GPRS = General Packet Radio Service
GPS = Global Positioning System
GPU = Graphics Processing Unit
GSM = Global System for Mobile Communications
HAL = Hardware Abstraction Layer
HDMI = High-Definition Multimedia Interface
HSUPA = High-Speed Uplink Packet Access
HTML = Hyper Text Markup Language
I/O = Input/Output
IDE = Integrated Development Environment
iOS = iPhone Operating System
IP = Internet Protocol
ISA = Instruction Set Architecture
ISP = Image system processor
Java ME = Java Micro Edition
JDE = Java Development Environment
JVM = Java Virtual Machine
KB = Kilo Byte
Mac OS X = Macintosh Operating System X
MB = Mega Byte
MHZ = Mega Hertz
MIDP = Mobile Information Device Profile
MIPS = Microprocessor without Interlocked Pipeline Stages
MMU = Memory Management Unit
MVC = Model–View–Controller
N/A = Not Applicable
Obj-C = Objective-C
OpenGL ES = Open Graphics Library for Embedded Systems
OS = Operating system
OTG = On The Go
PDA = Personal Digital Assistant
RAM = Random-Access Memory
RedBoot = Red Hat Embedded Debug and Bootstrap firmware
RIM = Research In Motion
RISC = Reduced Instruction Set Computing RISC = Reduced Instruction Set Computing
ROM = Read-Only Memory
SDK = Software Development Kit
SMS = Short Message Service
SRAM = Static Random-Access Memory
SWI = Software Interrupt UFD = USB Flash Drive UI = User Interface
UMTS = Universal Mobile Telecommunications System
USB = Universal Serial Bus
VM = Virtual Machine
VoIP = Voice over IP
WAP = Wireless Application Protocol
WRT = Web Runtime
XML = Extensible Markup Language
Comparison between Smartphone Operating Systems
Chapter One: Introduction
Smartphones are electronic handheld devices that integrate the functionality of mobile
phones, personal digital assistants (PDAs) and other information appliances. Smartphones
are considered to be the newest personal computers, and the most personal devices people
can own. Today’s mobile phones are being used as computers for multipurpose functions.
The number of mobile internet users is growing rapidly and may overcome the desktop
internet users by 2013-2014 [29]. The Smartphone operating system is an operating system
that manages the hardware and software resources of the Smartphone. The Smartphone
operating system movement has grown to include competitors such as Apple, Google, RIM
and Symbian. Although these operating system platforms have come a long way since their
initiation, none of these companies provide an OS that is perfect for all users. They claim
that their platforms perform the best in all endeavors and will definitely not advertise any
weakness with their systems. This makes it difficult for end users to know which platform
is best suited for their need.
1.1 Problem Definition
The rapidly growing market of Smartphones makes it difficult for the consumer to
choose from. Thus, there is high need for providing information that will enable the
consumer to choose the Smartphone that he needs.
To do so a systematic comparison between the different types of Smartphone that are
taking the lead in the market is essential for identifying their weakness and
Such a comparison is a requisite for 3rd party developers to know about the design,
the features and the development environment of the platforms.
Comparison between Smartphone Operating Systems
1.2 Objectives
This study aims at disclosing the advantages and drawbacks of the most common
Smartphone operating systems (OS), namely Symbian, Android, iPhone and
Blackberry OSs.
Perform a comparison between operating systems in order to identify strengths and
weaknesses of each of the four Smartphones under investigation.
1.3 Operating System Comparison Domains
A set of base categories has been chosen to compare the Smartphones in question as
regards to the various usage modes. These categories include Supported Smartrphones and
Supported Platforms, Development Environment, Software Features, Hardware Support,
Power Management, and Multimedia Features. This study aims at selecting a few categories
that are especially important for a specific usage model and then determine which
operating system performs the best.
The Software Features category lists out the operating system features that are
supported which demonstrate how well the operating system handles multitasking,
system calls, and memory management.
Supported Phones and Supported Platforms is a category which describes the existing
market in which each phone resides.
The Development Environment category describes how easy it is for third party
developers to make applications for the platform.
The Multimedia Features category enumerates the image support and audio and
video formats supported by the operating system
The Hardware Support category gives us information on what kind of hardware
features are supported by the operating system.
The Power Management category shows what power saving features are available.
Comparison between Smartphone Operating Systems
1.4 Overview
1.4.1 A Brief History of Mobile Communication
Commercially thinking, the history of mobile communication is brief. First real mobile
phones in 1980s were heavy and large as they required enormous batteries to reach the
nearest cellular network site. In the late 1990s cellular technologies were made financially
feasible. Mobile phones evolved to be smaller, lighter and cheaper devices that would fit
into everyone’s budget and pocket. One of the main reasons that made this evolution
possible was the increased density of cellular sites [31].
The 2nd generation (2G) GSM mobile phones were mostly used for making voice calls
and sending SMS messages. They did not have web browsers, and did not have any
software installation facilities [31]. All the software was factory installed.
In the early 2000s the use of the Internet was introduced to the mobile phones, as well as
multimedia features such as listening to music and taking photos [31].
GSM network providers added GPRS, which is a packet oriented data service, and these
two together are often described as 2.5G as it is a technology between the 2nd and 3rd
Web reached the mobile phones. However, using the World Wide Web by mobile browsers
was not a success because of the many limitations of the devices of that time and because of
high prices.
Network operator portals sold installable applications and downloadable
ringtones and wallpapers [31]. When 3rd generation (3G) mobile networking became
widespread, starting from 2002 and continuing to the end of the decade, the foundation
was laid for Smartphone’s penetration to the market.
The high speed Internet of the 3G made user experience of web browsing better, thus,
making it possible for providers to offer new services like streaming video or VoIP-calls
1.4.2 Mobile Device Categories
Mobile device types available on the market today need to be defined [28]. The following
types of mobile devices are currently available:
Comparison between Smartphone Operating Systems
Mobile phones
Mobile phones are phones with call and SMS support, but without web browser,
connectivity or software installation possibilities. One example of this category is the
Nokia 1100. The problem with this type of very low-end mobile phones is that it is not
possible for everyone to develop applications or web content for it. However, the situation is
changing as even cheaper mobile devices have inbuilt browser support [28].
Low-end mobile devices
Low-end mobile devices have web support, basic camera and a music player, but there is
no touch support and the memory is limited. Price is an advantage for mobile devices of
this class. People who buy this kind of phones are usually not heavy Internet users [28].
Mid-end mobile devices
Mid-end devices usually offer a medium-sized screen, basic HTML-browser support,
sometimes 3G, a decent camera, a music player, games, and application support [28].
states that one of the key features of mid-end devices is that they do not have a wellknown operating system, as High-end and smartphones do. Usually even with the mid-end
devices native applications are not available publicly; instead custom applications are run
through a runtime, like JAVA ME [28].
High-end mobile devices
High-end devices are near the Smartphone category, but according to Firtman (2009) the
differences are that high-end devices are generally non-multi-touch. Still they have many
advanced features, as Smartphones do, such as accelerometer, camera, Bluetooth and a
good web support [28].
1.4.3 Definition of Smartphone
A Smartphone is an advanced mobile phone with a modern day mobile operating system
and advanced hardware features. It is possible to install 3rd party mobile applications to a
Smartphone and it has an advanced browser and an advanced user interface with a touch
Comparison between Smartphone Operating Systems
1.4.4 Smartphone Market Share
There are many Smartphone manufacturers on the market, with many mobile operating
systems [32] [45]. If the maximum audience for mobile applications were to be reached, it
would be wise to focus on some main Operating Systems to reach the largest audience
[32] [33].
According to Gartner research (Table 1.1), Android, Symbian, Research In Motion and
iPhone OS are the four most commonly sold operating systems for mobile devices in
1Q11 (1st Quarter 2011) [33].
Figure 1.1 Worldwide Smartphone Sales to End Users by Operating System in 1Q11
Comparison between Smartphone Operating Systems
Table 1.1 Worldwide Smartphone Sales to End Users by Operating System in 1Q11 (Thousands of
Units): [Gartner 2011] [33]
1Q11 Market
Share (%)
Share (%)
Research In
Other OS
1.4.5 Apple iPhone
When Apple introduced the first iPhone in 2007 it started a new era in the Smartphone
market [31]. By the end of the fourth fiscal quarter of 2010, Apple had sold over 70
million iPhones [45].
In addition to the right business model and successful marketing, Apple had some factors
that contributed to the success of the iPhone. iPhone had a rich mobile Internet browsing
experience and a broad range of installable applications, in particular entertainment
applications, clearly meeting the needs of their consumers [46].
1.4.6 Google Android
In 2005 Google started development of the Android platform. In 2007, industry leaders
such as Google, Motorola, Samsung, Sony Ericsson and Intel formed the Open Handset
Alliance and its first key outcome was the Android Platform. In same year, the first
version of the Android SDK was released [40]. The first Android phone was released in
2008, and now there are hundreds of different types of Android mobile devices, including
phones and tablets, provided several vendors [1].
The Android mobile operating system supports several features, such as 2D and 3D
Comparison between Smartphone Operating Systems
media formats, animated transitions and multi-touch input. The
Android’s web browser is the WebKit base and includes Google Chrome’s JavaScript
1.4.7 RIM Blackberry
BlackBerry is a product of Research In Motion (RIM). The first BlackBerry Smartphone
was released in 2002 in Canada. The BlackBerry has the second largest market share of
the Smartphones in the US. [1]
Worldwide, the Research in Motion (RIM) was the third most sold mobile operating
system in the world in 2010 [56] and the forth in 2011 [33]. BlackBerry is specialized into
the enterprise market, and should be taken into account when developing applications for
enterprise markets [1].
1.4.8 Symbian
The historical background of Symbian is in the EPOC operating system for the Psion
family of PDAs. From the commercial point of view, Symbian is strongly linked to Nokia,
which used the Symbian OS for the majority of its Smartphones [61]. Originally the
Symbian Company was formed by a group of manufacturers including Nokia, Ericsson
and Motorola. Later Samsung and Sony Ericsson joined the Symbian Company. In 2008
Nokia bought Symbian Ltd. and created the Symbian Foundation to migrate the Symbian
operating system to open source [28]. In February 2011, Nokia and Microsoft announced
new partnership plans. The new strategy includes Windows Phone serving as Nokia's
primary Smartphone platform.
1.5 Expected Outcome
It is anticipated that this study will
Reveal the capabilities of each of these four Smartphone (Symbian, Android, iPhone
and BlackBerry) OSs are regards to platform design, development environment,
threads management, system calls, interrupts, memory management, hardware,
networking multitasking, and power management.
Make it easier for end users to know which platform is best suited for their need
Comparison between Smartphone Operating Systems
and may as well verify what phone is best suitable for third party development,
gaming, business applications, and multimedia.
1.6 Thesis Layout
Chapter 1 – Introduction: This chapter comprises a brief introductory paragraph on
Smartphones and Smartphone operating systems, followed by problem definition, objectives,
operating system comparison domains, and an overview on mobile devices and
Chapter 2 – Literature Review: In this chapter, an account is given on the capabilities and
features of four Smartphone operating systems. Features of each
OS including the platform design, development, threads management, system calls,
interrupts, memory management, hardware, networking, and multitasking is
looked into.
Chapter 3 – Comparison: This chapter compares the four Smartphone operating systems as
regards to their Supported Platforms, Development Environment, Software Features,
Hardware, Multimedia Support and Power Management.
Chapter 4 – Conclusion: This chapter points out to the strengths and weaknesses of each of
the four OSs and lists the conclusions reached as regards to suitability of each for the various
categories of users.
Comparison between Smartphone Operating Systems
Chapter Two: Literature Review
In this chapter, an account is given on the capabilities and features of four popular
Smartphone operating systems (OS); namely the Symbian, Android, iPhone and Blackberry
OS. Features of each OS including the platform design, development, threads management,
system calls, interrupts, memory management, hardware, networking, and multitasking will
be looked into.
2.1 Symbian
2.1.1 Platform design
A number of principles are taken into consideration when thinking of designing an operation
system. Symbian designers satisfied a number of principles when creating the Symbian
OS. Most important of these were securing the user data, maintaining data integrity, and
making sure that the user time is not wasted. To satisfy these principles Symbian
designers decided upon a microkernel that maintains separation between user interface and
engine, and capable of request-and-callback approach to services. The designers made sure
that the Symbian OS follows an object-oriented design namely, a Model-View-Controller1
(MVC) optimized for low-power battery-based devices and for ROM-based systems. In
recent years, and in response to market demands and invention of new forms of computer
programs and OS iterations Symbian designers introduces a real- time kernel and a
platform security model in Symbian versions 8 and 9 [58].
Figure 2.1 Model-View-Controller
MVC is a software architecture, currently considered an architectural pattern used in software
Comparison between Smartphone Operating Systems
The strong weight put by Symbian designers on conserving resources is exemplified by
the introduction of Symbian-specific programming idioms such as descriptors2 and a cleanup
stack3. Disks on Symbian devices are usually flash memories, but nevertheless, the designers
introduced new techniques for conserving disk space. Not only that but they also made sure
that all Symbian programming is event-based, and that the CPU is switched into a low
power mode when applications are not directly dealing with an event. This was achieved
through a programming idiom called the activeobjects4. Moreover, the Symbian approach to
threads and processes is driven by reducing overheads [58].
The Symbian kernel (EKA2) supports sufficiently-fast real-time response to build a singlecore phone around it that is, a phone in which a single processor core executes both the user
applications and the signaling stack. This has allowed Symbian EKA2 phones to become
smaller, cheaper and more power efficient than their predecessors (Figure 2.2) [58].
Figure 2.2 Structure of Symbian OS kernel
Descriptors are a part of the segmentation unit, used for translating a logical address to linear address.
Segment descriptors describe the memory segment referred in the logical address
When an application notes a memory allocation may fail, it places the earlier allocated memory address to a
location which Symbian is aware of. That location is called Cleanup Stack
Active object design pattern decouples method execution from method invocation that reside in their own
thread of control.[Doglas reff] The goal is to introduce concurrency, by using asynchronous method invocation
and a scheduler for handling requests[Bass]
Comparison between Smartphone Operating Systems Microkernel Design
Microkernel Design of the Symbian OS exemplifies the object oriented nature of the
operating system. The kernel encompasses minimal system functions and data, many
system functions being pushed out to user-space servers. The servers accomplish jobs by
obtaining handles to system objects and making system calls through these objects into the
kernel when necessary.
Typically, user-space applications interact with the servers rather than making system calls
directly. It is to be mentioned here that microkernel-based operating systems typically take
up much less memory upon boot and their structure is more dynamic. In such system, not
all servers are required at boot time. Not only that but also servers can be started as
Moreover, microkernels usually implement a pluggable architecture with support for
system modules that can be loaded as needed and plugged into the kernel. This indicates
that microkernels are very flexible; thus for example code to support new functionality
-such as new hardware drivers- can be loaded and plugged in at any time.
As referred to previously, Symbian OS was designed as a microkernel-based operating
system. Access to the system resources is done by opening connections to resource servers
that in turn coordinate access to the resources themselves. An important feature of the
Symbian OS is a pluggable architecture for new implementations. Thus, new
implementations for system functions can be designed as system objects and dynamically
inserted into the kernel. For instance, new file systems can be implemented and added to
the kernel as the operating system is running.
However, there are some issues that this microkernel design carries. Thus, where a single
system call is sufficient for a conventional operating system, the microkernel uses message
passing. Performance can suffer because of the added overhead of communication between
objects. The efficiency of functions that stay in the kernel space in conventional operating
systems is diminished when those functions are moved to the user space. For example, the
overhead of multiple function calls to schedule processes can diminish performance when
compared to process scheduling in the Windows kernel that has direct access to kernel
Comparison between Smartphone Operating Systems
data structures. Switches in privilege levels is likely to occur because messages pass
between the user space and the kernel space objects which further complicates the
performance. Finally, in conventional designs system calls work in a single address
space, thus the process of message passing and privilege switching implies that two or
more address spaces must be used to implement a microkernel service request [48].
The aforementioned performance issues have forced the designers of Symbian OS (as well
as designers of other microkernel based systems) to pay careful attention to design and
implementation details. The emphasis of design is for minimal, tightly focused servers
Figure 2.3 Microkernel design
2.1.2 Development Environment
In the year 2010, Symbian switched to a standard C++ with Qt5 as its SDK [29],thus
making it possible for its OS to be used with either Qt Creator or Carbide. An advantage
of the Qt is its ability to supports both the older Symbian S60 3rd and 5th editions, as well
as the new Symbian platform. Not only that but it also supports Maemo and MeeGo,
Windows, Linux and Mac OS X. Moreover, alternative application development can also
be done using Python , Adobe Flash or Java ME. Symbian OS previously used a Symbian
specific C++ version along with Carbide C++ integrated development environment (IDE)
as the native application development environment. Web Runtime (WRT) is a portable
Qt is a cross-platform application framework that is widely used for developing application software with a
graphical user interface (GUI).
Comparison between Smartphone Operating Systems
application framework that allows creating widgets on the S606 Platform; it is an extension
to the S60 WebKit based browser that allows launching multiple browser instances as
separate JavaScript applications [29].
2.1.3 Threads Management
Symbian operating system has a lightweight thread known as the active object. Active
objects are specialized threads that have some unique characteristics including the following:
Each active object is specifically focused on an event that causes a thread or
process to block a function; such lockable functions include communication and
device I/O.
Each active object works with a single active scheduler that listens for events for
which the object is waiting. All active objects within a process use the same
scheduler; different schedulers can be used between processes.
An active object defines a specific entry point in its code that is used by the active
scheduler when an event is generated. The entry point is represented by a standard
function call that is defined for each active object.
When waiting for an event, all active objects within a single process are maintained
by the same scheduler. Hence, they act as a single thread to the system. Accordingly,
active objects in a single process can be coordinated by a single scheduler
implemented in a single thread. Active objects form an efficient and lightweight
version of standard threads by combining code into one thread that would
otherwise be implemented as multiple threads, building fixed entry points into the
code and by using a single scheduler to coordinate their execution.
2.1.4 System Calls
The Symbian kernel EKA2 is multi-threaded, thus allowing the preemption of low-priority
kernel operations by high-priority ones [58].
The EKA2 has five threads, namely [58]:
S60 Platform (Series 60 User Interface) is a software platform for mobile phones that runs on Symbian OS.
Comparison between Smartphone Operating Systems
The null thread which idles the CPU, de-fragments RAM. The null thread is also
known as the idle thread.
The supervisor thread which cleans up killed threads and processes, and also
provides asynchronous object deletion.
DFC thread 0 which runs DFCs for general device drivers, such as the comms,
keyboard and digitizer.
DFC thread 1 which runs the nanokernel's timer queue.
Timer thread which runs the Symbian OS relative and absolute timers.
2.1.5 Interrupts
Programs never link directly to the Symbian OS kernel, but interface to it through a shared
library known as the user library. This library contains the necessary instructions to interface
to the OS and request its service programs, calls the user library functions, which are preprogrammed to cause a software interrupt; It is the only mechanism for a program to
interface outside it’s process.
It is to be mentioned that Executive Calls are the user library calls that allow a user thread to
enter a processor privileged mode so that it can access, in a controlled and predefined
way, the hardware resources or kernel space objects or services. What are called Executive
Calls for Symbian OS are known as System Calls for some other types of OS. All
Executive Calls are implemented in terms of the SWI instruction (on the ARM) [58].
2.1.6 Memory Management
An essential characteristic of Symbian OS is that it is designed for devices where the
amount of memory and resources available is limited. So, it needs a very efficient memory
management. Run-time errors may occur in any application due to lack of resources.
There errors are known as exceptions and it is impossible to prevent them occurring by
modifying the program. Therefore, programs should be able to recover from exceptions
when they occur. So, the key requirements for Symbian OS for good memory management
are [48].
Program efficiency that does not let the program to use RAM unnecessarily.
Release of resources as soon as possible (remember resources are limited).
Comparison between Smartphone Operating Systems
Coping with out-of-memory errors.
In Symbian EKA2, the memory model encapsulates significant MMU differences, such as
whether a cache is virtually tagged or physically tagged, or whether there is an MMU at
all. In the EKA1, assumptions about memory and the MMU were spread throughout the
operating system, making it difficult, for example, to produce a mobile phone based on an
ASIC7 without an MMU. This has become much easier with the advent of the EKA2,
since the memory model allows you to model memory in different ways, and to change
that decision relatively easily [48][42].
Currently, Symbian provides four different memory models; these are the moving model,
the direct model, the multiple model and the emulator model.
1. The moving model:
The moving model was designed for the superseded ARM architectures. The page directory
of the moving model is 4-KB long and each entry holds 4 bytes, giving the directory a
16-KB size. Memory pages are protected by access bits associated with memory frames and
by labeling memory access with a domain. Domains are recorded in the page directory and
the MMU enforces access permissions for each domain. While segmentation is not overtly
used, there is an organization to the layout of memory; that is to say there is a data
section for user-allocated data and a kernel section for kernel- allocated data (Figure
2. The direct model:
The direct memory model assumes that there is no MMU at all. This model is rarely used
and is not allowed on Smartphones. The lack of an MMU would cause severe performance
issues. This model is useful for development environments where the MMU must be
disabled for some reason.
ASIC is an integrated circuit (IC) customized for a particular use, rather than intended for general-purpose
Comparison between Smartphone Operating Systems
Direct Memory Access8 (DMA) is used by Symbian OS to offload the burden of high
bandwidth memory to peripheral data transfers and allow the CPU to perform other tasks.
DMA can reduce the interrupt load by a factor of 100 for a given peripheral, saving power
and increasing the real-time robustness of that interface. A DMA engine is a bus master
peripheral. It can be programmed to move large quantities of data between peripherals and
memory without the intervention of the CPU. Multi-channel DMA engines are capable of
handling more than one transfer at one time.
Figure 2.4 Symbian OS moving model memory
Direct memory access (DMA) is a feature that allows certain hardware subsystems within the computer to
access system memory for reading and/or writing independently of the central processing unit.
Comparison between Smartphone Operating Systems
3. The multiple model:
The multiple model was developed for versions 6 of the ARM architecture and the
subsequent versions. The MMU in these versions differs from that used in earlier versions.
For example, the page directory requires different handling, since it can be sectioned into
two pieces, each referencing two different sets of page tables. These two are used for user
page tables and for kernel page tables. The new version of the ARM architecture revised
and enhanced the access bits on each page frame and deprecated the domain concept.
Although the multiple memory model is an improvement on the moving memory model,
yet it has its own complexities. The most awkward issue is related to the solution for the
synonym problem - providing a second or alias virtual address for the same physical
address. The problem stems from the use of the virtual address as the initial index into the
cache to select the small set of lines from which to determine an exact match using the
physical address. Figure 2.5 illustrates the ideal situation with a synonym mapping - where
the cache resolves both virtual addresses to the same cache line and data.
Figure 2.5 Symbian OS multiple memory map
Comparison between Smartphone Operating Systems
4. The emulator model: This model was developed to support the Windows-hosted
Symbian OS emulator. The emulator has few restrictions in comparison to a real target
CPU. The emulator runs as a single Windows process, therefore the address space is
restricted to 2 GB, not 4GB. All memory provided to the emulator is accessible to any
Symbian OS process and therefore no memory protection is available. Symbian OS libraries
are provided as Windows-format DLLs and therefore Windows handles the allocation and
management of memory.
The memory model helps in the creation of processes as an instantiation of an executable
image loaded by the file server, and takes part in making inter-process data transfers.
The memory model provides low-level memory management services, such as a perprocess address space and memory mapping. It performs the context switch when asked to
do so by the scheduler and is involved in inter-process data transfer [48].
2.1.7 Hardware
To date, the Nokia N8 is the latest Symbian (Symbian^3) Smartphone (Figure 2.6) [54].
Its processor is a ARM11 processor (ARM v6 architecture),
Broadcom GPU,
VideoCore III Multimedia Engine with dedicated 3D Graphics HW Accelerator
with OpenGL-ES 1.1/2.0 .
It has Capacitive multi-touch display ,
External functional hardware keys,
Virtual keyboard;
Multiple text-entry options,
Bluetooth 3.0 ,
HDMI mini C connector and
High-Speed USB 2.0 Micro USB connector. Internal memory 16 GB.
Comparison between Smartphone Operating Systems
Figure 2.6 Nokia N8 Smartphone
2.1.8 Networking
Like many other general-purpose operating systems, Symbian OS embraces networks and
allows implementations that use networking to expand its core functionality. Symbian OS
supports many kinds of communication. Since it is a Smartphone operating system, it
naturally supports telephony. It also supports many other communication technologies,
including Bluetooth, wireless networking, GPS and messaging protocols. In addition, it
allows for the implementation of new technologies that might be added in the future [54].
2.1.9 Multitasking
Symbian OS is designed to optimize the system for efficient event handling. Traditional
programming models that regularly survey for events and then perform the appropriate
action require multiple threads to perform these actions; this results in problems of
synchronization of access to application resources. Symbian OS multitasking eliminates
this problem by having a single thread that responds to events as they happen. It incorporates
Comparison between Smartphone Operating Systems
an Active Scheduler that implements non-preemptive multitasking within the context of the
single thread. The Active Scheduler grasps events as they occur and then runs the
appropriate Active Object for that event [39].
The Active Object does the processing for the event and then returns control to the Active
Scheduler. If several events occur in quick succession, they can be stored and then run one
by one. There is a priority system that determines which Active Object should run first. To
keep the system responsive, each event has to be quick so that control is returned in order
for the next event to be processed. Traditional multi-threading is also implemented in
Symbian OS. Multiple applications and servers can be run simultaneously [39].
Threads are scheduled preemptively by the kernel. Each thread may be suspended while
waiting for a given event to occur and may resume whenever appropriate. The kernel
controls thread scheduling, allowing the threads to share the system resources by timeslice division, preempting the running of a thread if another, higher priority thread becomes
eligible to run. This constant switching of the running thread is the basis of pre- emptive
multitasking, which allows multiple servers and applications to run simultaneously. A
context switch occurs when the currently running thread is suspended (for example, if it is
blocked, has reached the end of its time-slice, or a higher priority thread becomes ready to
run) and another thread is made current by the scheduler. The context switch incurs a
runtime overhead in terms of the kernel scheduler and, potentially, the memory management
unit and hardware caches, if the original and replacing threads are executing in different
processes [39].
2.2 Android
2.2.1 Platform Design
Android is an open and comprehensive platform. It includes an operating system,
middleware, user-interface and applications. It has the ability to run in many different
types of Smartphones. Android OS is often referred to by Google as a software stack. The
software stack is divided into four layers that include five different groups; these are the
application layer, the application framework, the libraries, the runtime and the kernel.
Comparison between Smartphone Operating Systems
Each layer of the stack groups together several programs that support specific operating
system functions (Figure 2.7) [7] [8].
The Kernel is located at the base of the software stack (Figure 2.7). Google utilized
Linux version 2.6 OS to build the Android kernel, which comprises Android's memory
management programs, security settings, power management software and several hardware
drivers. Drivers are programs that control hardware devices.
Android Libraries occupy the next layer of software stack (Figure 2.7). The libraries are
sets of instructions that inform the device how to handle different kinds of data. For
example, the media framework library supports playback and recording of various audio,
video and picture formats. Other libraries include a three-dimensional acceleration library
(for devices with accelerometers) and a Web browser library.
Android Runtime layer is located at the same level as the libraries layer (Figure 2.7). It
includes a set
of core Java libraries. Android application programmers build their
applications using the Java programming language. This layer also includes the Dalvik
Virtual Machine. A virtual machine is a software application that behaves as if it were an
independent device with its own operating system. Virtual machines can be run on a
device that operates on a completely different OS than the physical machine's OS. The
Android OS uses virtual machines to run each application as its own process. This is
important because no application is dependent upon another. Not only that but also when
an application crashes it does not affect other applications running on the device. Moreover,
it simplifies memorymanagement. The Dalvik virtual machine operates like a translator
between the application side and the operating system. Every application which runs on
Android is written in Java. As the operating system is not able to understand this
programming language directly, the Java programs will be received and translated by the
Dalvik virtual machine. The translated code can then be executed by the operating system.
Comparison between Smartphone Operating Systems
Figure 2.7 Android Platform Architecture
The Application Framework layer is the second layer of the software stack (Fig 2.7). It
includes the programs that manage the phone's basic functions like resource allocation,
telephone applications, switching between processes or programs and keeping track of the
phone's physical location. Application developers have full access to Android's application
framework. This allows them to take advantage of Android's processing capabilities and
support features when building an Android application. The application framework is a set
of basic tools which a developer can use to build up much more complex tools [8].
The Applications’ layer is at the top of the software stack (Fig 2.7). This layer incorporates
the basic functions of the device such as making phone calls, accessing the Web browser
and accessing the contacts list. This is the layer which is most frequently used by the
Comparison between Smartphone Operating Systems
average user. This accomplished with the help of the user interface. Only Google
programmers, application developers and hardware manufacturers access the other layers
further down the stack [8]. Monolithic kernel (Modified Linux version 2.6 OS)
Monolithic is a free available, open source implementation of Unix, developed by thousands
of individuals. Android is a typical representing of a monolithic kernel. Continuously
enhanced, it often changes its structure. Changing parts of the kernel means complete
All system functions, including the whole process and memory management, process and
thread scheduling, I/O functionality and drivers are implemented in kernel space. The I/O
communications are provided by modules, which may be inserted and removed during
runtime. Modules are built against the kernel, i.e.: If the kernel changes, the set of modules
changes too. The estimated size of an average monolithic kernel is about twenty to thirty
megabytes resulting in a tedious maintenance process [38].
2.2.2 Development Environment
The Android software development kit (SDK) includes a comprehensive set of development
tools. These include a debugger, libraries, a handset emulator (based on QEMU9),
documentation, sample code, and tutorials. The SDK is downloadable on the android
developer website. The officially supported integrated development environment (IDE10) is
Eclipse using the Android Development Tools (ADT) Plugin, though developers may use
any text editor to edit Java and XML files then use command
line tools (Java Development Kit and Apache Ant are required) to create, build and debug
QEMU is a processor emulator that relies on dynamic binary translation to achieve a reasonable speed while
being easy to port on new host CPU architectures.
IDE is a software application that provides comprehensive facilities to computer programmers for
software development
Apache Ant is a software tool for automating software build processes.
Comparison between Smartphone Operating Systems
Android applications as well as control attached Android devices [6][5].
2.2.3 Threads Management
The Android OS has a rather sophisticated threading system that puts a lot of responsibility
on the developer to build a thread safe application. By default applications including the
UI are single threaded. This means that all “long running” tasks within an application
must split off a background thread [2]. The Android OS thinks of applications as being
made up of combinations of four building blocks. These building blocks are: Activities,
Services, Broadcast receivers and Content providers.
Activities denote all of the UI elements of the application.
Services are the threads that perform all of the background work needed for the
application to perform its job.
Broadcast receivers are essentially listeners that allow an application to respond to
system or application events.
Content providers are data sets that the application has made available to other
A major advantage of this split is that applications may reuse components that are provided
by other applications, thus reducing the need for duplicated codes [2].
2.2.4 System Calls
In Android, system calls is dispatched from the applications’ threads. User thread handles
system calls with altered permissions.
Some of system calls are executed through the same interfaces that are provided to
applications, others are done by querying classes that are built-in. A example of this is the
android.location; Location class which provides access to the current GPS coordinates [4].
2.2.5 Interrupts
The Android OS makes extensive use of events to handle the interrupts, interprocess
communication and system calls needed to make a cutting edge application [3]. A brief
overview of how it all works is as follows:
Comparison between Smartphone Operating Systems
An application fires onCreate, onStart and onResume when it initially begins.
Then if at any point another window covers any part of the application onPause is
fired. It is highly recommended that applications save their state when onPause is
fired as they may not get another chance to do so before being killed.
When the entire application becomes no longer visible after the onPause is fires,
then the onStop may be called followed by
The onDestroy as the application is totally closed. However, the onStop and the
onDestroy may not be called if system resources run low. The OS may then simply
kill the application. This same basic concept of creating events and firing them at
appropriate times is the method used by the Android OS to pass data between
threads in a single application.
2.2.6 Memory Management
Android OS is famous for its unique process and memory management capabilities. It
resembles Java and NET in that it uses its own run time and virtual machine to manage
application memory. However, it differs these two frameworks in that it uses its runtime to
manage the process lifetimes. Android OS ensures application responsiveness by stopping
and killing processes as necessary to free resources for higher-priority applications [57].
A characteristic feature of the Android application is that it runs in a separate process
within its own Dalvik instance, relinquishing all responsibility for memory and process
management to the Android run time, which stops and kills processes as necessary to
manage resources. All Android applications will remain running until need arises for the
system resources for utilization by another application.
The order in which processes are killed to reclaim resources is determined by the priority
of the hosted applications. It’s important to structure the application correctly to ensure
that its priority is appropriate for the work it is doing. If not, the application could be
killed while it is still in the middle of something important. At any given time, application is
in one of the following states (Figure 2.8):
Comparison between Smartphone Operating Systems
Active Process,
Visible Process,
Started Service Process,
Background Process or Empty process.
An application’s priority is equal to its highest-priority component.
Figure 2.8 Android Application priority
Dalvik and the Android runtime are seated on top of a Linux kernel that handles low-level
hardware interaction including drivers and memory management, while a set of APIs
provides access to all of the underlying services, features and hardware. Dalvik Virtual
Machine is a register-based virtual machine that’s been optimized to ensure that a device
can run multiple instances efficiently. It relies on the Linux kernel for threading and lowlevel memory management.
The Dalvik virtual machine is one of the key elements of Android. Android uses its own
custom virtual machine (VM) instead of traditional Java virtual machines such as Java ME
(Java Mobile Edition) used by others. The Android VM is designed to ensure that multiple
instances run efficiently on a single device [65].
All Android hardware and system service access is managed using Dalvik as a middle tier.
A great advantage of using a VM to host application execution is that developers have an
Comparison between Smartphone Operating Systems
abstraction layer that ensures they never have to worry about a particular hardware
implementation. Low-level functionality -including security, threading, process and memory
management- are handled by the Dalvik VM using the device’s underlying Linux kernel.
The Dalvik VM executes Dalvik executable files, a format optimized to ensure minimal
memory foot- print. The executables are created by transforming Java language compiled
classes using the tools supplied within the SDK.
The Android OS is built on Java. Accordingly, it utilizes garbage collection to prevent
memory leaks. However, as in all other languages that include garbage collection, it is not
an ironclad protection against leaking memory. However, the Android OS documentation
provides some help on how to avoid those situations that would leak memory even with a
garbage collector. Furthermore, the low level memory management is handled by the
Linux Kernel itself (version 2.6).
2.2.7 Hardware
At present the Nexus S is the newest Smartphone that runs the Android 2.3 OS (Figure
2.9) [35].The Nexus S is equipped with a
Samsung processor
PowerVR SGX 540 GPU with OpenGL ES 1.1/2.0
FM Transmitter/Receiver, Wi-Fi (A, B, G & N) Bluetooth 2.1 + EDR
Dual microphone for noise cancelation,
External Speaker and Headphone Jack. Three-axis gyroscope
Digital compass
Proximity sensor
Light sensor
Comparison between Smartphone Operating Systems
Figure 2.9 Nexus S Smartphone
2.2.8 Networking
As with memory management the low level details are handled by the Linux Kernel. The
currently released Android Smartphones have Wi-Fi A/B/G/N ,GPS and Bluetooth in
addition to the telephony and messaging protocols [35].
2.2.9 Multitasking
One of the best features of Android is its ability to multi-task. Android is fairly unique in
the ways it allows multiple applications to run at the same time. Developers coming from a
different platform may find the way it operates surprising [58].
The multitasking of the Android operating system works more like a traditional computer
Comparison between Smartphone Operating Systems
operating system than traditional Smartphone operating systems. It will allow the user to
run as many applications as the memory of the phone can handle. This gives the user the
freedom to determine of how the phone runs. There is no freezing of the apps in the
background. Instead, when a process is running in the background it still is functional and
will complete the process that it has been set for. In this way things are done quicker.
In Android these are no tightly coupled entities: applications may seem present to the user
without an actual process currently running the app; multiple applications may share
processes, or one application may make use of multiple processes depending on its needs;
the process(es) of an application may be kept around by Android even when that application
is not actively doing something.
Android lets the entire application continue to run in the background (Figure 2.10). If you
use one of these applications then switch to something else, it'll keep running in the
background, sound and all, until you decide to close it or your phone runs out of memory
Figure 2.10 Android multitasking exemplified by some tasks running in the background of a Smartphone
Comparison between Smartphone Operating Systems
2.3 iPhone OS
2.3.1 Platform Design
The figure below illustrates the iPhone OS architecture (Figure 2.11) [22].
Figure 2.11 iPhone OS Architecture
Hardware: In iPhone, Hardware refers to the physical chips soldered to the iPhone’s
circuitry. The actual processor falls under this layer, but the instruction set and in-memory
descriptor tables are contained within the “processor” layer [22].
Firmware: It refers to the chip-specific code that is either contained with memory in/around
the peripheral itself, or within the drive for said peripheral [22].
Processor: It is refers to the ARM instruction set and the interrupt descriptor table as set
up by the iPhone OS during boot and driver initialization [22].
iPhone OS: It is the kernel, drivers, and services that comprise of the iPhone Operating
System. It sits between the user space and hardware [22].
Objective-C Runtimes: It is comprised of both the Objective-C dynamically-linked runtime
libraries, as well as the underlying C libraries [22].
Frameworks/API: Frameworks/API layer has API calls which are Apple-distributed
headers with the iPhone SDK, with some dynamic linking occurring at runtime. These
Comparison between Smartphone Operating Systems
reside on top of the Objective-C runtime, as many of these are written in Objective-C [22].
Application: The application stored in iPhone has to be purchased through the application
store. This application was compiled to native code by the Apple-distributed iPhone
compiler, and linked with the Objective-C runtime and C library by the linker. The
application also runs entirely within the user space environment set up by the iPhone OS
[22]. Darwin (Hybrid) kernel (XNU)
Is built around XNU, a hybrid kernel that combines the Mach12 3 microkernel, various
elements of BSD (including the process model, network stack, and virtual file system), and
an object-oriented device driver API called I/O Kit [59]. Some of the benefits of this choice
of kernel are the Mach-O13 binary format, which allows a single executable file (including
the kernel itself) to support multiple CPU architectures, and the mature support for
symmetric multiprocessing in Mach. The hybrid kernel design compromises between the
flexibility of a microkernel and the performance of a monolithickernel [59].
2.3.2 Development Environment
The SDK was released on 2008 by Apple14 Inc., and allows developers to make applications
for the iPhone and iPod touch, as well as test them in an "iPhone simulator". However,
loading an application onto the devices is only possible after paying an iPhone Developer
Program fee. Since the release of Xcode 3.1, where Xcode is the development environment
for the iOS SDK, iPhone applications, like iOS and Mac OS X, are written in Objective-C
Mach is an operating system kernel developed at Carnegie Mellon University to support operating system
research, primarily distributed and parallel computation
Mach-O is a file format for executables, object code, shared libraries, dynamically-loaded code, and core
dumps. A replacement for the a.out format, Mach-O offered more extensibility and faster access to
information in the symbol table.
Apple Inc. is an American multinational corporation that designs and markets consumer electronics,
computer software, and personal computers founded in 1976.
Comparison between Smartphone Operating Systems
2.3.4 Threads Management
The iPhone OS has all of the thread management technologies that are now considered
standard. You can spawn threads and synchronize them using all the usual technologies
like Mutexes, Read-write locks, Distributed locks, etc. However Apple strongly
discourages using threads in this manner. They feel that the direct programming of threads is
too hard and can be made far more efficient by allowing the OS to handle the thread
management. They recommend using operation queues. These are queues that you assign
tasks to and the OS handles the necessary thread work to make it happen. This allows the
OS to handle the thread load and processing of tasks more efficiently [10] [55].
2.3.5 System Calls
System calls in iPhone is achieved by the combination of API, framework and library
calls. It is for providing a high-level, developer-friendly interface to UNIX kernel (XNU).
To begin with, the frameworks/API is the set of functions the developer wants to see in
order to make his/her application interact with the device and underlying iPhone OS. The
framework, which is part of the overall Objective-C runtime, is a series of upper-level
function calls (and C extensions, in the case of the Obj-C runtime) in order to allow a
more developer-friendly interface to the grimy, obfuscated (and undocumented) C library
The C library lies underneath the Objective-C runtime. It provides true object oriented
dynamic-typing extensions to the C language (unlike C++, which just looks objectoriented). The C library is dynamically linked to, from the Objective-C runtime to translate
messages requiring lower-level intervention into UNIX system calls, where the iPhone OS
can process them as needed [64].
For example, when we use graphics display:
First, the application is loaded into memory and starting its execution, wishes to
display an image for a splash screen.
Secondly, it makes API (framework) call. The API/framework receives the function
call, and does the work of translating the higher-level image processing interface
into a collection of calls to the Objective-C runtime, which will then make the
Comparison between Smartphone Operating Systems
appropriate calls to the C library.
The (dynamically-linked) C library, having received a series of function calls from
the Objective-C runtime and corresponding frameworks and APIs, will further
refine the functions into assembly-level system calls (via a software interrupt)
which the iPhone OS kernel can process.
The iPhone OS kernel, having received the system calls in assembly format from
the C library, will then call upon the appropriate drivers (the touchscreen display
drivers, in this case) to interact with the hardware.
2.3.6 Interrupts
The iPhone OS allows two different methods of handling interrupts:
UIApplicationDelegate protocol which allows an application to be notified of a
variety of activities and take appropriate action. Some of the actions that can be
responded to are [11].
i. Finished loading,
ii. Low memory warning,
iii. Orientation changed,
iv. About to be deactivated, etc.
NSNotification class. This class allows you to be notified of any interrupts, or
other custom activities that occur within the OS. However, to take advantage of
this you need to be aware of the activities that you are looking for and trap them
specifically. This is a lower level construct that can be more complicated to use
2.3.7 Memory management
One of the biggest sources of confusion for new iPhone developers is memory management.
Most developers are familiar with using automatic garbage collection. Since iPhone OS has
no garbage collection, the developer has to clean up the variables after using them,
otherwise the program will leak memory. Though NSObject class has an accounting
material that helps to keep the track of how many other objects are currently using the
Comparison between Smartphone Operating Systems
object, but it is not automatic and developers have to adjust that by themselves
The rule for managing memory is to make sure the number of ownership methods called
on an object will equal the number of loss-of-ownership methods by the time the program
has finished executing. When creating or copying an object, its retain count is 1.
But when other objects express an ownership interest in your object, it’s retain count is
incremented. The owners of an object may also relinquish their ownership interest in it,
which decrements the retain count. When the retain count becomes zero, the object is
deallocated (destroyed) [24][49].
Memory Management Initialization takes place as follows:
When An abstract memory object is mapped on a given host for the first time
The kernel sends a message to its abstract memory object.
This message informs the memory manager that the object is being mapped on a
new host. The message carries the names of the kernel generated memory cache
object control port and the memory object name port, the one of two things happen:
If the memory manager responds with memory-cache-object-control by
calling memory-object-ready, then this informs the kernel that this is a
“new form” memory manager. The memory-object-ready call also allows
the specification of the “object cache” attribute and the copy strategy
The memory manager can respond with the old call memory-cache- objectcontrol through memory-object-set-attributes, which can also set the
“object cache” and copy strategy attributes. This call also allows a “ready”
attribute to be set; this has the same effect as memory-object-ready but
indicates to the kernel that this is an “oldform” memory manager. These calls
inform the kernel that the memory manager is now ready to respond to
requests on behalf of this memory object.
Comparison between Smartphone Operating Systems
2.3.8 Hardware
To the best of my knowledge, the iPhone 4 is the latest iPhone OS utilizing Smartphone
(Figure 2.10). It is powered by the Apple A4 chip, which was designed by Intrinsity and
manufactured by Samsung similar to all previous iPhone models. This system-on-a-chip is
composed of a Cortex-A8 CPU integrated with a PowerVR SGX 535 GPU. The Apple A4 is
also used in the iPad where it is clocked at its rated speed of 1 GHz. The clock speed in the
Figure 2.12 iPhone 4 Smartphone
2.3.8 Networking
The iPhone OS abstracts away all of the networking functionality. However, it does
provide a sample class entitled Reachability, which allows an application to determine if a
networking resource is available and if so on what type of connection. However, Bluetooth
is handled entirely separately from Wi-Fi. Bluetooth is handled through the Game Kit
Framework. This framework creates an easy interface to find other Bluetooth devices and
to share data with them. In addition it obviously has GPS [49.]
Comparison between Smartphone Operating Systems
2.3.9 Multitasking
One of the major drawbacks of older versions of iPhone OS was the lack of multitasking
capabilities. OS designers argued that although there are certain benefits to being able to
run multiple applications at once, there are also a series of reasons why they deliberately
chose to use a security model in the iPhone OS that only allows one app to run at once.
According to them, the first is the limited resources. Mobile devices have a finite amount
of RAM and CPU power, so allowing multiple apps to be loaded and running all at once
introduces new problems related to the mobile device's performance and battery life. Their
second justification is that it increases the system's complexity, as users will now be
forced to monitor and manage the processes running in the background. Another problem
relates to security. If apps are not terminated by the user in a straightforward way as they
are on the iPhone OS, users may not be aware they are still running. Background apps
might provide a valuable service, but without any restrictions, they're also able to install
spyware, viruses and other malicious software (Figures 2.13 and 2.14)
Figure 2.13 Multitasking capabilities of the iPhone OS
Comparison between Smartphone Operating Systems
Nevertheless, in its most recent version, Apple's iPhone OS (iOS4) supports more
multitasking behaviors, which had been one of the most-requested features since the
release of the original iPhone in 2007. However, multitasking in iOS4 has been implemented
with a very specific user experience in mind. Thus, iOS4 lets applications keep certain
features running in the background (but not full apps), have its state saved (as with previous
versions of the iPhone OS), both, or neither, as desired. Thus, most recent versions of the
iPhone OS has the ability to preemptively schedule multiple concurrent tasks but lacks
ability to install third party applications that runs in the background. It does
not allow viruses and spyware to install and run in the background [60].
Figure 2.14 Multitasking in a recent iPhone OS operated Smartphone
Comparison between Smartphone Operating Systems
2.4 BlackBerry OS
2.4.1 Platform Design
The BlackBerry OS has a Java based kernel, and utilizes an ARM architecture with an
Intel XScale processor. ARM is a Reduced Instruction Set Computer15 (RISC) type with
instruction set architecture16 (ISA). It uses 16 x 32-bit registers, 1 processor status register
and a load/store architecture ARM does not manufacture its own CPU chips, but licenses it
to other manufacturers to integrate them into their own system. The latest series of
BlackBerry phones (the 9000 series) uses a XScale microprocessor [20] [37]. This processor
utilizes an open source bootstrap firmware called RedBoot or (Red Hat Embedded Debug
and Bootstrap), designed for embedded systems.
2.4.2 Development Environment
The BlackBerry Java Development Environments (BlackBerry JDE) is a fully integrated
development and simulation environment for building a BlackBerry Java Application for
BlackBerry devices was developed by RIM and released in 16 December 2008. Utilizing
the BlackBerry JDE, developers can build applications using the Java ME programming
language and the extended Java APIs for BlackBerry [16].
The BlackBerry Java Development Environment includes the following development tools
[16]; BlackBerry Integrated Development Environment (IDE), BlackBerry Smartphone
Simulator, Java ME APIs and BlackBerry APIs Sample applications.
The BlackBerry IDE includes a full suite of editing and debugging tools that are optimized
for the development of a BlackBerry Java Application.
The BlackBerry Smartphone Simulator provides a complete Windows type environment,
and is designed to simulate UIs and user interaction, network connections, email services,
and wireless data synchronization.
Fundamentals, Guide Release cycles for versions 6. The BlackBerry Java Development
RISC is a CPU design strategy based on the insight that simplified (as opposed to complex) instructions can
provide higher performance if this simplicity enables much faster execution of each instruction.
ISA is the part of the computer architecture related to programming, including the native data types,
instructions, registers, addressing modes, memory architecture, interrupt and exception handling, and
external I/O.
Comparison between Smartphone Operating Systems
Environment Component Package includes the following development tools for
development within third-party IDEs such as NetBeans or Eclipse:
RAPC command can be used to prompt compiler to compile .java and jar files into
.cod files that you can run in the BlackBerry Smartphone Simulator or on a
BlackBerry device.
JavaLoader tool can be used to add or update an application on a BlackBerry
device for testing, and to view information about application files.
BlackBerry Signature Tool can be used to send code signature requests to the
BlackBerry Signing Authority
The Preverify Tool can be used to partially verify the classes before loading an
application onto a BlackBerry device.
The JDWP tool can be used to debug applications using third-party integrated
development environments.
2.4.3 Interrupt
A feature of the ARM architecture is to allow designers to make the decision between
performance and latency tradeoffs. For example, instructions that would normally run to
completion can be made interruptible where low latency is a priority. This is particularly
useful in the case of mobile phones or other telecommunication devices, which run on
embedded systems that require low latency to perform adequately [44].
2.4.4 Memory Management
The BlackBerry Java Virtual Machine (JVM) manages memory usage on the BlackBerry
device. The BlackBerry JVM allocates memory, performs garbage collection17, and
automatically swaps data between SRAM and flash memory. The BlackBerry JVM must
also share available memory between the BlackBerry device applications and the BlackBerry
Java Application. The memory capabilities represent the total amount of available memory,
which is larger than the available working memory when all of the applications and
associated application data exist on the BlackBerry device. Garbage collection is
performed at three levels: (RAM garbage collection, Full garbage collection and Idle
Garbage collection is a form of automatic memory management. The garbage collector attempts to reclaim
garbage or memory occupied by objects that are no longer in use by the program.
Comparison between Smartphone Operating Systems
garbage collection) [17].
RAM garbage collection of the BlackBerry Java Virtual Machine initiates a RAM garbage
collection operation only when the BlackBerry JVM cannot allocate an object because of
a lack of space in RAM. The RAM garbage collection operation typically takes 500 to 600
milliseconds to execute. The garbage collection operation removes any freshly allocated
variables that are no longer referenced in RAM. To make sure that the lack of a reference
in RAM is a sufficient condition for removing the object, a RAM garbage collection
operation can only be performed when objects have not been paged out to flash memory.
Full garbage collection operation executes for 1 second on average and should
take less than 2 seconds to complete.
Idle garbage collection does not occur every time that the BlackBerry device idle; it
occurs only when the system considers a garbage collection operation to be
beneficial for optimal system performance and maximized battery performance.
Access to memory: The BlackBerry Java Development Environment is designed to
inhibit applications from causing problems accidentally or maliciously in other
applications or on the BlackBerry device. BlackBerry applications can write only
to the BlackBerry device memory that the BlackBerry Java Virtual Machine uses;
they cannot access the virtual memory or the persistent storage of other
applications (unless they are specifically granted access to do so). A BlackBerry
Java Application can only access persistent storage or user data, or communicate
with other applications, through specific BlackBerry APIs. Research In Motion18
must digitally sign a BlackBerry Java Application that uses these BlackBerry APIs,
to provide an audit trail of applications that use sensitive APIs.
2.4.5 Hardware
The Blackberry Torch 9800 is the latest Blackberry as of this writing (Figure 2.7) [15].
CPU Marvell Tavor (ARMCortexA8)
512MB RAM,
Research In Motion is a Canadian telecommunication and wireless device company best known as the
developer of the BlackBerry Smartphone.
Comparison between Smartphone Operating Systems
4GB storage,
microSD slot and
Image System Processor (ISP):STmicroelectronics STV0987,3.2 inch HVGA
+(480x360) Synaptics controlled touch screen display.
Figure 2.15 BlackBerry Torch 9800 Smartphone
Comparison between Smartphone Operating Systems
2.4.6 Networking
In Blackberry phones there is WiFi A GPS, Bluetooth, WAP, GSM/GPRS/EDGE networks:
850/900/1800/1900MHz and 3G UMTS networks: 2100/1900/850/800 MHz. The Blackberry
can be used on almost every carrier in the world (over 475 of them) [15].
2.4.7 Multitasking
The BlackBerry OS provides multitasking and supports specialized input devices that have
been adopted to Research in Motion (RIM) for use in its Smartphones including trackweel,
trackball, trackpad and touch screen. BlackBerry is primarily a messaging phone which
consists of the largest number of messaging features in a Smartphone. The blackberry
platform is renowned for its native support for corporate e-mail and allows complete
wireless activation and synchronization with Microsoft Exchange, Lotus or Novell e-mail,
calendar, tasks, notes …etc. . It can thus run more than one application at a time. For example:
while making a call, you can switch to the calendar or contacts application. These applications
run in the background while carrying out current task. However, the more applications that
are running, the more memory the device uses. Third-party developers can write software
using the available BlackBerry API classes, although applications that make use of certain
functionality must be digitally signed [18] [43].
Comparison between Smartphone Operating Systems
Chapter Three: Comparison
This chapter will compare the four Smartphone operating systems (Symbian OS, Android OS,
iPhone OS and Blackberry OS) as regards to their Supported Platforms, Development
Environment, Software Features, Hardware, Multimedia Support and Power Management.
3.1 Platform
This section compares between the four operating systems as regards to the supported phones
and supported platforms.
Supported Phones
As for supported phones, Symbian OS and Android OS are evidently more supported than
iPhone OS and Blackberry OS (Table 1.1). Thus, whereas each of Symbian OS and
Android OS are utilized by three different smart phone brands (Nokia, Sony Ericsson and
Samsung for Symbian, and HTC, GI and Sony Ericsson for Android) iPhone OS and
Blackberry OS are utilized by only one brand each. Not only that each of these two latter OSs
is utilized by a smart phone of its own make i.e. iPhone OS supports iPhone smart phone
whereas Blackberry OS supports Blackberry smart phone.
Table 3.1: Comparison between the four operating systems as regards to supported phones and supported
platforms [7] [8] [20] [22] [37] [58]
Smartphone OS
Symbian OS
Android OS
iPhone OS
Blackberry OS
line of
Supported Platforms
As regards to supported platforms, ARM is supported by Symbian OS, Android OS and
iPhone OS. ARM is a 32-bit reduced instruction set computer instruction set architecture (ISA)
Comparison between Smartphone Operating Systems
developed by ARM Holdings. The ARM architecture is the most widely used 32-bit
ISA in terms of numbers produced. They were originally conceived as a processor for
desktop personal computers. The relative simplicity of ARM processors makes them suitable
for low power applications. As a result, they have become dominant in the mobile and
microcontrollers. X86 is supported by both Symbian OS and Android OS. In the year 2005,
about 98% of the more than one billion mobile phones sold each year used at least one ARM
processor. As of 2009, ARM processors account for approximately 90% of all embedded 32bit RISC processors. ARM processors are used extensively in consumer electronics,
including PDAs, mobile phones, digital media and music players, hand-held game consoles,
calculators and computer peripherals such as hard drives and routers. Over the years, the
ARM family has progressed for over 10 versions (ARM1-ARM11).
The present study has shown that both Symbian and Android support the X 86 platforms
(Table 3.1). The term x86 refers to a family of instruction set architectures (ISA) based on the
Intel 8086 CPU that was launched in 1978. Many additions and extensions have been added
to the x86 instruction set over the years, almost consistently with full backward
compatibility. The architecture has been implemented in processors from Intel, Cyrix, AMD,
VIA, and many others.
As for the Blackberry OS, the present study reveals that it only supports the BlackBerry
platform (Table 3.1) which is perhaps best known for its native support for corporate email
through mobile information device profile MIDP 1.0 and MIDP 2.0, which allows complete
wireless activation and synchronization with Microsoft Exchange, email, calendar, tasks, notes,
and contacts, when used with the Blackberry Enterprise Server.
3.2 Development Environment
In computer program and software product development, the development environment is the
set of processes and programming tools used to create the program or software product. The
term may sometimes also imply the physical environment. An integrated development
environment is one in which the processes and tools are coordinated to provide developers
an orderly interface to and convenient view of the development.
Comparison between Smartphone Operating Systems
Software Development Kit (SDK)
Software developer's kit (SDK) is a set of programs used by a programmer to write application
programs. Typically, an SDK includes a visual screen builder, an editor, a compiler, a linker,
and sometimes other facilities.
This study has shown that the Smartphone OSs in question (Symbian, Android, iPhone and
Blackberry OS) are furnished with different SDKs. The official SDK for Blackberry is
Windows and for iPhone is Mac OSX. Symbian and Android have multiplatform SDK.
Programming Language
As for the programming language, the review done for this study indicates that three
(Android, Symbian and Blackberry) out of the four smart phones support Java. In addition to
capability of being programmed by Java, Symbian and Android can also be programmed in
C++ (Table 3.2). Moreover, Android OS can be programmed in C core. Symbian OS can
also be programmed in Python. It is to be mentioned here that Python is an object-oriented
programming language that has gained popularity because of its clear syntax and readability.
Python is said to be relatively easy to learn and portable. iPhone OS on the other hand, is
programmed Objective-C (COCOA). While Objective-C remains the most powerful iPhone
development language, JavaScript has been gaining traction as a viable alternative, particularly
for basic applications and rapid prototyping.
The benefits of JavaScript are a far larger audience of programmers and development tools,
and a number of bridges have emerged to help JavaScript take advantage of native iPhone
resources. JavaScript alone does not give the developer access to all of the native resources of
the iPhone but there are ways of accessing iPhone functionality for basic applications or
prototyping. For more sophisticated applications, developers will have to turn to Objective-C,
the native Mac programming language, which is not as popular as other languages like
Thus, among these operating systems, iPhone OS and Blackberry provide limited programming
languages choices and development software. Currently, Java program cannot be fully run on
iPhone and C++ program cannot be run on blackberry. It means that a program written for
other Smartphones cannot easily be ported for iPhone or Blackberry because of lack
Comparison between Smartphone Operating Systems
compatibility with their native application development framework. Furthermore, Symbian OS
and android OS are open source programs that can be used or modified to suit the needs of
users and other developers; Blackberry and iPhone OS are not (table 3.2).
Table 3.2: Compares the main elements of the development environments of the four operating systems
Smartphone OS
SDK Available
Programmed in
Open source
Official SDK
Company /
Latest OS version
Symbian OS
, Java ME ,
Android OS
iPhone OS
Blackberry OS
C (core)
,Java (UI)
Mac OS X
Google Inc. ,
Open Handset
Apple Inc.
Research In
( Nokia n8 )
Android 2.3
(Nexus S )
IOS 4.0
(Iphone 4)
Blackberry 6.0
Torch 9800)
3.3 Software Features
The Kernel
Comparison of the software features of the four operating systems reveals that that Blackberry
has a Java based kernel, iPhone has a hybrid (Darwin / XNU) kernel, Android has a Linux
2.6v kernel, whereas Symbian has a microkernel EKA2 (table 3.3). It is to be mentioned here
that the kernel is an essential center of the operating system, the core that provides basic
services for all other parts of the operating system.
Comparison between Smartphone Operating Systems
Multitasking, in an operating system, allows the user to perform more than one task at a time.
The operating system is able to keep track of where the user is in these tasks and go from one
to the other without losing information.
When comparing multitasking facilities of the four operating systems it is evident that all four
of them have multitasking capabilities. However, iPhone OS has multitasking facility only in
its newest version, the iOS4, and this too is still limited. As for memory management, this
study has shown that the Blackberry has Java virtual machine (JVM) that allocates memory,
performs garbage collection, and automatically swaps data between SRAM and flash memory.
The iPhone OS has no garbage collection facilities; when an object is created or copied its
retain count is 1, when the retain count becomes zero the object is deallocated or destroyed.
The Dalvik VM of Android OS uses the device’s underlying Linux kernel to handle lowlevel functionality, and executes Dalvik executable files. Symbian on the other hand, has no
virtual memory (Table 3.3).
Multitasking Handling
As for multitasking handling, the operating system itself controls most of the multitasking.
Symbian OS implements pre-emptive multitasking so that it can run multiple applications and
servers concurrently. Active objects are used to implement non-pre-emptive multitasking within
the context of a single thread, whereas Android lets the entire application continue running in
the background until you decide to close it or the phone runs out of memory.
On the other hand, Blackberry OS can run more than one application at a Time. These
applications run in the background while carrying out current task. However, the more
applications that are running, the more memory that is used by device. As for the iPhone OS,
it is only the iOS 4 that lets applications keep certain features running in the background and
the background application state saved. The iOS4 allows developers to choose how their app
behaves; in older versions only one 3rd party application can run at a time (Table 3.3).
System Call
A System call is a mechanism used by an application for requesting a service from the
operating system. Examples of the services provided by the operating system included
Comparison between Smartphone Operating Systems
allocation and deallocation of memory, reporting of current date and time etc. These
services can be used by an application with the help of system calls. Many of the modern OSs
have hundreds of system calls. In Android, system calls are dispatched from the
applications’ threads, whereas system calls in iPhone are achieved by a combination of
application program interface (API), framework and library calls. It is for providing a highlevel, developer-friendly interface to a UNIX kernel (XNU). The Symbian EKA2 is multithreaded, allowing the preemption of low-priority kernel operations by high-priority ones
(table 3.3).
Table3.3. Comparison between software features of Symbian, Android, iPhone and Blackberry OS [4]
Smartphone OS
Symbian OS
Android OS
iPhone OS
Blackberry OS
Linux 2.6v
Hybrid (Darw
Java based
Only in IOS 4
• No Virtual
• Addressing
•Dalvik VM
uses the
Linux kernel to
handle lowlevel
•The Dalvik
VM executes
• iOS has no
• When creating
or copying an
object, its
retain count
is 1.
• When the
retain count
zero, the
object is
The BlackBerry
JVM allocates
memory, performs
garbage collection,
and automatically
swaps data
between SRAM
and flash memory.
Comparison between Smartphone Operating Systems
System calls
Symbian OS
so that it can
and servers
objects are
to implement
within the
context of a
EKA2 multithreaded,
allowing the
preemption of
operations by
• Android lets
the entire app
continue to run
in the
until you decide
to close it or
your phone
runs out of
• the operating
system itself
controls much
of the
In Android,
system calls
are dispatched
from the
• In iOS 4 only
,it lets apps
keep certain
running in the
have its state
saved .
• iOS4 allows
developers to
choose how
their app
• before iOS 4
Only one 3rd
can run at a
System calls
in iPhone is
achieved by
of API,
library calls.
It is for
providing a
interface to
• Blackberry OS
can run more than
one application at
a time.
• These
applications run
in the background
while carrying out
current task.
However, the
more applications
that are running,
the more memory
used by device .
Comparison between Smartphone Operating Systems
3.4 Hardware
Hardware Components
Smart phones contain various hardware components for networking, GPS support, input
options, memory expansion, etc….in addition to the CPU. Regarding networks and connectivity
hardware components in the Smartphones dealt with in this study, Symbian was found to be
furnished with hardware components for Bluetooth, WiFi, 3G, HSDPA, HSUPA and
Outband, whereas Android was found to have hardware for Bluetooth, 3G, Wi-Fi,
GSM/GPRS/EDGE. Blackberry on the other, has hardware components for Bluetooth, WiFi,
3G, GPRS/EDGE/UMTS, CDMA, Iden, GSM. iPhone seems to have hardware components
for GSM/GPRS / EDGE, UMTS /HSDPA / HSUPA, CDMA / EV-DO, Bluetooth, WiFi. All
four Smartphones have aGPS (internal GPS sensor) and all four have memory expansion slots
(table 3.4).
Input Options
Regarding input options, all four smart phones were characterized by a wide array of input
options. These included captive multi-touch display, external functional hardware keys,
virtual keyboard, and multitext entry option components for Symbian. Android has components
for the following input options: 3-axis gyroscope, Accelerometer, Ambient light sensor,
Capacitive touch-sensitive buttons, Digital compass, Microphone, Multi- touch capacitive
touch-screen, Proximity sensor, Push buttons, whereas iPhone input options comprised Multitouch touch screen display, Push-buttons, Dual microphone, 3- axis gyroscope ,3-axis
accelerometer ,Digital compass , Proximity sensor and Ambient light sensor. Least input
options are found in Blackberry Smartphones; they included multi-touch screen, keyboard
and trackpad.
The CPU of Symbian is a Samsung ARM11 680 MHz K5W4G2GACA - AL54 processor, that
of Android is a Samsung HummingbirdS5PC110 (ARM Cortex A8), that of iPhone is an
Apple A4 (ARM Cortex-A8) processor whereas that of Blackberry is a Marvell Tavor
PXA940 (ARM Cortex A8) compliant processor (Table 3.4).
Comparison between Smartphone Operating Systems
Table 3.4. Comparison between the hardware components of Symbian, Android, iPhone and Blackberry
OS [9] [15] [35] [49] [54]
Symbian OS
Android OS
iPhones OS
Blackberry OS
WiFi , 3G,
3G , WiFi ,
Iden , GSM
Yes aGPS
GPS sensor )
Yes aGPS
(Internal GPS
sensor )
,Bluetooth, WiFi
Yes aGPS
(Internal GPS
sensor )
 Capacitive
 3axis gyroscope
 Accelerometer.
 Ambient light
 External
 Virtual
 Multitouch touch  Trackpad,
screen display.
 keyboard,
 Push-buttons.
 Dual
 Capacitive touc
 Digital
 Multitouch
 Digital
 3-axis
 Multitouch touch
 3-axis
touch screen.
Not Supported
(ARM Cortex
Apple A4
(ARM CortexA8)
Tavor (ARM
Cortex A8)
Yes aGPS
(Internal GPS
sensor )
 Ambient
light sensor.
Comparison between Smartphone Operating Systems
3.5 Multimedia support
Audio and Image Support
A very wide array audio and image formats are supported by the four types of smart phone
operating systems, Symbian OS showing a noticeable superiority and the blackberry
showing the least capabilities in this respect. Thus whereas the Symbian OS has the
capability of supporting all types of audio formats, Blackberry OS supports only nine
formats; these are: MP3, WAVE, WMA, AAC+, MIDI, AMR, eAAC+, FlAC, OGG. Of
the two other operating systems that of Android is apparently more capable than iPhone as
regards to audio support (Table 3.5).
Video Support
As regards to video support again Symbian OS seems superior being capable of supporting
the widest range of types of video formats, iPhone OS being the least capable (table 3.5).
Similarly Symbian OS surpasses in capability for image support, capable of handling
about 20 types of image formats, followed by iPhone OS (7 formats), then by Blackberry
OS (6 formats) and finally by Android OS which capable of supporting five formats only
(Table 3.5)
Table 3.5: Comparison between multimedia support capabilities of Symbian, Android, iPhone and
Blackberry OS [9] [15] [35] [49] [54]
Audio support
Symbian OS
Android OS
iPhones OS
Blackberry OS
AAC (8 to
320 Kbps),
AAC (from
Store), HEAAC, MP3
(8 to 320
Kbps), MP3
VBR, Apple
eAAC+, FlAC,
Ogg Vorbis,
Comparison between Smartphone Operating Systems
Video support
Image support
HD 720p
DivX, XviD
H.264 AVC,
DivX, XviD,
H.264 AVC,
H.263, H.264,
DivX, WMV,
XviD, 3gp
3.6 Power Management
The four types of Smartphones OSs in question have different Power Management
capabilities. Symbian OS has a wide array of Power management capabilities. Its power
manager has a variant power controller for CPU and other hardware, in addition to power
handlers for peripherals, wakeup events for each low power state, CPU idle mode, as well
as Power HAL API. Android OS has also great power management capabilities. It has
screen on / off capabilities, toggle screen and keyboard back-light, brightness control,
sleep and standby CPU mode, RCP call, battery state change event, and power setting
change event. Iphone OS manages hardware for power consumption. Moreover, it has
screen power saving capabilities that third parties can turn off. Blackberry OS is a closed
source; thus, information regarding its features are meager. The only information available
regarding power utilization is that it is furnished with a Battery Plus and battery status
add-on to display remaining battery life in hours and minutes based on historical average
battery charge cycle.
Comparison between Smartphone Operating Systems
Table 3.6 : Power Management comparison between Symbian,Android,iPhone OS and Blackberry OS
Power manager.
Power Controller.
Variant power.
controller for CPU
and other
hardware Power
handlers for
for each low
power state
CPU idle
Power HAL
Toggle screen &
Brightness Sleep
& standby CPU
RPC call
Battery state
change event
Power Setting
change event
iPhone OS
Blackberry OS
Third parties
turn off the
screen power
saving feature
add-on to
battery life
in hours and
minutes based on
historical average
battery charge
OS manages
hardware for
Comparison between Smartphone Operating Systems
Chapter Four: Conclusion
4.1 Strength and Weakness
This study has revealed the following weaknesses and strengths for the four Smartphone
4.1.1 Symbian
Compared to the previous versions, Symbian^3 is now more finger friendly and
responsive when input the data. Some innovative new facility on the system
presented NOKIA Symbian^3, such as Web TV, Real multitasking, multiple home
screen, and USB OTG (USB On The Go). USB OTG provides facilities for users
of Symbian^3 – based Smartphones, for example Nokia N8 to directly access files
stored on the USB external hard disks, USB Flash Drive (UFD), or any other
Smartphone (if assigned as a media storage).
Users can do better multitasking with Symbian^3 than with previous versions of
Symbian. The possibility of running out has been greatly reduced because memory
management has been improved and can thus run more applications..
The Symbian^3 not only allows easy multitasking but also allows users to run
features with better battery efficiency. This allows the phone to run longer times
thus permitting users to make more out the phone.
Symbian^3 provides much better graphic display. It is more advanced in graphics
architecture, and is faster in integrating hardware and software. It has a more
responsive interface, is quick and stylish.
A Qt cross-platform application framework is installed in the latest version of
Nokia OS which destined to be a standard development environment for releasing
Symbian in the future. With Qt framework integrated in Symbian^3, writing apps
that works across all devices will be easier, and users will be able to load necessary
libraries onto the phone with a smart installer, that reduces file sizes [51][62][63].
Comparison between Smartphone Operating Systems
Like previous versions of Symbian, a user who daily uses this Smartphone may
complain about the navigation menus that are a bit less practical and sometimes
difficult to understand (menu names are too short).
In addition, the guidance is minimal when navigating the interface. Indeed this is a
problem for the veteran Symbian users.
Other points of weakness include the performance browser and the standard touch
screen keyboard.
4.1.2 Android
Android OS has become the top of the class by being customizable. Virtually, there
seems to be no limits to what the users can do with an Android device. If the
hardware can handle what they wish to do, users can probably utilize an Android
application to do it [63].
The ability to run tasks in the background is a huge plus. There are many things that
can only be accomplished by having two or more applications running at the same
time, and Android allows that.
Moreover, the Android OS allows for memory cards. This means that you are not
limited to the internal storage space that comes with the device. It is possible to fill a
memory card up with applications and another with music, and switch them out as
Furthermore, with Android people can use the phone as Wi-Fi Hotspot19.
Hotspot is a site that offers Internet access over a wireless local area network through the use of a
router connected to a link to an Internet service provider.
Comparison between Smartphone Operating Systems
The Android OS is already having problems with the fact that applications are not
always portable across devices, with a number of developers complaining about how
hard cross device compatibility is [36].
Moreover, Android has run into the problem of having to manage a tiny amount of
internal memory. This is most notable on the brand new Nexus S which has only 512
MB available to install applications on, and most applications can only be installed
on the internal memory.
It is also worth noting that the user interface of the Android OS is not nearly as neat
and polished as the iPhone OS. It appears much rougher and less perceptive than the
iPhone OS.
4.1.3 iPhone OS
iPhone Os superior as regards to its easy to use system and its third-party applications
that are always consistent with Apple. What is also positive about iOS is grouping of
applications in one folder for ease of management. Apple made a big improvement
by creating a system that supports multitasking, although it is still limited [62].
Moreover, and through iTunes, iPhone is now more easily managed, for example to
perform data synchronization, backup and search applications on the App Store,
which is still the largest and most complete [63]
The iPhone OS does not allow for multiple user applications to be run at the same
time. This removes a number of very useful functionalities from the platform.
Moreover, Developing for the iPhone is limited to just the Mac platform. This makes
the entry cost to develop iPhone applications very high for anyone who does not
already own the necessary hardware. Also, developing for the iPhone requires
Comparison between Smartphone Operating Systems
learning a language that is not valuable outside of the Apple community. In short
developing for the iPhone requires learning a large number of Apple specific items.
Furthermore, the iPhone OS has comparatively limited multitasking capabilities and
has less Hardware Options [62][51].
4.1.4 BlackBerry OS
One of the strengths of the BlackBerry OS is that the Home Screen is presented in
three parts. The top two display mobile phone settings and presents news updates on
screen. The bottom part shows screen menus that can be opened. These menus
contain all the applications, which are divided into five categories. Each icon can be
quickly used and grouped in folders [62] [63].
Moreover, the Blackberry OS supports transfer of multimedia data easily via WLAN
and PC to the Smartphone.
Furthermore, the RIM Smartphone business is characterized by a series of security
facilities in the system. Facility data encryption and smartcard needed for such
applications as e-mail are also present.
The user application in BlackBerry OS is less sensitive than in others. As a result
there are some configurations that can be run through the touch screen and the other
that have to be done through the menu button. The presence of a trackpad on the
Blackberry 9800 Torch makes easier for the users to “maneuver” in every part of the
interface on the screen. Nevertheless, some menus are elaborate and have become
redundant. RIM needs to refine the input mechanism between the input on the display
and slider QWERTY keyboard to be more in harmony [62].
Comparison between Smartphone Operating Systems
4.2 Conclusion
After studying the OS architectures and taking into account the different features provided,
The following conclusions are drawn as regards to which Smartphone OS is best suited for
each of the user domains, and for developers as well. This evaluation is purely based on
the findings of this research and on the opinion of the researcher. It is to be mentioned
here that the users are divided into three categories:
Figure 4.1 Smartphone OS Users Types
4.2.1 Gaming
Smartphones are increasingly being used for gaming purposes as well as for web access
and communication. Many devices are currently being decked out with features that are
especially made for gaming enjoyment.
In this respect, this study considers iPhone OS to be the top and followed by Android,
Symbian and Blackberry OS respectively. Apple’s iPhone 4 is a great choice for anyone
who wants to enjoy games.
The primary attributes that are important for gamers are Software Features, Power
Management and Multimedia Features. The secondary attribute considered are Supported
Platform, Hardware Support.
The iPhone 4 comes with a Multi-touch touch-screen display, 3-axis accelerometer, great
graphics (OpenGL and DirectX), and a processor that is up to the task of running most
games seamlessly .The iPhone 4 has a number of things going for it in terms of gaming,
not the least of which is the huge size and variety of titles available from the App Store.
Comparison between Smartphone Operating Systems
Along with all the other applications available at the store, there are around 70,000 games.
4.2.2 Business Users
This study considers Blackberry OS as the top OS for business users, followed by
Symbian, Android and iPhone OS respectively. The primary attributes for this, are
software features and power management. The secondary attributes are hardware support
and supported platform.
The Blackberry Torch 9800 supports e-mail through the BlackBerry Internet Service (BIS)
or the BlackBerry Enterprise Service (BES). Microsoft Word, Excel and PowerPoint
documents can be viewed and edited through Word To Go and Sheet To Go applications.
4.2.3 Casual Users
For casual users Android is considered here to be the top OS, followed by Symbian,
iPhone and BlackBerry OS respectively.
The primary attributes here are hardware support and multimedia features. The secondary
features include software features and supported platform.
Android OS provides casual users with the multimedia features that allow them to play
music, watch videos, stream clips and do audio and video editing on the phone. It supports
instant messaging, superior internet browsing, email and Bluetooth.
4.2.4 Third Party Developers
Symbian OS is considered to be the top OS for third party developers, followed by
Android, iPhone and BlackBerry OS .
The primary attributes that are important for the third party developers are Development
Environment and Software Features. The secondary attributes are Supported Platform,
Hardware Support and Multimedia Features.
As far as third party developers are concerned Symbian provides extensive hardware and
multimedia support to developers. Symbian supports multiple UI’s. The top layer of the
Comparison between Smartphone Operating Systems
architecture is completely removed. The Symbian does not provide the UI, instead it
provides the infrastructure to create the UI. It is designed to be GUI-neutral. The application
model and the application-event loop are enshrined in the operating system itself and in
the UI Framework support, and not in the variant user interface. Also the SDK provides
the developers extensive access to control and access features including
power management options which allow them to control the power usage.
Comparison between Smartphone Operating Systems
[1] Allen, S., Graupera, V. & Lundrigan, L. (2010). Pro Smartphone Cross-Platform
Development: iPhone, Blackberry, Windows Mobile and Android Development and
Distribution. 1st Ed. New York: Academic Press.
[2] Andriod Developers . (2011). Painless Threading.
[3] Android Developers . (2011). Activity .
[4] Android Developers . (2011). Content Providers. /
[5] Android Developers . (2011). Developing tools.
[6] Android Developers . (2011). SDK tools .
[7] Android Developers . (2011). Whats Android ? .
uide/basics/what- is- android.html
[8] Android Developers .(2011). Application Fundamentals.
guide /topics/fundamentals.html
[9] Apple . iPhone 4 Technical Specifications .
[10] Apple Developer. Thread Management.
[11] Apple Developers. UIApplicationDelegate Protocol Reference. http://developer
[12] Apple Developers. NSNotification Class Reference.
[13] Apple Developers. NSObject Class Reference
[14] Bass, L., Clements, P., Kazman, R. (2003). Software Architecture in Practice. Addison
Wesley, 2003
[15] Blackberry. Blackberry torch 9800.
[16] Blackberry Documents. BlackBerry Java Development Environment. Pdf
[17] Blackberry Documents . Garbage Collection on blackberry devices _a_BB_device _
Comparison between Smartphone Operating Systems
[19] Butler, M. (2011). Android: Changing the Mobile Landscape. Pervasive Computing,
IEEE , vol.10, no.1, pp.4-7,
[20] Buzzle .2011. What is Blackberry Technology.
[21] Cantrell, C. (2011). iOS features in Adobe AIR 2.6. Article on Adobe Developer
Http://www.adobe .com/devnet/air/articles/ios
[22] Cargail A. (2009). An Overview of the iPhone Architecture .http://www.the
[23] Devitt, S., Meeker, M. & Wu, L. 2010. Internet Trends. Morgan StanleyResearch.
[24] Dilger D. E.. iPhone OS X Architecture: the Mach Kernel and RAM. Roughly
Drafted Magazine
[25] Douangboupha, P. (2009). Smart Phone Platform Comparison. A Comparative
Analysis. Http://
[26] Douglas C. Schmidt; Michael Stal, Hans Rohnert, and Frank Buschmann (2000).
Pattern-Oriented Software Architecture, Volume 2: Patterns for Concurrent and
Networked Objects. John Wiley & Sons.
[28] Firtman, M. (2010). Programming the Mobile Web. O’Reilly Media, Inc. Sebastopol,
[29] Fitzek F. , Mikkonen T. and Torp T. (2009) . Qt for Symbian. John Wiley and Sons.
[30] Flavio (2011). Symbian and Meego wont die: Symbian will become a franchise becomesa-franchise-meego-an-open-source-project/
[31] Fling, B. (2009). Mobile Design and Development. O’Reilly Media, Inc. Sebastopol,
[32] Flosi, S. 1. (20 I 0). comScore report August 20 I 0 U.S. mobile subscriber market
share.http://www.comscore.comlPress_EventslPress_Releases 120 0/
[33] Gartner research:
[34] Goldstein N. (2009). IPhone Application Development for Dummies . For Dummies.
[35] Google Nexus S . (2011) . Nexus S.
[36] Gruman, G. (2010). Google Android's self-destruction derby begins. from InfoWorld: derby-begins-863
[37] Hachman M. (2002).ARM Cores Climb Into 3G Territory http://www.extremetech.
Comparison between Smartphone Operating Systems
[38] Haldar S. and Aravind A. (2010) . Operating Systems . Pearson Education .
[39] Harrison R. and Shackman M. (2007) .Symbian OS C++ for Mobile Phones, Volume
3 . John Wiley and Sons.
[40] Hashimi, S., Komatineni, S. & MacLean, D. (2010). Pro Android 2. New York:
Academic Press.
[41] ifixit.
[42] Jipping M. (2007) .Smartphone Operating System Concepts with Symbian OS
[43] Kao R. and Sarigumba D. (2010). Blackberry For Dummies. For Dummies
[44] King C. (2011). Advanced BlackBerry 6 Development. Apress
[45] Kumparak, G. (2010). Apple sold 14.1 million iPhones last quarter, over 70 million
[46] Laugesen, J. & Yuan, Y. (2010). "What Factors Contributed to the Success of Apple's
iPhone?," Mobile Business and Ninth Global Mobility Roundtable (ICMB-GMR),
2010 Ninth International Conference pp.91-99, 13-15.
[47] Meeker, M., Devitt, S., and Wu, 1. (2010). Internet trends. Morgan Stanley.
http://www.morganstanley.comlinstitutional ltechresearchlpdfsIMS-Intemet_ Trends_
[48] Morris, B. (2007). The Symbian OS architecture sourcebook: design and evolution of
a mobile phone OS. V10. John Wiley and Sons.
[49] Muchow J. iPhone Memory Management .
[50] Nachi K. Nithi and Adriaan J. (2011) . Smart Power Management for Mobile
Handsets.Bell Labs Technical Journal.
[51] (2011). Battle Between Mobile Platforms - iPhone, Android, WinMo,
[52] Nithi N. K. and Wijngaarden A. (2011). Smart Power Management for Mobile
Handsets. Bell Labs Technical Journal
[53] Nokia outlines new strategy, introduces new leadership, operational structure.
Nokia Press Releases(2011). Http:// /press/press-releases/ show press
release? newsid=1488004.
[54] Nokia web site . (2011). Nokia N8 specifications . productsen/devices/nokia-n8/specifications
[55] Nutting J., Mark D., LaMarche J. (2011) . Beginning IPhone 4 Development: Exploring
the IOS SDK. Apress.
[56] Pettey, C. and Stevens, H. (2011). Gartner Says Android to Command Nearly Half of
Worldwide Smartphone Operating System Market by Year-End 2012. Gartner Press
Releases website.Http://
[57] Preston G. (2011). Droid X: The Missing Manual . O'Reilly Media, Inc.
[58] Sales, J. (2005) . Symbian OS internals: real-time kernel programming . Volume 12.
Comparison between Smartphone Operating Systems
[59] Singh A. (2007). Mac OS X internals: a systems approach . Addison-Wesley
[60] Smyth N. (2011). iPhone iOS 4 Development Essentials . Payload Media .
[61] Udell, S. (2009). Pro Web Gadgets Across iPhone, Android, Windows, Mac, iGoogle
and More. New York: Academic Press.
[62] Vintu, Andrian (2010). Comparison of Android vs iPhone vs Nokia vs BlackBerry vs
Windows Mobile 7.
[63] Wiki (2011). Smartphones: Palm, Smartphone, IPhone, Android, Comparison of
smartphones, Windows Phone 7, Symbian, Nexus One, Videophone, Nokia N900,
IOS . Books LLC
[64] Zhang J. (2010). Android vs.
[65] Ehringer D. 2010. The Dalvik virtual machine