|Developer:||Accenture on behalf of Nokia|
|Kernel Type:||Microkernel (EKA2)|
|Supported Platforms:||ARM, x86|
|Family:||Embedded operating system|
|Released:||1997 as EPOC32|
|Latest Release Version:||Nokia Belle (Symbian^3)|
Symbian is a mobile operating system (OS) and computing platform designed for smartphones and currently maintained by Accenture. The Symbian platform is the successor to Symbian OS and Nokia Series 60; unlike Symbian OS, which needed an additional user interface system, Symbian includes a user interface component based on S60 5th Edition. The latest version, Symbian^3, was officially released in Q4 2010, first used in the Nokia N8. In May 2011 an update, Symbian Anna, was officially announced, followed by Nokia Belle (previously Symbian Belle) in August 2011. 
Some estimates indicate that the number of mobile devices shipped with the Symbian OS up to the end of Q2 2010 is 385 million.
By April 5, 2011, Nokia released Symbian under a new license and converted to a proprietary shared-source model as opposed to an open source project.
On February 11, 2011, Nokia announced that it would migrate from Symbian to Windows Phone 7. Nokia CEO Stephen Elop announced Nokia's first Windows phones at Nokia World 2011: the Lumia 800 and Lumia 710. These phones were launched on November 14, 2011. On June 22, 2011 Nokia made an agreement with Accenture as an outsourcing program. Accenture will provide Symbian-based software development and support services to Nokia through 2016 and about 2,800 Nokia employees will be Accenture employees at early October 2011. The transfer was completed on September 30, 2011.
See main article: History of Symbian, S60 (software platform), MOAP and UIQ. The Symbian platform was created by merging and integrating software assets contributed by Nokia, NTT DoCoMo, Sony Ericsson and Symbian Ltd., including Symbian OS assets at its core, the S60 platform, and parts of the UIQ and MOAP(S) user interfaces.
In December 2008, Nokia bought Symbian Ltd., the company behind Symbian OS; consequently, Nokia became the major contributor to Symbian's code, since it then possessed the development resources for both the Symbian OS core and the user interface. Since then Nokia has been maintaining its own code repository for the platform development, regularly releasing its development to the public repository. Symbian was intended to be developed by a community led by the Symbian Foundation, 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.
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.
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 it would take over the stewardship of the Symbian platform. Symbian Foundation will remain the trademark holder and licensing entity and will only have non-executive directors involved.
On February 11, 2011, Nokia announced a partnership with Microsoft which would see it adopt Windows Phone 7 for smartphones, reducing the number of devices running Symbian over the coming two years. As a consequence, the use of the Symbian platform for building mobile applications dropped rapidly. Research in June 2011 indicated that over 39% of mobile developers using Symbian at the time of publication were planning to abandon the platform.
By April 5, 2011, Nokia ceased to open source any portion of the Symbian software and reduced its collaboration to a small group of pre-selected partners in Japan. Source code released under the EPL remains available in third party repositories. 
See main article: History of Symbian.
|EPOC16||EPOC16, originally simply named EPOC, was the operating system developed by Psion in the late 1980s and early 1990s for Psion's "SIBO" (SIxteen Bit Organisers) devices. All EPOC16 devices featured an 8086-family processor and a 16-bit architecture. EPOC16 was a single-user preemptive multitasking operating system, written in Intel 8086 assembler language and C and designed to be delivered in ROM. It supported a simple programming language called Open Programming Language (OPL) and an integrated development environment (IDE) called OVAL. SIBO devices included the: MC200, MC400, Series 3 (1991–98), Series 3a, Series 3c, Series 3mx, Siena, Workabout and Workabout mx. The MC400 and MC200, the first EPOC16 devices, shipped in 1989.|
In the late 1990s, the operating system was referred to as EPOC16 to distinguish it from Psion's then-new EPOC32 OS.
|EPOC32 (releases 1 to 5)||The first version of EPOC32, Release 1 appeared on the Psion Series 5 ROM v1.0 in 1997. Later, ROM v1.1 featured Release 3 (Release 2 was never publicly available.) These were followed by the Psion Series 5mx, Revo / Revo plus, Psion Series 7 / netBook and netPad (which all featured Release 5).|
The EPOC32 operating system, at the time simply referred to as EPOC, was later renamed Symbian OS. Adding to the confusion with names, before the change to Symbian, EPOC16 was often referred to as SIBO to distinguish it from the "new" EPOC. Despite the similarity of the names, EPOC32 and EPOC16 were completely different operating systems, EPOC32 being written in C++ from a new codebase with development beginning during the mid 1990s.
EPOC32 was a pre-emptive multitasking, single user operating system with memory protection, which encourages the application developer to separate their program into an engine and an interface. The Psion line of PDAs come with a graphical user interface called EIKON which is specifically tailored for handheld machines with a keyboard (thus looking perhaps more similar to desktop GUIs than palmtop GUIs). However, one of EPOC's characteristics is the ease with which new GUIs can be developed based on a core set of GUI classes, a feature which has been widely explored from Ericsson R380 and onwards.
EPOC32 was originally developed for the ARM family of processors, including the ARM7, ARM9, StrongARM and Intel's XScale, but can be compiled towards target devices using several other processor types.
During the development of EPOC32, Psion planned to license EPOC to third-party device manufacturers, and spin off its software division as Psion Software. One of the first licensees was the short-lived Geofox, which halted production with less than 1,000 units sold. Ericsson marketed a rebranded Psion Series 5mx called the MC218, and later created the EPOC Release 5.1 based smartphone, the R380. Oregon Scientific also released a budget EPOC device, the Osaris (notable as the only EPOC device to ship with Release 4).
Work started on the 32-bit version in late 1994.
The Series 5 device, released in June 1997, used the first iterations of the EPOC32 OS, codenamed "Protea", and the "Eikon" graphical user interface.
The Oregon Scientific Osaris was the only PDA to use the ER4.
The Psion Series 5mx, Psion Series 7, Psion Revo, Diamond Mako, Psion netBook and Ericsson MC218 were released in 1999 using ER5. A phone project was announced at CeBIT, the Phillips Illium/Accent, but did not achieve a commercial release. This release has been retrospectively dubbed Symbian OS 5.
The first phone using ER5u, the Ericsson R380 was released in November 2000. It was not an 'open' phone – software could not be installed. Notably, a number of never-released Psion prototypes for next generation PDAs, including a Bluetooth Revo successor codenamed "Conan" were using ER5u. The 'u' in the name refers to the fact that it supported Unicode.
|Symbian OS 6.0 and 6.1||The OS was renamed Symbian OS and was envisioned as the base for a new range of smartphones. This release is sometimes called ER6. Psion gave 130 key staff to the new company and retained a 31% shareholding in the spin-off.|
The first 'open' Symbian OS phone, the Nokia 9210 Communicator, was released in June 2001. Bluetooth support was added. Almost 500,000 Symbian phones were shipped in 2001, rising to 2.1 million the following year.
Development of different UIs was made generic with a "reference design strategy" for either 'smartphone' or 'communicator' devices, subdivided further into keyboard- or tablet-based designs. Two reference UIs (DFRDs or Device Family Reference Designs) were shipped – Quartz and Crystal. The former was merged with Ericsson's 'Ronneby' design and became the basis for the UIQ interface; the latter reached the market as the Nokia Series 80 UI.
Later DFRDs were Sapphire, Ruby, and Emerald. Only Sapphire came to market, evolving into the Pearl DFRD and finally the Nokia Series 60 UI, a keypad-based 'square' UI for the first true smartphones. The first one of them was the Nokia 7650 smartphone (featuring Symbian OS 6.1), which was also the first with a built-in camera, with VGA (0.3 Mpx = 640×480) resolution.
Despite these efforts to be generic, the UI was clearly split between competing companies: Crystal or Sapphire was Nokia, Quartz was Ericsson. DFRD was abandoned by Symbian in late 2002, as part of an active retreat from UI development in favour of 'headless' delivery. Pearl was given to Nokia, Quartz development was spun off as UIQ Technology AB, and work with Japanese firms was quickly folded into the MOAP standard.
|Symbian OS 7.0 and 7.0s||First shipped in 2003. This is an important Symbian release which appeared with all contemporary user interfaces including UIQ (Sony Ericsson P800, P900, P910, Motorola A925, A1000), Series 80 (Nokia 9300, 9500), Series 90 (Nokia 7710), Series 60 (Nokia 3230, 6260, 6600, 6670, 7610) as well as several FOMA phones in Japan and Siemens SX1(VGA Camera, MMC card, Bluetooth, Infraport, radio) - the first and the last symbian phone from Siemens. It also added EDGE support and IPv6. Java support was changed from pJava and JavaPhone to one based on the Java ME standard.|
One million Symbian phones were shipped in Q1 2003, with the rate increasing to one million a month by the end of 2003.
Symbian OS 7.0s was a version of 7.0 special adapted to have greater backward compatibility with Symbian OS 6.x, partly for compatibility between the Communicator 9500 and its predecessor the Communicator 9210.
In 2004, Psion sold its stake in Symbian. The same year, 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 8.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 Symbian OS 8.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, while EKA2 was a real-time kernel. 8.0b was deproductised in 2003.|
|Symbian OS 8.1||An improved 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 real-time support but not allowing open application installation.The first and maybe the most famous smartphone featuring Symbian OS 8.1a was Nokia N90 in 2005, Nokia's first in Nseries.|
|Symbian OS 9.0||Symbian OS 9.0 was used for internal Symbian purposes only. It was de-productised in 2004. 9.0 marked the end of the road for EKA1. 8.1a is the final EKA1 version of Symbian OS.|
Symbian OS has generally maintained reasonable binary code 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.
|Symbian OS 9.1||Released early 2005. It includes many new security related features, including platform security module facilitating mandatory code signing. The new ARM EABI binary model means developers need to retool and the security changes mean they may have to recode. S60 platform 3rd Edition phones have Symbian OS 9.1. Sony Ericsson is shipping the M600 and P990 based on Symbian OS 9.1. The earlier versions had a defect where the phone hangs temporarily after the owner sent a large number of SMS'es. However, on 13 September 2006, Nokia released a small program to fix this defect. Support for Bluetooth 2.0 was also added.|
Symbian 9.1 introduced capabilities and a Platform Security framework. To access certain APIs, developers have to sign their application with a digital signature. Basic capabilities are user-grantable and developers can self-sign them, while more advanced capabilities require certification and signing via the Symbian Signed program, which uses independent 'test houses' and phone manufacturers for approval. For example, file writing is a user-grantable capability while access to Multimedia Device Drivers require phone manufacturer approval. A TC TrustCenter ACS Publisher ID certificate is required by the developer for signing applications.
|Symbian OS 9.2||Released Q1 2006. Support for OMA Device Management 1.2 (was 1.1.2). Vietnamese language support. S60 3rd Edition Feature Pack 1 phones have Symbian OS 9.2.Nokia phones with Symbian OS 9.2 OS include the Nokia E71, Nokia E90, Nokia N95, Nokia N82, Nokia N81 and Nokia 5700.|
|Symbian OS 9.3||Released on 12 July 2006. Upgrades include improved memory management and native support for Wifi 802.11, HSDPA. The Nokia E72, Nokia 5730 XpressMusic, Nokia N79, Nokia N96, Nokia E52, Nokia E75, Nokia 5320 XpressMusic, Sony Ericsson P1 and others feature Symbian OS 9.3.|
|Symbian OS 9.4||Announced in March 2007. Provides the concept of demand paging which is available from v9.3 onwards. Applications should launch up to 75% faster. Additionally, SQL support is provided by SQLite. Ships with the Samsung i8910 Omnia HD, Nokia N97, Nokia N97 mini, Nokia 5800 XpressMusic, Nokia 5530 XpressMusic, Nokia 5228, Nokia 5230, Nokia 5233, Nokia 5235, Nokia C6-00, Nokia X6, Sony Ericsson Satio, Sony Ericsson Vivaz and Sony Ericsson Vivaz Pro, Micromax x265.Used as the basis for Symbian^1, the first Symbian platform release.The release is also better known as S60 5th edition, as it is the bundled interface for the OS.|
|Symbian^2||Symbian^2 is a version of Symbian that only used by Japanese manufacturers, started selling in Japan market since May of 2010. The version is not used by Nokia.|
|Symbian^3 (Symbian OS 9.5) and Symbian Anna||Symbian^3 is a big improvement over previous S60 5th Edition and features single touch menus in the user interface, as well as new Symbian OS kernel with hardware-accelerated graphics; further improvements will come in the first half of 2011 including portrait qwerty keyboard, a new browser and split-screen text input. Nokia announced that updates to Symbian^3 interface will be delivered gradually, as they are available; Symbian^4, the previously planned major release, is now discontinued and some of its intended features will be incorporated into Symbian^3 in successive releases, starting with Symbian Anna.|
|Nokia Belle (Symbian OS 10.1)||In the summer of 2011 videos showing an early leaked version of Symbian Belle (original name of Nokia Belle) running on a Nokia N8 were published on YouTube . On August 24, 2011, Nokia announced it officially for three new smartphones, the Nokia 600 (later replaced by Nokia 603), Nokia 700, and Nokia 701 . Nokia officially renamed Symbian Belle to Nokia Belle in a company blog post.  Nokia Belle adds to the Anna improvements with a pull-down status/notification bar, deeper near field communication integration, free-form re-sizable homescreen widgets, and six homescreens instead of the previous three. As of February 7th 2012, Nokia Belle update is available for most phone models through Nokia Suite, except Australia. Users can check the availability on Nokia homepage . On March 1, 2012, Nokia announced a Feature Pack 1 update for Nokia Belle which will be available as an update to Nokia 603, 700, 701 (excluding others), and for Nokia 808 PureView natively.|
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 Widget; 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 declarative UI 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. When more applications 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. 
See main article: S60 browser and Opera Mobile. 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). Some older Symbian models have Opera Mobile as their default browser.
Nokia released a new browser with the release of Symbian Anna with improved speed and an improved user interface.
Symbian has strong localization support enabling manufacturers and 3rd party application developers to localize their Symbian based products in order to support global distribution.
Current Symbian release (Symbian Belle) has support for 48 languages, which Nokia makes available on device in language packs (set of languages which cover the languages commonly spoken in the area where the device variant is intended to be sold). All language packs have in common English (or a locally relevant dialect of it).
The supported languages [with dialects] (and scripts) in Symbian Belle are:
Symbian Belle marks the introduction of Kazakh, while Japanese and Korean is no longer supported.
From 2010, Symbian switched to using standard C++ with Qt as the main SDK, which can be used with either Qt Creator or Carbide.c++. Qt supports the older Symbian/S60 3rd (starting with Feature Pack 1, aka S60 3.1) and Symbian/S60 5th Edition (aka S60 5.0) releases, as well as the new Symbian platform. It also supports Maemo and MeeGo, Windows, Linux and Mac OS X.
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).  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. Application development can either use C++ or QML.
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 required 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 via the Carbide.vs plugin.
Visual Basic programmers can use NS Basic to develop apps for S60 3rd Edition and UIQ 3 devices.
In the past, Visual Basic, Visual Basic .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.
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 S60 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.
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). Applications can now be signed for free.
Symbian's design is subdivided into technology domains, each of which comprises a number of software packages. Each technology domain has its own roadmap, and the Symbian Foundation has a team of technology managers who manage these technology domain roadmaps.
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 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.
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 applications and the signalling stack. The real-time kernel has a microkernel architecture containing 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.
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.
Symbian OS was created with three systems design principles in mind:
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.
There is a strong emphasis on conserving resources which is exemplified by Symbian-specific programming idioms like descriptors and a cleanup stack. Similar methods exist to conserve disk space, though disks on Symbian devices are usually flash memory. Further, all Symbian programming is event-based, and the central processing unit (CPU) is switched into a low power mode when applications are not directly dealing with an event. This is done via a programming idiom called active objects. Similarly the Symbian approach to threads and processes is driven by reducing overheads.
The All over Model contains the following layers, from top to bottom:
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.
User interfaces that run on or are based on Symbian OS include:
Versions that are actively marketed as of September 2011 are Symbian^3 (and its updated Symbian Anna and Nokia Belle variants), Symbian^2, Symbian^1 (previously known as 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.
|-- originally generated with V1.7 -->|
|Feature||Symbian^3/Anna/Belle||Symbian^2||Symbian^1/Series 60 5th Edition||Series 60 3rd Edition Feature Pack 2||Series 80|
|Year released||2010 (Symbian^3), 2011 (Symbian Anna, Nokia Belle)||2010||2008||2008|
|Company||Symbian Foundation||Symbian Foundation||Symbian Foundation||Symbian Foundation||Symbian Foundation|
|Symbian OS version||9.5 (Symbian^3/Symbian Anna), 10.1 (Nokia Belle)||9.4||9.3|
|Series 60 version||5.2 (Symbian^3)||5.1||5th Edition||3rd Edition Feature Pack 2||N/A|
|Touch input support|
|Multi touch input support|
|Number of customizable home screens||Three to six (Five on Nokia E6, six on Nokia Belle)||One||Two||One|
|Wi-Fi version support||B, G, N||B, G||B, G||B, G|
|USB on the go support|
|DVB-H support||, with extra headset||, but have 1seg support||, with extra headset||, with extra headset|
|Short range FM transmitter support|
|FM radio support|
|Feature||Symbian^3/Anna/Belle||Symbian^2||Symbian^1/Series 60 5th Edition||Series 60 3rd Edition Feature Pack 2||Series 80|
|Adobe Flash support||, Flash Lite native version 4.0, upgradable||, Flash Lite native version 3.1, upgradable||, Flash Lite native version 3.1, upgradable|
|Microsoft Silverlight support|||| |||
|OpenGL ES support||, version 2.0|
|SQLite support||||By Ivan Litovski, Richard Maynard, 2010, page 9|
|CPU architecture support||ARM||SH-Mobile||ARM||ARM||ARM|
|Programmed in||C++, Qt||C++, Qt||C++, Qt|
|License||Eclipse Public License||proprietary SFL license, while some portions of source code are EPL licensed.|
|Public issues list||more|
|Package manager||.sis, .sisx||.sis, .sisx||.sis, .sisx||.sis, .sisx|
|Non English languages support||mainly Japanese,|
|Underlining spell checker|||
|Keeps state on shutdown or crash|
|Cut, copy, and paste support|||
|Default Web Browser for S60, WebKit engine||version 7.2, engine version 525 (Symbian^3); version 7.3, engine version 533.4 (Symbian Anna)||version 7.1.4, engine version 525; version 7.3, engine version 533.4 (for 9 selected units after firmware updates released in summer 2011)||engine version 413 (Nokia N79)||N/A|
|third-party software store||Ovi store||i-αppli/i-Widget||Ovi store||Ovi store|
|Email sync protocol support||POP3, IMAP||i-mode mail||POP3, IMAP||POP3, IMAP||POP3, IMAP|
|Feature!Symbian^3/Anna/Belle||Symbian^2!Symbian^1/Series 60 5th Edition||Series 60 3rd Edition Feature Pack 2!width="189"||Series 80|
|Tethering||USB, Bluetooth; mobile Wi-Fi hotspot, with third-party software||USB, Bluetooth; mobile Wi-Fi hotspot, with third-party software||USB, Bluetooth; mobile Wi-Fi hotspot, with third-party software||USB, Bluetooth;|
|Text, document support||Mobile Office Applications, PDF||Mobile Office Applications, PDF||Mobile Office Applications, PDF||Mobile Office Applications, PDF||Mobile Office Applications, PDF|
|Audio playback||All||wma, aac||All||All||wav, mp3|
|Video playback||H.263, H.264, WMV, MPEG4, MPEG4@ HD 720p 25–30 frame/s, MKV, DivX, XviD||WMV, MPEG4||H.263, WMV, MPEG4, 3GPP, 3GPP2||H.263, WMV, MPEG4, 3GPP, 3GPP2||H.263, 3GPP, 3GPP2|
|Turn-by-turn GPS||, with third-party software, or free global Nokia Ovi Maps which works offline||, with monthly paid||, with third-party software, or free global Nokia Ovi Maps which works offline||, with third-party software, or free global Nokia Ovi Maps which works offline||, with third-party software|
|Video out||Nokia AV, PAL, NTSC, HDMI||HDMI, and||Nokia AV, PAL, NTSC||Nokia AV, PAL, NTSC|
|Desktop interactive widgets|
|Integrated hardware keyboard|
|Video conference front video camera|
|Can share data via Bluetooth with all devices|
|Skype, third-party software|||
|Facebook IM chat|
|Secure Shell (SSH)||, third-party software||, third-party software||, third-party software|
|OpenVPN||, Nokia VPN can be used||, Nokia VPN can be used||, Nokia VPN can be used||, third-party software|
|Remote frame buffer||?|
|Screenshot||, third-party software||, third-party software||, third-party software|
|Official SDK platform(s)||Cross-platform, Windows (preferred is Qt), Carbide.c++, Java ME, Web Runtime Widgets (WRT), Flash lite, Python for Symbian||Cross-platform, Windows (preferred is Qt), Carbide.c++, Java ME, Web Runtime Widgets (WRT), Flash lite, Python for Symbian||Cross-platform, Windows (preferred is Qt), Carbide.c++, Java ME, Web Runtime Widget (WRT), Flash lite, Python for Symbian||Cross-platform, Windows (preferred is Qt), Carbide.c++, Java ME, third-party software (OPL)|
|Feature!Symbian^3/Anna/Belle||Symbian^2!Symbian^1/Series 60 5th Edition||Series 60 3rd Edition Feature Pack 2!width="189"||Series 80|
|First device(s)||Nokia N8 (Symbian^3), Nokia C7 (Symbian^3), Nokia X7, Nokia E6 (Anna), Nokia 603, Nokia 700, Nokia 701 (Belle)||NTT DOCOMO STYLE Series F-07B||Nokia 5800 (October 2, 2008)||Nokia N96, Nokia N78, Nokia 6210 Navigator and Nokia 6220 Classic (February 11, 2008)||Nokia 9210|
|Devices||Nokia N8, Nokia C6-01, Nokia C7-00, Nokia E7-00, Nokia E6, Nokia X7, Nokia 500, Nokia 603, Nokia 700, Nokia 701, Nokia 808 PureView||NTT DoCoMo: F-06B*, F-07B*, F-08B*, SH-07B†, F-10B,|
| Nokia 5228, Nokia 5230, Nokia 5233, Nokia 5235, Nokia 5250, Nokia 5530 XpressMusic, Nokia 5800 XpressMusic, Nokia 5800 Navigation Edition, Nokia C5-03, Nokia C6-00, Nokia N97, Nokia N97 mini, Nokia X6, Samsung i8910 Omnia HD, Sony Ericsson Satio, Sony Ericsson Vivaz, Sony Ericsson Vivaz Pro | Nokia 5320 XpressMusic, Nokia 5630 XpressMusic, Nokia 5730 XpressMusic, Nokia 6210 Navigator, Nokia 6220 Classic, Nokia 6650 fold, Nokia 6710 Navigator, Nokia 6720 Classic, Nokia 6730 Classic, Nokia 6760 Slide, Nokia 6790 Surge, Nokia E5-00, Nokia E52, Nokia E55, Nokia E71, Nokia E72, Nokia E75, Nokia N78, Nokia N79, Nokia N85, Nokia N86 8MP, Nokia N96, Nokia X5, Samsung GT-i8510 (INNOV8), Samsung GT-I7110, Samsung SGH-L870, Nokia C5-00 | Nokia 9210, Nokia 9300, Nokia 9300i, Nokia 9500|- style="text-align:center;" ! Feature ! Symbian^3/Anna/Belle ! Symbian^2 ! Symbian^1/Series 60 5th Edition ! Series 60 3rd Edition Feature Pack 2 ! width="189" | Series 80|}* manufactured by Fujitsu
† manufactured by Sharp
In the number of "smart mobile device" sales, Symbian devices were the market leaders for 2010. Statistics showed that Symbian devices formed a 37.6% share of smart mobile devices sold, with Android having 22.7%, RIM having 16%, and Apple having 15.7% (via iOS).
Prior reports on device shipments as published in February 2010 showed that the Symbian devices formed a 47.2% share of the smart mobile devices shipped in 2009, with RIM having 20.8%, Apple having 15.1% (via iOS), Microsoft having 8.8% (via Windows CE and Windows Mobile) and Android having 4.7%. Other competitors include webOS, Qualcomm's BREW, SavaJe, Linux and MontaVista Software.
Symbian has lost market share over the years as the market has dramatically grown, with new competing platforms entering the market, though it's sales have increased during the same timeframe. E.g., although Symbian's 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. 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. In 2006, Symbian had 73% of the smartphone market, compared with 22.1% of the market in the second quarter of 2011. Over the course of 2009–2011, Nokia, Motorola, Samsung, LG, and Sony Ericsson announced their withdrawal from Symbian in favour of alternative platforms including Google's Android, Microsoft's Windows Phone, and Samsung's bada.   
The users of Symbian in the countries with non-Latin alphabets (such as Russia, Ukraine and others) have been criticizing the complicated method of language switching for many years. For example, if a user wants to type a Latin letter, he must call the menu, click the languages item, use arrow keys to choose, for example, the English language from among many other languages, and then press the 'OK' button. After typing the Latin letter, the user must repeat the procedure to return to his native keyboard. This method slows down typing significantly. In touch-phones and QWERTY phones the procedure is slightly different but remains time-consuming. All other mobile operating systems, as well as Nokia's S40 phones, enable switching between two initially selected languages by one click or a single gesture.
Early versions of the firmware for the original Nokia N97, running on Symbian^1/Series 60 5th Edition have been heavily criticized.
In November 2010, Smartphone blog All About Symbian criticized the performance of Symbian's default web browser and recommended the alternative browser Opera Mobile. Nokia's Senior Vice President Jo Harlow promised an updated browser in the first quarter of 2011.
See 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.
Symbian OS 9.x devices can be hacked to remove the platform security introduced in OS 9.1 onwards, allowing users to execute unsigned code. This allows altering system files, and access to previously locked areas of the OS. The hack was criticised by Nokia for potentially increasing the threat posed by mobile viruses as unsigned code can be executed.