Your continued
donations keep Wikipedia running!

Symbian OS

From Wikipedia, the free encyclopedia

(Redirected from Symbian)

Jump to: navigation, search

It has been suggested that
EPOC (computing) be
merged
into this article or section. (Discuss)

Symbian OS is an operating system,
designed for mobile devices, with associated libraries, user
interface frameworks and reference implementations of common tools, produced
by Symbian Ltd.. It is a
descendant of Psion's EPOC.

Symbian is currently owned by Ericsson, Panasonic, Siemens
AG, Nokia, and
Sony
Ericsson. Whilst BenQ has acquired Siemens AG the Siemens AG
stake in Symbian does not automatically pass to BenQ - this will need the
approval of the Symbian Supervisory Board.

Contents

1 Design

2 Competition

3 Structure

4 History

5 Security and
Malware

6 Openness

7 Devices that have used the
Symbian OS

8 Developing on Symbian
OS

9 External links

[edit]

Design

There are a number of smartphone user
interface platforms based on Symbian OS, including open platforms UIQ, Nokia's Series 60, Series 80
and Series
90 and closed platforms such as that developed for NTT DoCoMo's FOMA handsets. This adaptability
allows Symbian OS to be used on smartphones with a variety of form factors (e.g.
clam-shell or "monoblock"/"candybar", keypad- or pen-driven).

Symbian OS, with its roots in Psion Software's EPOC (which
itself had similarities to the internals of VMS, a grown-up POSIX compatible operating system
for mini-computers in the 1980s) is structured like many desktop operating
systems, with pre-emptive
multitasking, multithreading, and memory protection.

Symbian OS's major advantage is the fact that it was built for handheld
devices, with limited resources, that may be running for months or years. There
is a strong emphasis on conserving memory, using Symbian-specific programming
idioms such as descriptors and a cleanup
stack. Together with other techniques, these keep memory usage low and memory
leaks rare. There are similar techniques for conserving disk space (though
the disks on Symbian devices are usually flash memory). Furthermore,
all Symbian OS programming is event-based, and the CPU is switched
off when applications are not directly dealing with an event. This is achieved
through a programming idiom called active objects. Correct
use of these techniques helps ensure longer battery life.

All of this makes Symbian OS's flavour of C++ very specialised, with a steep
learning curve. However, many Symbian OS devices can also be programmed in OPL, Python, Visual
Basic, Simkin, and Perl - together with the Java ME and Personal
Java flavours of Java.

[edit]

Competition

Symbian OS competes with other mobile operating systems, such as Windows Mobile, Palm OS, and Linux. It also
competes with the embedded operating systems used on lower-end phones, such as
NOS and OSE, which tend to be
maintained by the phone companies themselves. Symbian OS' major advantage over
these embedded operating systems is its modularity - there is runtime linking
between dynamically linked shared libraries (DLLs, see dynamic linking) on the
device, and an emphasis on plug-in architectures. This makes complex phones
quicker to develop, though this is sometimes offset by the complexity of Symbian
OS C++ and the awkwardness of going to another company for an OS (instead of
doing it in-house).

The advantages over other 'open' OS competitors (such as Linux and Windows Mobile, the last
one is not Open Source) are more
debatable. Phone vendors and network operators like the customisability of
Symbian OS relative to Windows. This customisability, though, makes integrating
a Symbian OS phone more difficult. It's possible that Linux goes too far in the
other direction, and is simply too hard to make a phone from at the moment.
Symbian OS's ground-up design for mobile devices should make it more power- and
memory-efficient, as well as being flexible.

[edit]

Structure

At its lowest level sit the 'base' components of Symbian OS. This
includes the kernel (EKA1
or EKA2 - see the 'History' section), along with the user library which allows
user-side applications to request things of the kernel. Symbian OS has a microkernel architecture,
which means that the minimum necessary is within the kernel. It does contain a
scheduler
and memory management, but
no networking or filesystem support. These things are provided by user-side
servers. The base layer includes the file server, which provides a fairly
DOS-like view of the filesystems on the device (each drive has a drive letter,
and backslashes are used as the directory delimiter).

Immediately above base are a selection of 'system libraries'. These
take all shapes and sizes, including for example character set conversion, a
DBMS database, and resource file handling.

Further up, the software is not so readily arranged into a stack.

There is a large 'networking and communication' subsystem, which has
three main servers - 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, implementing different
types of networking protocol scheme. There's lots of stuff relating to
short-range communication links too, such as Bluetooth, IrDA and USB.

There's also a large amount of 'user interface' code. Even though the
user interfaces themselves are maintained by other parties, the base classes and
substructure ("UIKON") for all UIs are present in Symbian OS.

There are also a selection of 'application engines' for popular
smartphone applications such as calendars, address books, and task lists. A
typical Symbian OS application is split up into an engine DLL and a graphical
application - the application being a thin wrapper over the engine DLL. Symbian
OS provides some of these engine DLLs.

There are, of course, many other things that don't yet fit into this model -
for example, SyncML, Java ME providing another set of
APIs on top of most of the OS and multimedia. Quite a few of
these things 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 means that
phone vendors need to do a great deal of integration work to make a Symbian OS
phone.

[edit]

History

In 1980, Psion
Software was founded by David Potter.

EPOC16. Psion released several Series 3 devices from 1991 to
1998 which used the EPOC16 OS, also known as SIBO.

EPOC OS Releases 1–3. The Series 5 device, released in
1997, used the first iterations of the EPOC32 OS.

EPOC Release 4. Oregon Osaris and Geofox 1 were released
using ER4.

In 1998, Symbian Ltd. was formed as
a partnership between Ericsson, Nokia, Motorola and Psion, to explore the
convergence between PDAs and mobile phones.

EPOC Release 5. Series 5mx, Series 7, Revo, netBook, netPad,
Ericsson MC218, and the Ericsson R380 were released in 1999 using ER5.

ER5U. U = Unicode. The first phone, the Ericsson R380 was released
using ER5U in 2000. It was not an 'open' phone - software could not be
installed.

Symbian OS v6.0 and v6.1. Sometimes called ER6. The first
'open' Symbian OS phone, the Nokia 9210, was released on 6.0.

Symbian OS v7.0 and v7.0s. First shipped in 2003.

In 2004, Psion sold its stake in Symbian.

Also in 2004, the
first worm for mobile phones
using Symbian OS, Cabir, was developed, which
used Bluetooth to spread itself to
nearby phones. See Cabir and Symbian OS
threats.

Symbian OS v8.0. First shipped in 2004, one of its advantages would
have been a choice of two different kernels (EKA1 or EKA2). However, the EKA2
kernel version did not ship until SymbianOS v8.1b. The kernels behave more or
less identically from user-side, but are internally very different. EKA1 was
chosen by some manufacturers to maintain compatibility with old device drivers,
whilst EKA2 offered advantages such as a hard real-time capability.

Symbian OS v8.1. Basically a cleaned-up version of 8.0, this was
available in 8.1a and 8.1b versions, with EKA1 and EKA2 kernels respectively.
The 8.1b version, with EKA2's single-chip phone support but no additional
security layer, was popular among Japanese phone companies desiring the realtime
support but not allowing open application installation.

Symbian OS v9.0. This version was used for internal Symbian purposes
only. It was deproductized in 2004.

Symbian OS v9.1. Early in 2005, the newest version of Symbian was
announced. Improvements in the OS mean that applications and content, and
therefore a developers investment, are better protected than ever. The new ARM
EABI binary model means developers need to retool and the security changes mean
they may have to recode. The Nokia N91 will probably be the first SymbianOS 9.1
device on the market, though the Sony Ericsson P990 should follow closely.

Symbian OS has generally maintained reasonable binary
compatibility. In theory the OS was BC from ER1-ER5, then from 6.0 to 8.1b.
Substantial changes were needed for 9.0, related to tools and security, but this
should be a one-off event. The move from requiring ARMv4 to requiring ARMv5 did
not break backwards compatibility.

[edit]

Security and Malware

Symbian OS has been 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, of course, the average mobile phone user shouldn't have to worry
about such things, so Symbian OS 9 is adopting a capability
model. Installed software will theoretically be unable to do damaging things
(such as costing the user money by sending network data) without being digitally
signed - thus making it traceable. Developers can apply to have their software
signed via the Symbian Signed program.

[edit]

Openness

A common question is whether Symbian OS is "open". It is not open in the
sense of Open Source software - the
source code is not publicly available. However, nearly all the source code is
provided to Symbian OS phone manufacturers and many other partners. Moreover,
the APIs are publicly documented and anyone can develop software for Symbian OS.
This contrasts with traditional embedded phone operating systems, which
typically cannot accept any aftermarket software except Java applications.

Symbian is also open in terms of the Open
Standards it supports.

[edit]

Devices that have used the Symbian OS

Ericsson R380 (2000) was the
first commercially available smartphone based on Symbian OS

Nokia
9210 Communicator smartphone (32-bit
66 MHz ARM9-based RISC CPU) (2001),
9300
Communicator (2004), 9500 Communicator (2004)
using the Nokia Series 80
interface

Sony Ericsson P800
(2002), P900 (2003), P910 (2004),
Motorola A920, A925, A1000, DoCoMo
M1000, BenQ P30, P31 and Nokia
6708 using the UIQ user interface.

Nokia Series 60
(2002)

Nokia Series 60 is used in various phones, the first being the Nokia
7650, then the Nokia 3650, followed by
the Nokia 3620/3660, Nokia
6600, Nokia 7610 and Nokia
6670. The Nokia N-Gage and Nokia N-Gage QD
gaming/smartphone combos are also Series 60 platform devices. It was also
used on other manufacturers' phones such as the Siemens SX1 and Sendo X. Recent,
more advanced devices using Series 60 include the Nokia 6630, the Nokia
6680 and a next generation N series, including the Nokia N70, Nokia
N90, and Nokia N91.

Nokia
7710 (2004) using the Nokia Series 90
interface.

Fujitsu and Mitsubishi phones for NTT DoCoMo in Japan, using an
interface developed specifically for them often called FOMA after the DoCoMo
"Freedom of Mobile Access" network brand.

[edit]

Developing on Symbian OS

Developing on Symbian OS can initially appear confusing, as there is no
single SDK available
for download from Symbian. Instead, there are SDKs available for each of the
main user interface families: UIQ, Series 60, and so on. Individual phone
products, or families, often have SDKs downloadable from the manufacturer's
website too. The SDKs contain documentation, the header files and library files
required to build Symbian OS software, and a Windows-based emulator ("WINS"). Up
until version 8, the SDKs also included a version of the GCC compiler (a
cross-compiler) required
to build software to work on the device. Symbian OS 9 uses a new ABI and so
requires a new compiler - a choice of compilers is available including a new
version of GCC (see external links below).

Symbian C++ programming is commonly done with a commercial IDE. Previously, Visual
Studio was common, but for current versions of Symbian OS, a
Symbian-specific version of CodeWarrior is favoured. The
CodeWarrior tools will be replaced during 2006 by Carbide.c++, an Eclipse-based IDE
developed by Nokia. It is expected that Carbide.c++ will be offered in different
versions: a free version may allow users to prototype software on the emulator
for the first time in a free product.

Other tools include SuperWaba, which can be used
to build Symbian 7 and 7s programs using the Java language. There's also a
version of a Borland IDE for Symbian OS.

Once developed, Symbian OS 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 or in some cases via Bluetooth. An alternative is
to partner with a phone manufacturer to have the software included on the phone
itself. The SIS file route will be a little more difficult from Symbian OS 9,
because any application wishing to have any capabilities beyond the bare minimum
must be signed via the Symbian
Signed program.

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)).

[edit]

External links

My-Symbian Symbian OS
Communicators and Smartphones Info Center, with active discussion forum.

Symbian Freak Website for Symbian
users, with a smart phone discussion forum

All About Symbian News and
information site for Symbian OS powered phones with active forum.

SymbianOne.com An active Community
portal for mobile developers, device makers, and carriers interested in
symbian devices

SymbianReview Premier source for
Symbian hardware, software, and accessory reviews

NewLC a Symbian C++ developer portal with
news, forums, tutorials and more

Symbian Company Website

UIQ UIQ Technology

Series 60 platform's official site

3-Lib

Symbian OS OpenSource Community Center, This
site is dedicated to the development of Open Source programs for SymbianOS.

History of
Symbian, 1980-2004

History of OPL

New
GCC compiler for Symbian OS 9

Carbide.c++ is an Eclipse-based
IDE for Symbian C++ development, developed by Nokia. It will be available in
2006.

Symbian Signed

Retrieved from "http://en.wikipedia.org/wiki/Symbian_OS"

Categories:
Articles to
be merged | Operating
systems | Smartphones

Views

Article

Discussion

Edit
this page

History

Personal tools

Sign
in / create account

Navigation

Main
Page

Community
Portal

Current events

Recent changes

Random article

Help

Contact Wikipedia

Donations

Search

Toolbox

What
links here

Related
changes

Upload
file

Special pages

Printable
version

Permanent
link

Cite
this article

In other languages

Česky

Deutsch

Français

Nederlands

日本語

Polski

Suomi

Русский

Svenska

Türkçe

This page was last modified 05:26, 23 February 2006.

All text is available under the terms of the GNU
Free Documentation License (see Copyrights
for details).
Wikipedia® is a registered trademark of the Wikimedia
Foundation, Inc.

Privacy policy

About Wikipedia

Disclaimers