History of Symbian
History of Symbian
Symbian OS was originally developed by Symbian Ltd.[3] It is a descendant of Psion's EPOC and runs
exclusively on ARM processors, although an unreleased x86 port existed.
History
In December 2008, Nokia bought Symbian Ltd., the company behind Symbian OS; as a result, Nokia has
become the major contributor to Symbian's code, as it now had the development resources for both the
Symbian OS core and the user interface. Since then, Nokia has been maintaining their own code
repository for the platform development, regularly releasing their development to the public repository.
[6]
File Symbian was intended to be developed by a community led by the Symbian Foundation,[7] which
was first announced in June 2008 and which officially launched in April 2009. Its objective was to publish
the source code for the entire Symbian platform under the OSI- and FSF-approved Eclipse Public License
(EPL). The code was published under EPL on 4 February 2010; Symbian Foundation reported this event
to be the largest codebase transitioned to Open Source in history.[8][9]
However, some important components within Symbian OS were licensed from third parties, which
prevented the foundation from publishing the full source under EPL immediately; instead much of the
source was published under a more restrictive Symbian Foundation License (SFL) and access to the
full source code was limited to member companies only, although membership was open to any
organisation.[10]
In November 2010, the Symbian Foundation announced that due to a lack of support from funding
members, it would transition to a licensing-only organisation; Nokia announced that it will take over the
stewardship of the Symbian platform. Symbian Foundation will remain as the trademark holder and
licensing entity and will only have non-executive directors involved.
On February 11, 2011, Nokia announced a partnership with Microsoft that would see it adopt Windows
Phone 7 for smartphones, reducing the number of devices running Symbian over the coming two years.
[11]
[edit]Version history
Symbian releases are styled Symbian^1, Symbian^2 etc. (vocalised as "Symbian one", "Symbian two").
Symbian^1, as the first release, forms the basis for the platform. It incorporates Symbian OS
and S60 5th Edition (which is built on Symbian OS 9.4) and thus it was not made available as open
source.[12]
Symbian^2 was the first royalty-free version of Symbian.[13] While portions of Symbian^2 are EPL
licensed, most of the source code is under the proprietary SFL license and available only to members of
the Symbian Foundation. On June 1, 2010, a number of Japanese companies including DoCoMo and
Sharp announced smartphones using Symbian^2.[14]
Symbian^4 was expected to be released in the first half of 2011. However, Nokia announced in October
2010 that Symbian^4 will not ship as a separate release. Instead, improvements to Symbian will be
delivered as software updates to all current Symbian^3 devices.[20]
[edit]Features
[edit]User interface
Symbian has had a native graphics toolkit since its inception, known as AVKON (formerly known
as Series 60). S60 was designed to be manipulated by a keyboard-like interface metaphor, such as the
~15-key augmented telephone keypad, or the mini-QWERTY keyboards. AVKON-based software is
binary-compatible with Symbian versions up to and including Symbian^3.
Symbian^3 includes the Qt framework, which is now the recommended user interface toolkit for new
applications. Qt can also be installed on older Symbian devices.
Symbian^4 was planned to introduce a new GUI library framework specifically designed for a touch-based
interface, known as "UI Extensions for Mobile" or UIEMO (internal project name "Orbit"), which was built
on top of Qt; a preview was released in January 2010, however in October 2010 Nokia announced that
Orbit/UIEMO has been cancelled.
Nokia currently recommends that developers use Qt Quick with QML, the new high-level GUI and
scripting framework for creating visually rich touchscreen interfaces that allows development for both
Symbian and MeeGo; it will be delivered to existing Symbian^3 devices as a Qt update. As more
applications will gradually feature a user interface reworked in Qt, the legacy S60 framework (AVKON)
will be deprecated and no longer included with new devices at some point, thus breaking binary
compatibility with older S60 applications.[20][21]
[edit]Browser
Symbian^3 and earlier have a native WebKit based browser; indeed, Symbian was the first mobile
platform to make use of WebKit (in June 2005).[22]
Nokia plans to introduce a new Qt-based browser as a free update for Symbian^3 devices.
[edit]Application development
From 2010, Symbian switched to using standard C++ with Qt as the SDK, which can be used with
either Qt Creator or Carbide. Qt supports the older Symbian S60 3rd and 5th editions, as well as the new
Symbian platform. It also supports Maemo and MeeGo, Windows, Linux and Mac OS X.[23][24]
Alternative application development can be done with using Python (see Python for S60), Adobe
Flash or Java ME.
Web Runtime (WRT) is a portable application framework that allows creating widgets on the S60
Platform; it is an extension to the S60 WebKit based browser that allows launching multiple browser
instances as separate JavaScript applications.[25][26]
[edit]Architecture
Every package is allocated to exactly one technology domain, based on the general functional area to
which the package contributes and by which it may be influenced. By grouping related packages by
themes, the Symbian Foundation hopes to encourage a strong community to form around them and to
generate discussion and review.
The Symbian System Model[29] illustrates the scope of each of the technology domains across the
platform packages.
Packages are owned and maintained by a package owner, a named individual from an organization
member of the Symbian Foundation, who accepts code contributions from the wider Symbian community
and is responsible for package.
[edit]Symbian kernel
The Symbian kernel (EKA2) supports sufficiently-fast real-time response to build a single-core phone
around it—that is, a phone in which a single processor core executes both the user applicationsand
the signalling stack.[30] The real-time kernel has a microkernel architecture that contains only the
minimum, most basic primitives and functionality, for maximum robustness, availability and
responsiveness. It has been termed a nanokernel, because it needs an extended kernel to implement any
other abstractions. It contains a scheduler, memory management and device drivers, with networking,
telephony and file system support services in the OS Services Layer or the Base Services Layer. The
inclusion of device drivers means the kernel is not a true microkernel.
[edit]Design
Symbian features pre-emptive multitasking and memory protection, like other operating systems
(especially those created for use on desktop computers). EPOC's approach to multitasking was inspired
by VMS and is based on asynchronous server-based events.
To best follow these principles, Symbian uses a microkernel, has a request-and-callback approach to
services, and maintains separation between user interface and engine. The OS is optimised for low-
power battery-based devices and for ROM-based systems (e.g. features like XIP and re-entrancy in
shared libraries). Applications, and the OS itself, follow an object-oriented design: Model-view-controller
(MVC).
Later OS iterations diluted this approach in response to market demands, notably with the introduction of
a real-time kernel and a platform security model in versions 8 and 9.
[edit]Operating system
The All over Model contains the following layers, from top to bottom:
UI Framework Layer
Application Services Layer
Java ME
OS Services Layer
generic OS services
communications services
multimedia and graphics services
connectivity services
Base Services Layer
Kernel Services & Hardware Interface Layer
The Base Services Layer is the lowest level reachable by user-side operations; it includes the File
Server and User Library, a Plug-In Framework which manages all plug-ins, Store, Central
Repository,DBMS and cryptographic services. It also includes the Text Window Server and the Text
Shell: the two basic services from which a completely functional port can be created without the need for
any higher layer services.
Symbian has a microkernel architecture, which means that the minimum necessary is within the kernel to
maximise robustness, availability and responsiveness. It contains a scheduler, memory management and
device drivers, but other services like networking, telephony and filesystem support are placed in the OS
Services Layer or the Base Services Layer. The inclusion of device drivers means the kernel is not
a true microkernel. The EKA2 real-time kernel, which has been termed a nanokernel, contains only the
most basic primitives and requires an extended kernel to implement any other abstractions.
Symbian is designed to emphasise compatibility with other devices, especially removable media file
systems. Early development of EPOC led to adopting FAT as the internal file system, and this remains,
but an object-oriented persistence model was placed over the underlying FAT to provide a POSIX-style
interface and a streaming model. The internal data formats rely on using the same APIs that create the
data to run all file manipulations. This has resulted in data-dependence and associated difficulties with
changes and data migration.
There is a large networking and communication subsystem, which has three main servers called: ETEL
(EPOC telephony), ESOCK (EPOC sockets) and C32 (responsible for serial communication). Each of
these has a plug-in scheme. For example, ESOCK allows different ".PRT" protocol modules to implement
various networking protocol schemes. The subsystem also contains code that supports short-range
communication links, such as Bluetooth, IrDA and USB.
There is also a large volume of user interface (UI) Code. Only the base classes and substructure were
contained in Symbian OS, while most of the actual user interfaces were maintained by third parties. This
is no longer the case. The three major UIs — S60, UIQ and MOAP — were contributed to Symbian in
2009. Symbian also contains graphics, text layout and font rendering libraries.
All native Symbian C++ applications are built up from three framework classes defined by the application
architecture: an application class, a document class and an application user interface class. These
classes create the fundamental application behaviour. The remaining needed functions, the application
view, data model and data interface, are created independently and interact solely through their APIs with
the other classes.
Many other things do not yet fit into this model — for example, SyncML, Java ME providing another set of
APIs on top of most of the OS and multimedia. Many of these are frameworks, and vendors are expected
to supply plug-ins to these frameworks from third parties (for example, Helix Player for
multimedia codecs). This has the advantage that the APIs to such areas of functionality are the same on
many phone models, and that vendors get a lot of flexibility. But it means that phone vendors needed to
do a great deal of integration work to make a Symbian OS phone.
Symbian includes a reference user-interface called "TechView". It provides a basis for starting
customisation and is the environment in which much Symbian test and example code runs. It is very
similar to the user interface from the Psion Series 5 personal organiser and is not used for any production
phone user interface.
The Nokia S60 interface is used in various phones, the first being the Nokia 7650. The Nokia N-
Gage and Nokia N-Gage QD gaming/smartphone combos are also S60 platform devices. It was also
used on other manufacturers' phones such as the Siemens SX1 and Samsung SGH-Z600. Recently,
more advanced devices using S60 include the Nokia 6xxx, the Nseries (except Nokia N8xx and
N9xx), the Eseries and some models of the Nokia XpressMusic mobiles.
Fujitsu, Mitsubishi, Sony Ericsson and Sharp developed phones for NTT DoCoMo in Japan, using
an interface developed specifically for DoCoMo's FOMA "Freedom of Mobile Access" network brand.
This UI platform is called MOAP "Mobile Oriented Applications Platform" and is based on the UI from
earlier Fujitsu FOMA models. The user cannot install new C++ applications.
Versions that are actively marketed as of January 2011 are Symbian^3/Symbian^4, Symbian^2,
Symbian^1 (Series 60 5th edition), and Series 60 3rd edition Feature Pack 2. For features of older
versions see history of Symbian. Note that the operating system supporting a certain feature does not
imply that all devices running on it have that feature available, especially if it involves expensive
hardware, such as HDMI output.
Symbian
Company Symbian Foundation Symbian Foundation
Foundation
Symbian OS
9.5 9.4 9.3
version
Supports touch
Yes Yes No
input?
Supports multi
Yes No No
touch input?
Number of
customizable home Three One One
screens?
Supported Wi-Fi ve
B, G, N B, G B, G
rsions?
Supports USB on
Yes No No
the go?
Supports short
range FM Yes Yes Yes
transmitter?
Supports FM
Yes Yes Yes
radio?
Supports Microsoft
Yes[35]
Silverlight?
Supports OpenGL
Yes, version 2.0
ES?
Supported CPU
ARM ARM ARM
Architecture
Programmed in C++
Non english
Yes Yes Yes
languages support
Underlining spell
Yes No No
checker
Keeps state on
No No No
shutdown or crash
Supports cut, copy,
Yes Yes Yes
and paste?
undo ? No No
Default web
version 7.2, engine
Browser for version 7.1.4
version 525[37]
S60(WebKit engine)
3rd Party
Ovi store Ovi store Ovi store
Application Store
Email Sync
POP3, IMAP POP3, IMAP POP3, IMAP
protocols supported
3rd Party Software, free 3rd Party Software, free 3rd Party Software, free
Turn-by-turn GPS global NokiaOvi global NokiaOvi global Nokia Ovi
Maps (works offline) Maps (works offline) Maps (works offline)
Nokia AV Out
Nokia AV Out Nokia AV Out
Video out (PAL/NTSC), HDMI-
(PAL/NTSC) (PAL/NTSC)
out
Desktop interactive
Yes Yes No
widgets
Integrated
Hardware Yes Yes Yes
keyboard
Video-conference
Yes Yes Yes
front video camera
Can share data via
Bluetooth with all Yes Yes Yes
devices?
ssh Yes (3rd party software) Yes (3rd party software) Yes (3rd party software)
Remote Frame
?
Buffer
GPU Accelerated
Yes
GUI
Nokia N96, Nokia
N78, Nokia 6210
First device Nokia N8 Nokia 5800
Navigator and Nokia
6220 classic [40]
NTT
DOCOMO F-
06B*,[41] NTT
DOCOMO F-
07B*,[41] NTT
DOCOMO F-
08B*,[41] NTT
DOCOMO
Nokia 5320
SH-07B†,
[41] XpressMusic, Nokia
NTT
5630
DOCOMO F-
XpressMusic, Nokia
10B,[42] NTT
5730
DOCOMO Nokia 5228, Nokia
XpressMusic,Nokia
Raku-Raku 5230, Nokia 5233,Nokia
6210 Navigator, Nokia
PHONE 7, 5235 , Nokia
[42] 6220 Classic, Nokia
NTT 5250, Nokia 5530
6650 fold, Nokia 6710
DOCOMO F- XpressMusic, Nokia
Navigator, Nokia 6720
01C*,[43] NTT 5800
Classic, Nokia 6730
DOCOMO F- XpressMusic, Nokia
Classic, Nokia 6760
Nokia N8, Nokia C6- 02C*,[43]NTT 5800 Navigation
Slide, Nokia 6790
Devices 01, Nokia C7-00,Nokia DOCOMO F- Edition, Nokia C5-
Surge, Nokia C5-
E7-00 03C*,[43] NTT 03, Nokia C6-00,Nokia
00, Nokia E5-00,Nokia
DOCOMO F- N97, Nokia
E52, Nokia E55, Nokia
04C*,[43] NTT N97 mini, Nokia
E71,Nokia E72, Nokia
DOCOMO F- X6, Samsung i8910
E75, Nokia N78,Nokia
05C*,[43] NTT Omnia HD,[44]Sony
N79, Nokia N85, Nokia
DOCOMO Ericsson Satio, Sony
N86 8MP,Nokia
SH-01C†, Ericsson Vivaz,Sony
[43] N96, Nokia
NTT Ericsson Vivaz Pro
X5, Samsung GT-i8510
DOCOMO
(INNOV8), Samsung
SH-02C†,[43] N
GT-I7110,Samsung
TT DOCOMO
SGH-L870, Nokia C5-
SH-04C†,[43] N
00
TT DOCOMO
SH-05C†,[43] N
TT DOCOMO
SH-06C†,[43] N
TT DOCOMO
TOUCH
WOOD SH-
08C†[43]
* manufactured by Fujitsu
† manufactured by Sharp
[edit]Application development
[edit]Qt
As of 2010, the SDK for Symbian is standard C++, using Qt. It can be used with either Qt Creator, or
Carbide (the older IDE previously used for Symbian development).[23][45] A phone simulator allows testing
of Qt apps. Apps compiled for the simulator are compiled to native code for the development platform,
rather than having to be emulated.[46]
[edit]Symbian C++
It is also possible to develop using Symbian C++, although it is not a standard implementation. Before the
release of the Qt SDK, this was the standard development environment. There were multiple platforms
based on Symbian OS that provided software development kit (SDKs) for application developers wishing
to target Symbian OS devices, the main ones being UIQ and S60. Individual phone products, or families,
often had SDKs or SDK extensions downloadable from the maker's website too.
The SDKs contain documentation, the header files and library files needed to build Symbian OS software,
and a Windows-based emulator ("WINS"). Up until Symbian OS version 8, the SDKs also included a
version of the GNU Compiler Collection (GCC) compiler (a cross-compiler) needed to build software to
work on the device.
Symbian OS 9 and the Symbian platform use a new application binary interface (ABI) and needed a
different compiler. A choice of compilers is available including a newer version of GCC (see external links
below).
Unfortunately, Symbian C++ programming has a steep learning curve, as Symbian C++ requires the use
of special techniques such as descriptors, active objects and the cleanup stack. This can make even
relatively simple programs harder to implement than in other environments. Moreover, it was questionable
whether these techniques, such as the memory management paradigm, were actually beneficial. It is
possible that the techniques, developed for the much more restricted mobile hardware of the 1990s,
simply caused unnecessary complexity in source code because programmers are needed to concentrate
on low-level routines instead of more application-specific features. As of 2010, these issues are no longer
the case when using standard C++, with the Qt SDK.
Symbian C++ programming is commonly done with an integrated development environment (IDE). For
earlier versions of Symbian OS, the commercial IDE CodeWarrior for Symbian OS was favoured. The
CodeWarrior tools were replaced during 2006 by Carbide.c++, an Eclipse-based IDE developed by Nokia.
Carbide.c++ is offered in four different versions: Express, Developer, Professional, and OEM, with
increasing levels of capability. Fully featured software can be created and released with the Express
edition, which is free. Features such as UI design, crash debugging etc. are available in the other,
charged-for, editions. Microsoft Visual Studio 2003 and 2005 are also supported through
the Carbide.vs plugin.
[edit]Other languages
Symbian devices can also be programmed using Python, Java ME, Flash Lite, Ruby, .NET, Web Runtime
(WRT) Widgets and Standard C/C++.[47]
Visual Basic programmers can use NS Basic to develop apps for S60 3rd Edition and UIQ 3 devices.
In the past, Visual Basic, VB.NET, and C# development for Symbian were possible
through AppForge Crossfire, a plugin for Microsoft Visual Studio. On 13 March 2007 AppForge ceased
operations; Oracle purchased the intellectual property, but announced that they did not plan to sell or
provide support for former AppForge products. Net60, a .NET compact framework for Symbian, which is
developed by redFIVElabs, is sold as a commercial product. With Net60, VB.NET and C# (and other)
source code is compiled into an intermediate language (IL) which is executed within the Symbian OS
using a just-in-time compiler. (As of 18/1/10 RedFiveLabs has ceased development of Net60 with this
announcement on their landing page: ”At this stage we are pursuing some options to sell the IP so that
Net60 may continue to have a future”.)
There is also a version of a Borland IDE for Symbian OS. Symbian OS development is also possible
on Linux and Mac OS X using tools and methods developed by the community, partly enabled by
Symbian releasing the source code for key tools. A plugin that allows development of Symbian OS
applications in Apple's Xcode IDE for Mac OS X was available.[48]
Java ME applications for Symbian OS are developed using standard techniques and tools such as
the Sun Java Wireless Toolkit (formerly the J2ME Wireless Toolkit). They are packaged as JAR (and
possibly JAD) files. Both CLDC and CDC applications can be created with NetBeans. Other tools
include SuperWaba, which can be used to build Symbian 7.0 and 7.0s programs using Java.
Nokia S60i phones can also run Python scripts when the interpreter Python for S60 is installed, with a
custom made API that allows for Bluetooth support and such. There is also an interactive console to allow
the user to write python scripts directly from the phone.
[edit]Deployment
Once developed, Symbian applications need to find a route to customers' mobile phones. They are
packaged in SIS files which may be installed over-the-air, via PC connect, Bluetooth or on a memory
card. An alternative is to partner with a phone manufacturer and have the software included on the phone
itself. Applications must be Symbian Signed for Symbian OS 9.x in order to make use of certain
capabilities (system capabilities, restricted capabilities and device manufacturer capabilities).
[49]
Applications can now be signed for free.[50]
Prior reports on device shipments as published in February 2010 showed that the Symbian devices
comprised a 47.2% share of the smart mobile devices shipped in 2009, with RIM having 20.8%, Apple
having 15.1% (through iPhone OS), Microsoft having 8.8% (through Windows CE and Windows Mobile)
and Android having 4.7%.[52] Other competitors
include webOS, Qualcomm's BREW,SavaJe, Linux and MontaVista Software.
Although the share of the global smartphone market dropped from 52.4% in 2008 to 47.2% in 2009,
shipments of Symbian devices grew 4.8%, from 74.9 million units to 78.5 million units.[52] From Q2 2009 to
Q2 2010, shipments of Symbian devices grew 41.5%, by 8.0 million units, from 19,178,910 units to
27,129,340; compared to an increase of 9.6 million units for Android, 3.3 million units for RIM, and 3.2
million units for Apple.[53]
Symbian has lost market share in recent years; it dropped from 72.8% of the market in Q3 2006 to 36% in
Q3 2010.[citation needed] In 2009-2010, Motorola, Samsung, LG, and Sony Ericsson announced their
withdrawal from the platform, leaving only Nokia and several small Japanese-only vendors.[citation needed] By
the end of 2010, Samsung will totally leave Symbian including the support and service and also remove
all content relating to Symbian from its website, whereas Sony Ericsson will not introduce new mobile
phone with Symbian.[54][unreliable source?]
[edit]Criticism
In November 2010, Smartphone blog All About Symbian criticised the performance of Symbian's default
web browser and recommended the alternative browser Opera Mobile.[55]
Nokia's Senior Vice President Jo Harlow promised an updated browser in the first quarter of 2011.
[56]
Nokia denied any plans for switching to competitive platforms such as Android operating systembut in
February 2011 announced it had signed a strategic tie up with Microsoft. Industry analysts expect
Symbian's market share to decline, although it would still continue to dominate worldwide as the number
two platform, after Android.[57] Nokia's new Symbian^3 devices have also been received well by the
market and the reviewers. The announcement to switch to "continuous development" model ofiPhone
OS and Android OS, where existing devices will be supported with new OS updates during their lifetime,
has been welcomed by the community.[citation needed]
[edit]Malware
Main article: Mobile virus
Symbian OS was subject to a variety of viruses, the best known of which is Cabir. Usually these send
themselves from phone to phone by Bluetooth. So far, none have taken advantage of any flaws in
Symbian OS – instead, they have all asked the user whether they would like to install the software, with
somewhat prominent warnings that it can't be trusted.
However, with a view that the average mobile phone user shouldn't have to worry about security,
Symbian OS 9.x adopted a UNIX-style capability model (permissions per process, not per object).
Installed software is theoretically unable to do damaging things (such as costing the user money by
sending network data) without being digitally signed – thus making it traceable. Commercial developers
who can afford the cost can apply to have their software signed via the Symbian Signed program.
Developers also have the option of self-signing their programs. However, the set of available features
does not include access to Bluetooth, IrDA, GSM CellID, voice calls, GPS and few others. Some
operators have opted to disable all certificates other than the Symbian Signed certificates.
Some other hostile programs are listed below, but all of them still require the input of the user to run.
Drever.A is a malicious SIS file trojan that attempts to disable the automatic startup from
Simworks and Kaspersky Symbian Anti-Virus applications.
Locknut.B is a malicious SIS file trojan that pretends to be a patch for Symbian S60 mobile
phones. When installed, it drops a binary that will crash a critical system service component. This will
prevent any application from being launched in the phone.
Mabir.A is basically Cabir with added MMS functionality. The two are written by the same author,
and the code shares many similarities. It spreads using Bluetooth via the same routine as early
variants of Cabir. As Mabir.A activates it will search for the first phone it finds, and starts sending
copies of itself to that phone.
Fontal.A is an SIS file trojan that installs a corrupted file which causes the phone to fail at reboot.
If the user tries to reboot the infected phone, it will be permanently stick on the reboot, and cannot be
used without disinfection – that is, the use of the reformat key combination which causes the phone to
lose all data. Being a trojan, Frontal cannot spread by itself – the most likely way for the user to get
infected would be to acquire the file from untrusted sources, and then install it to the phone,
inadvertently or otherwise.
[edit]See also
[edit]General
January 2010.
08-12.