Symbian OS System Definition - Detailed View

Overview

We provide here information to complement that in the Symbian OS System Definition. That paper categorises the high level system definition components, relating these to availability on Symbian OS phones. But it does not go into detail about the contents of these components. We present here a more detailed description. We also indicate how their composition has changed between OS releases. Finally it is explained how this information now enables SDK users to work out for themselves which APIs in the Symbian Developer Library are available on any particular Symbian OS phone.

Symbian OS phones and UI platform

Even a cursory review of the Symbian OS phones which have thus far been launched or announced shows the flexibility of Symbian OS to support a wide range of mobile phone products targeted at diverse markets. From the viewpoint of the software developer, the rapid expansion of the target market for Symbian OS phones, combined with the openness of the platform to third party applications and services represents a clear business opportunity.

However the diversity of products which has made possible the rapid market penetration of Symbian OS phones also offers a challenge to software developers, in that the software platform which application developers must target is not defined uniquely by Symbian OS. In particular, Symbian OS is created with a provisional user interface (called TechView) intended only for testing and reference usage. This UI must ultimately be replaced by a user interface suited for shipping on mobile phones. Not only that, a number of applications, system services, device drivers etc. need to be provided alongside Symbian OS for a phone to be produced.

To avoid the difficulties which would otherwise ensue if Symbian OS phone development were allowed to take place in an arbitrary way, Symbian introduced the concept of UI platforms. Each UI platform provides a distinct UI for Symbian OS and an associated set of system applications for such tasks as messaging, browsing, telephony, multimedia and contact/calendar management. These applications typically make use of generic application engines provided by Symbian OS. UI platforms intended to support the installation of third party applications written in native C++ have to be supported by SDKs which define developer platforms based on that UI platform. There are currently four such UI platforms, with as a result four flavours of SDK:

Phone manufacturers build their phone based on a particular UI platform, licensing or writing for themselves any essential phone software or device drivers required and any other custom software they wish to bundle with their phone. To target a particular Symbian OS phone, the independent software developer needs to know which developer platform (or SDK) is appropriate. This can be ascertained from the Symbian Developer Network web site. This information does not in itself define the phone's software capabilities. But since the further system software which has to be provided to build a phone typically does not have an application-level API or else doesn't make such an API public, such changes will usually not be of particular significance for the developer.

System Definition

This is not however the whole story. In practice it has proved necessary to allow some leeway for Symbian OS licensees to modify, omit or replace Symbian OS system software in a UI platform. Further the same can happen to the UI platform software when it is incorporated into a phone. Changes or omissions in relation to Symbian OS software components designed for deployment on Symbian OS phones are controlled by a categorisation scheme whereby all such software is categorised under one of the following heads, depending on how core the software component is:

These allow licensees varying degrees of flexibility, as is explained in Symbian OS System Definition. In that paper can also be found information about the extent to which each of the Symbian OS phones released thus far based on a UI platform has exercised this flexibility incorporating changes which affect the availability of published Symbian OS APIs. As it turns out licensees' policies in this regard are driven mainly by a desire maximally to reuse Symbian OS system software components where possible. The constraints associated with the categorisation seldom come to bear.

No similar policy has been published in relation to reuse of UI platform software in phones, but in practice any differences between phones and their associated SDKs are fairly clear and predictable in terms of the API set made available to third party developers. Further details about such differences are best obtained from licensees' developer support Web sites.

In the present paper we shall build on the information presented in Symbian OS System Definition. This latter paper should be seen as a complement to this one. It provides a high level statement of which system definition components belong to each of the above system definition categories:

We shall provide here a much more detailed breakdown of each of these system definition components into lower-level system components. For each system component we shall indicate also the executables it is composed of. In terms of Table 3, we will be filling out the bottom two rows.

We will show at the same time how the composition of each system component and system definition component has changed between OS releases from version 6.0 to the current version 8.0. For each system component we also clarify the accessibility of the associated API. There are three levels of accessibility:

Notice that components associated with Symbian's Java implementation have not been included below. Since this provides no public API for native apps, it is immaterial to the question addressed here about public API support for native development.

It will be seen that the information below, taken together with that readily available in each edition of the Symbian Developer Library concerning which executable exports each public API, it becomes possible to associate each public API with a unique system definition component. Further, with reference to the Symbian OS System Definition paper, it can be ascertained which of the currently available Symbian OS phones support each API. Such information should be of considerable help to developers targeting multiple Symbian OS phones.

System Categorisation

Common Symbian

ETEL server
UIKON
Application utilities
Kernel
File server
User libraries
ESOCK server
TCP/IP
C32 server
Window server
INSOCK
TLS
Mbuf manager
Root server

Common Replaceable

ont/bitmap server
Screen drivers

Optional Symbian

Calendar engine
vCard and vCal
Contacts engine
Database engine
GSM SMS Stack
Help
Task scheduler
Bio Messaging
Internet mail MTM
Messaging Engine
HTTP Client
Internet Protocols
SyncML
FORM Layout engine
Store
Bluetooth® wireless technology
COMMS logging
IrDA
Cryptography library
Comms channels

Optional Replaceable

Fax MTM
Onboard converters
Other app engines
Wserv plugin
On-board connectivity
PC Connectivity Toolkit
Alarm/World Server
Locales
Logging engine
System agent
MMS
WAP-browser engine
WAP Stack
Browsing Framework
Application Level Internet Protocols
Data-type recognisers
Code converters
Grid layout engine
Printer drivers
View server
Power
C standard library
Comms database
Media server
Multimedia
Comms utilities
Networking options
FTP, Telnet
Security
Content handling framework

ETEL server

   
Component Libraries Comment API access
Telephony server etel.dll, faxcli.dll, faxsvr.dll   public
Telephony server (gsm ext.) gsmbas.dll, gsmadv.dll until v6.1 partner only
Telephony server (gprs ext.) etelgprs.dll v6.1 only partner only
Third party telephony API etel3rdparty.dll (enhanced from 8.0) from v7.0 public
Telephony server API extensions for multimode etelmm.dll from v7.0 partner only
Telephony packet management etelpckt.dll from v7.0 partner only
Telephony server API extensions for SIM application toolkit etelsat.dll from v6.1 public
Phone book synchronisation phbksyncplugin.dll, phbksyncsvr.dll from v7.0 public

Fax MTM      
Component Libraries Comment API access
Fax encoding and compression routines faxio.dll   public
Fax display faxstrm.dll   public

Calendar engine      
Component Libraries Comment API access
Agenda application engine agnmodel.dll   public
vCard/vCal convertors versit.dll, vcard.dll, vcal.dll, rversit.mdl, agnversit.dll from v7.0s public

vCard and vCal      
Component Libraries Comment API access
vCard/vCal convertors versit.dll, vcard.dll, vcal.dll, rversit.mdl until v7.0 public

Contacts engine      
Component Libraries Comment API access
Contacts application engine cntmodel.dll, cntphone.dll, cntsrv.exe, cntvcard.dll, cntview.dll+b46   public

Onboard converters      
Component Libraries Comment API access
Converter between Symbian OS Word and plain text txtword.cnv   public

Database engine      
Component Libraries Comment API access
Database application engine damodl.dll   public
Database server (dbms) edbms.dll edbsrv.exe   public

Other app engines      
Component Libraries Comment API access
Sheet application engine sheng.dll   public
Word application engine wpeng.dll   public

UIKON      
Component Libraries Comment API access
Application architecture apfile.dll, apgrfx.dll, apparc.dll, apserv.dll, apsexe.dll, recapp.rdl recexe.rdl   public
UI framework (LAF policy-free) apprun.exe, econseik.dll, eikbackupsrv.dll, eikcoctl.dll, eikcore.dll, eikshtsrv.dll, eiksrv.dll, eiksrvc.dll, eiksrvs.exe, uikinit.dll   public
UI Control framework cone.dll   public
UI Graphics utilities egul.dll   public
MIME recognisers apmime.dll, recapp2.mdl, rectxt.mdl, recweb.mdl   public
input methods (front end processor framework) fepbase.dll   public

Wserv plugin      
Component Libraries Comment API access
Bitmap animation utility (window server plug-in) bmpanim.dll, bmpansrv.dll   public
Animated clock support (window server plug-in) clock.dll, clocka.dll   public

On-board connectivity      
Component Libraries Comment API access
Agenda engine plugin specific to PC Synchronisation asfilter.dll until v7.0 partner only
IR Messaging plug-in irc.dll, irobutil.dll, irs.dll until v7.0 partner only
Email synchronisation Messaging plug-in sync.dll, syns.dll until v7.0 partner only
Broadcast server brdcst.dll brdsrv.exe until v7.0 partner only
PLP stack plp.prt, plpcli.dll, plpconfig.dll, plpexe.exe, plplog.dll, plpremlink.dll, plprfs.rsy, plpsvr.dll, rpcs.rsy until v7.0 partner only
Machine and drive information retrieval plpvariant.dll until v7.0 partner only
Symbian Connect plug-ins that run on the Symbian OS phone (v6.0) agnapi.dll, agndasvr.rsy, agnsynca.dll, clipsvr.rsy, ecbrdcst.rsy, eccecsvr.rsy, emsync.dll, epoccap.rsy, gencserv.rsy, plplpt.csy, syncaid.dll, wprt.rsy v6.0 only partner only
Symbian Connect plug-ins that run on the Symbian OS phone agnapi.dll, agndasvr.cs, agnsynca.dll, clipsvr.cs, ecbrdcst.cs, eccecsvr.cs, emsync.dll, epoccap.cs, gencserv.cs, rfs.cs, rpcs.cs, scrfs.cs, syncaid.dll from v6.1 until v7.0 partner only
mRouter transport layer connectivity backuppro.dll, contpro.dll, ectcpadapter.dll, iserverarc.dll, iserverarcexe.exe, mrouteragent.agt, mrouterclient.dll, mstreamlegacy.dll, mstreamman.dll, mstreamtypecore.dll, mtextutils.dll, tcplistener.dll from v6.1 until v7.0 partner only

PC Connectivity Toolkit      
Component Libraries Comment API access
Agenda engine plugin specific to PC Synchronisation asfilter.dll from v7.0s partner only
Email synchronisation messaging plug-in sync.dll, syns.dll from v7.0s partner only
Broadcast server brdcst.dll brdsrv.exe from v7.0s partner only
PLP stack plp.prt, plpcli.dll, plpconfig.dll, plpexe.exe, plplog.dll, plpremlink.dll, plprfs.rsy, plpsvr.dll, rpcs.rsy from v7.0s partner only
Machine and drive information retrieval plpvariant.dll from v7.0s partner only
OBEX Client MTM btcmtm.dll, btsmtm.dll, irc.dll, irs.dll, obexclientmtm.dll, obexmtmutil.dll, obexservermtm.dll from v7.0s partner only
Symbian Connect Plug-ins that run on the Symbian OS phone agnapi.dll, agndasvr.cs, agnsynca.dll, backuppro.dll, clipsvr.cs, contpro.dll, ecbrdcst.cs, eccecsvr.cs, emsync.dll, epoccap.cs, gencserv.cs, rfs.cs, rpcs.cs, scrfs.cs, syncaid.dll from v7.0s partner only
MRouter transport layer connectivity ectcpadapter.dll, iserverarc.dll, iserverarcexe.exe, mrouteragent.agt, mrouterclient.dll, mstreamlegacy.dll, mstreamman.dll, mstreamtypecore.dll, mtextutils.dll, tcplistener.dll from v7.0s partner only

GSM SMS Stack      
Component Libraries Comment API access
SMS stack - GSM short Message Service protocol gsmu.dll, smsprot.prt, smsu.dll, wapprot.prt   public

Alarm/World Server      
Component Libraries Comment API access
Alarm/World server ealwl.dll, ealwls.dll, ealwls.exe, ealm.dll, ealm.exe until v6.1 public
Alarm server alarmclient.dll, alarmserver.exe, alarmshared.dll, consolealarmalertserver.dll from v7.0 public
World server worldclient.dll, worldserver.exe from v7.0 public

Locales      
Component Libraries Comment API access
Calendar conversion ccon.dll   public
E32 localization elocl.01, elocl.02, elocl.03, elocl.04, elocl.05, elocl.10, elocl.18, elocl.19, elocl.29, elocl.31, elocl.32, elocl.sc   none
Number conversion numberconversion.dll from v7.0s public

Help      
Component Libraries Comment API access
Help application engine hlpmodel.dll   public

Logging engine      
Component Libraries Comment API access
Logging engine logcli.dll, logstub.dll, logwrap.dll until v7.0 public

Task scheduler      
Component Libraries Comment API access
Task Scheduler schexe.exe, schsvr.dll until v7.0 public

System agent      
Component Libraries Comment API access
System agent (mail notification service, etc.) indicatorwatcher.dll, sawatcherbase.dll, signalstrengthwatcher.dll, sysagt.dll, sysagx.exe, sysamob.exe   public
Logging engine logcli.dll, logserv.exe, logstub.dll, logwatcher.dll, logwrap.dll from v7.0s public

Bio Messaging      
Component Libraries Comment API access
Smart' messaging bifu.dll, bioc.dll, biodb.dll, bios.dll, biowatcher.dll, biut.dll, cbcp.dll, enp.dll, gfp.dll, iacp.dll, nbswatcher.dll, wapp.dll, wapwatcher.dll   public

Internet Mail MTM      
Component Libraries Comment API access
IMAP4 server imps.dll   partner only

MMS      
Component Libraries Comment API access
Multimedia messaging mmsapphandler.dll mmsclientmtm.dll mmscodec.dll mmsindhandler.dll mmss.dll mmsutils.dll from v7.0 public
Multimedia messaging (ext.) smiltranslator.dll v7.0 only public
Generic XML parser and SMIL DTD smildtd.dll, xmldom.dll, xmlparser.dll from v7.0s public

Messaging engine      
Component Libraries Comment API access
Messaging engine and services autosend.exe, faxprnt2.pdl, faxs.dll, faxwatcher.dll, fxcm.dll, imcm.dll, imut.dll, msexe.exe, msgs.dll, msgurlrec.mdl, mtur.dll, pops.dll, schsend.dll, schsendexe.exe, send.dll, smcm.dll, smss.dll, smts.dll, watcher.exe   public
Task scheduler schexe.exe, schsvr.dll from v7.0s public

WAP-browser engine      
Component Libraries Comment API access
WAP engine parsers and utilities bnf.dll, dtdmdl.dll, recwap.mdl, wnode.dll, wutil.dll   public
WAP push pushapphandler.dll, pushcontenthandler.dll, pushsecurity.dll, pushwatcher.dll, wappushmtmclientserver.dll, wappushutils.dll from v6.1 partner only
  miscpushmsgutils.dll, pushmsgentry.dll, sislpushmsgutils.dll, sislcontenthandlers.dll from v8.0 partner only
WAP push support httpresponse.dll, wbxmllib.dll, xmlelemt.dll, xmllib.dll from v6.1 partner only

WAP Stack      
Component Libraries Comment API access
WAP message wapmsg.dll, wapmsgcli.dll from v7.0 public
WAP stack wapstack.dll, capcodec.dll, wapstdlib.dll, wapstkcli.dll, wapstksrv.exe, eapi.exe   public

Browsing Framework      
Component Libraries Comment API access
Plug-in framework server ecom.dll ecomserver.exe from v7.0 public

HTTP client      
Component Libraries Comment API access
HTTP support http.dll, httptcphnd.dll, httptextprt.dll, nwsswsptrhnd.dll, tfcorefilters.dll, wspprotocolhandler.dll v7.0 only public

Internet protocols      
Component Libraries Comment API access
Internet client utilities inetprotutil.dll v7.0 only public

SyncML      
Component Libraries Comment API access
SyncML client sml.dll, smlagendadba.dll, smlchangefinder.dll, smlcontactsdba.dll, smlcontroller.dll, smlengine.dll, smlhttpbase.dll, smlhttpspi.dll, smltoolkitif.dll, smlutils.dll from v7.0 until v7.0s public
SyncML client (inc. device management) devmancli.dll, devmancmdmgr.dll, devmanplugins.dll, dmadapter.dll, dmagent.exe, smlagendadba.dll, smlbtobex.dll, smlclient.dll, smlcontactsdba.dll, smldataprovider.dll, smldatasession.dll, smldatastoreproxies.dll, smldmpushmsgparser.dll, smldspushmsgparser.dll, smlengine.dll, smlhttp.dll, smlhttpbase.dll, smlirobex.dll, smllogger.dll, smlobexbase.dll, smlppbparser.dll, smlpushmsgproxy.dll, smlshared.dll, smlsyncagent.exe, smlsyncagentdsadaptor.dll, smlsyncdatastore.dll, smlsyncenginedmadaptor.dll, smlsyncenginedsadaptor.dll, smlusbobex.dll, smlwappushplugin.dll, smlwpbparser.dll, smlwsp.dll, smlxmltoolkit.dll from v8.0 public

Application level Internet protocols    
Component Libraries Comment API access
HTTP support http.dll, httptcphnd.dll, httptextprt.dll, nwsswsptrhnd.dll, tfcorefilters.dll, wspprotocolhandler.dll from v7.0s public
Internet client utilities inetprotutil.dll from v7.0s public

Data-type recognisers      
Component Libraries Comment API access
Data-type recognisers ebookmarkrec.mdl weburlrec.mdl from v7.0 none

Code converters      
Component Libraries Comment API access
HTML to Symbian OS rich text converter chtmltocrtconverter.cnv from v7.0 none
File/data converter framework conarc.dll   public
Character conversion for Unicode etc. big5.cpl, big5_shared.dll, charconv.dll, convnames.dll, convutils.dll, eucjp_packed.cpl, gb12345.cpl, gb2312.cpl, gb2312_shared.dll, gbk.cpl, gbk_shared.dll, hz.cpl, iso2022jp.cpl, iso2022jp1.cpl, iso885910.cpl, iso885913.cpl, iso885914.cpl, iso885915.cpl, iso88592.cpl, iso88593.cpl, iso88594.cpl, iso88595.cpl, iso88596.cpl, iso88597.cpl, iso88598.cpl, iso88599.cpl, jis.cpl, jisbase_shared.dll, jisx0201.dll, jisx0208.dll, jisx0212.dll, shiftjis.cpl, shiftjis_shared.dll   public

FORM layout engine      
Component Libraries Comment API access
Text formatting/layout services form.dll, form_and_etext_editor.dll tagma.dll, undo.dll   public
Text storage and handling etext.dll, field.dll   public

Grid layout engine      
Component Libraries Comment API access
Simple grid layout engine grid.dll   public

Printer drivers      
Component Libraries Comment API access
Printing services prev.dll print.dll   public
Printing support library pdrprt.dll, pdrstr.dll   partner only
Printer drivers canon.pdl, epson.pdl, general.pdl, pcl5.pdl    

View server      
Component Libraries Comment API access
View server viewcli.dll viewsrv.dll   public

Application utilities      
Component Libraries Comment API access
Application utilities bafl.dll   public
Application utilities (ext.) baksrv.dll, baksrvs.exe from v7.0 partner only

Kernel      
Component Libraries Comment API access
Kernel and User library ecomm.ldd, econs.dll, edev.lib, edisp.dll, efir.ldd, ehwa.ldd, ekern.exe, ektran.dll, elocl.dll, epbusp.dll, euser.dll, ewsrv.exe, medata.pdd, medint.pdd   public
Kernel and User library (ext.) eusbc.ldd, eusbcc.dll from v7.0  

File server      
Component Libraries Comment API access
File server e32strt.exe, efile.exe, efsrv.dll, elffs.fsy, elocal.fsy, eshell.exe   public
File server (ext.) ecomp.fsy, erofs.fsy   none

User libraries      
Component Libraries Comment API access
Hardware Abstraction Layer hal.dll   partner only

Power      
Component Libraries Comment API access
Power, memory and disk usage management powermgrcli.dll, shutdownsrv.dll, shutdownsrvs.exe   partner only

C standard library      
Component Libraries Comment API access
C standard library support estlib.dll, redircli.dll   public

Store      
Component Libraries Comment API access
Stream store estor.dll   public

Bluetooth® wireless technology      
Component Libraries Comment API access
Bluetooth® wireless technology stack and communications Bluetooth.dll, bt.prt, btcomm.csy, btdevice.dll, btextnotifiers.dll, btmanclient.dll, btmanserver.exe, btregistry.dll, hci.dll, hci_bcsp.dll, hci_h4.dll, hciproxy.dll, sdp.exe, sdpagent.dll, sdpdatabase.dll from v6.1 public
AVCTP client avctpclient.dll (EKA2 only) from v8.0 partner only

Comms database      
Component Libraries Comment API access
Comms configuration database commdb.dll   public

ESOCK server      
Component Libraries Comment API access
Sockets/Networking Server esock.dll   public
  esocksvr.dll from v7.0s partner only

COMMS logging      
Component Libraries Comment API access
Comms File Logger flogger.dll, flogsvr.exe   public

TCP/IP      
Component Libraries Comment API access
Network Interface Manager nifman.dll   public
Domain name daemon (for DNS) dnd.exe from v7.0 none
Interface to Symbian OS cryptography algorithms for ipsec eaysymb.prt from v7.0 none
IPv6 hook support inhook6.dll from v7.0 public
Security Architecture for IPv6 ipsec6.prt from v7.0 none
IPSec API ipsecapi.dll from v7.0 public
IPSec manager server API ipsecmanapi.dll from v7.0 partner only
IPSec manager server ipsecmanserver.exe from v7.0 none
Key management daemon kmdapi.dll, kmdserver.exe from v7.0 partner only
Private key encryption pkcs5.dll from v7.0 partner only
Scheduler scheduler.dll from v7.0s partner only
Security parser for policies, keys and ike secparser.dll from v7.0 partner only
TCP/IPv4 stack tcpip.prt until v7.0 none
TCP/IPv6-v4 stack tcpip6.prt from v7.0 none
UMTS umtsapi.dll, umtsif.dll from v7.0s public
QoS protocol framework pfqoslib.dll, qos.prt from v7.0s partner only
QoS framework API for applications qoslib.dll from v7.0s public

IrDA      
Component Libraries Comment API access
IrDA stack, obex, irtranp etc. ircomm.csy, irda.prt, irobex.dll, irtranp.dll   public

Media server      
Component Libraries Comment API access
Multimedia system services audioformats.mda, audiostream.mda, devimageformats.mda, esdrv.pdd, esound.ldd, generic.mda, gifformat.mda, gsm610.mda, imageformats.mda, mediaclient.dll, mediaclientaudio.dll, mediaclientaudiostream.dll, mediaclientimage.dll, mediaserver.dll, mediaserveraudio.dll, mediaserverjpeg.dll, mediaserverstub.exe, mediaservervideo.dll, recmda.mdl, sounddevice.mda until v7.0 public

Multimedia      
Component Libraries Comment API access
Multimedia Framework audiocodecs.dll, gsm610.dll, mediaclient.dll, mediaclientaudio.dll, mediaclientaudioinputstream.dll, mediaclientaudiostream.dll, mediaclientvideo.dll, midiclient.dll, midistandardcustomcommands.dll, mmfaudiocontroller.dll, mmfaudioinput.dll, mmfaudiooutput.dll, mmfaudiopolicy.exe, mmfaudiopolicyproxy.dll, mmfaudiotonecontroller.dll, mmfauformat.dll, mmfcontrollerframework.dll, mmfdevsound.dll, mmfrawformat.dll, mmfserverbaseclasses.dll, mmfstandardcustomcommands.dll, mmfstdsourceandsinkplugin.dll, mmfwavformat.dll, recmmf.mdl from v7.0s public
Image Conversion Library bitmaptransforms.dll, bmpcodec.dll, gifcodec.dll, icocodec.dll, imageconversion.dll, imageconversionresolver.dll, jpegcodec.dll, jpegyuvdecoder.dll, mbmcodec.dll, mediaclientimage.dll, otacodec.dll, pngcodec.dll, recicl.mdl, tiffcodec.dll, wbmpcodec.dll, wmfcodec.dll from v7.0s public
  gifscaler.dll from v8.0 public
Camera API [reference code and headers only] from v7.0s public
Speech recognition speechrecognitioncustomcommands.dll, speechrecognitiondata.dll, speechrecognitionutility.dll from v8.0 public
Speech recognition engine [headers only] from v8.0 public
Midi engine [headers only] from v8.0 public
Video engine devvideo.dll from v8.0 public
OpenGL ES [headers only] from v8.0 public

C32 server      
Component Libraries Comment API access
Comms server c32.dll, c32exe.exe, ecuart.csy   public
USB comms support ecacm.csy, usbman.dll from v7.0 partner only

Window server