Hello Friends,
Today we will discuss about "Palm OS".
Introduction
==========
* Palm OS is a compact operating system developed and licensed by PalmSource, Inc. for personal digital assistants (PDAs) manufactured by various licensees. It is designed to be easy-to-use and similar compared to desktop operating systems such as Microsoft Windows. Palm OS is combined with a suite of basic applications including an address book, clock, note pad, sync and security software.
* Palm OS was originally released in 1996.
* History
+ Palm OS was originally developed by Jeff Hawkins for use on the original Pilot PDA by US Robotics. Version 1.0 was present on the original Pilot 1000 and 5000 and version 2.0 was introduced with the PalmPilot Personal and Professional.
+ With the launch of the Palm III series version 3.0 of the OS was introduced. Incremental upgrades occurred with the release of versions 3.1, 3.3 and 3.5, adding support for color, multiple expansion ports, new processors and other various additions.
+ Version 4.0 was released with the m500 series, and later made available as an upgrade for older devices. This added a standard interface for external filesystem access (such as SD cards) and improved telephony libraries, security and UI improvements.
+ Version 5.0 was introduced with the Tungsten T and was the first version released to support ARM devices. Described as a stepping stone to full ARM support, Palm apps are run in an emulated environment called the Palm Application Compatibility Environment (PACE), allowing great compatibility with old programs.
+ Even with the additional overhead of PACE, Palm applications usually run faster on ARM devices than on previous generation hardware. New software can take advantage of the ARM processors with PNO (PACE Native objects), small units of ARM code, these are also sometimes referred to as 'ARMlets'.
+ It was also roughly this time when Palm began to separate its hardware and OS efforts, eventually becoming two companies, PalmSource, Inc. (OS) and palmOne (hardware, now named Palm, Inc.).
+ Further releases of Palm OS 5 have seen a standardised API for hi-res and dynamic input areas, along with a number of more minor improvements.
+ Palm OS 5.2 and 4.1.2 (and later) also feature Graffiti 2. This is based on Jot by CIC.
+ For several years PalmSource has been attempting to create and license a modern successor for Palm OS 5. Palm OS 6 was shipped to licensees in January 2004. It allowed ARM native applications along with improved multimedia support. However, no licensees used the system in any release devices, and it is now generally accepted as dead.
+ The sucessor is ALP (Access Linux Platform) being developed by Access (who bought PalmSource).
+ In February 2004, PalmSource introduced names for the Palm OS families in an attempt to make it clear that 5.x development would not stop while 6.x development was ongoing. Palm OS 5 became Palm OS Garnet, and Palm OS 6 became Palm OS Cobalt.
+ In September 2004 PalmSource released Palm OS Cobalt 6.1. The new OS features extended support for a variety of LCD panel resolutions, redesigned telephony components, one-handed navigation and extensive use of scalable fonts throughout applications.
+ In late 2004, PalmSource announced that future versions of the Palm OS will support running on top of a Linux kernel. PalmSource said this would be in addition to the custom kernel[4].
+ In May 2005 at the PalmSource 2005 developer conference, it was announced that PalmOne had acquired full rights to the Palm brand name. For a period of four years, PalmOne will grant certain rights to Palm trademarks to PalmSource and licensees.
+ Backtracking on their late 2004 announcement that the PalmOS version to run on the Linux kernel would be in addition to existing platforms, in June 2005 PalmSource announced it was halting all development efforts on any product not directly related to its future Linux based platform.
+ Any future work done on PalmOS 5, or Garnet, would have to be done by the OEM's using the operating system, such as Palm, Inc., which continues to tweak the platform released in 2002 well into 2006. No one had picked up a license to use PalmOS 6, or Cobalt, so it would appear that platform will never be released.
+ In September 2005, PalmSource announced that it was being acquired by ACCESS. Later that month, Palm announced a new Palm Treo 700w running Windows Mobile OS, signaling Palm's diversification into two OSes for their handhelds.
+ In February 2006, PalmSource announced ACCESS Linux Platform, "the latest evolution of Palm OS® for Linux." This announcement provided more details on the Palm OS for Linux effort, and a new name. As of 2006 it is not known if this name is intended as a complete replacement for the Palm OS name.
+ As of 2006, only unreleased smartphones have been seen running Cobalt.
How to develop on PalmOS Platform
===========================
* Palm OS Garnet applications are primarily coded in C/C++.
* Two compilers exist:
+ a commercial product, CodeWarrior Development Studio for Palm OS, CodeWarrior is criticized for being expensive and is no longer being developed, whereas PRC-Tools lacks several of CodeWarrior's features. and
+ an open source tool chain called prc-tools, based on an old version of gcc. A version of PRC-Tools is included in a free Palm OS Developer Suite (PODS).
* OnBoardC is a C compiler that runs on the Palm itself.
*Palm OS Cobalt applications are also coded in a variation of gcc, but the Cobalt compilers have fewer limitations.
* There are development tools available for Palm programming that do not require low-level programming in C/C++, such as CASL, AppForge Crossfire (which uses C#) and Handheld Basic or HB++ (which uses Visual Basic).
* A Java Run time Environment is also available for the Palm OS platform, however it itsn't shipped as standard on non-Treo handhelds, and has to be obtained separately, as a result it is less popular with developers in general.
Useful links
=========
* SDK Download: http://www.palmsource.com/
* PalmOS Forum: http://www.palmos.com/dev/support/forums/
Coming up
========
* I will Post Some more posts on Palm OS in coming days.
Do write comments about this post or write to me at [skumar.brewdev@yahoo.com]
Thanks.
Sunil Kumar
Saturday, August 12, 2006
Hello Friends,
Today we will discuss about "Symbian OS".
Introduction
==========
* 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 and runs exclusively on ARM processors.
* Symbian is currently owned by Ericsson, Panasonic, Siemens AG, Nokia, and Sony Ericsson. Whilst BenQ has acquired the mobile phone subsidiary of Siemens AG the Siemens AG stake in Symbian does not automatically pass to BenQ - this will need the approval of the Symbian Supervisory Board.
* History ( 1980 - 2006)
+ 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 a.k.a. Symbian OS v5. Psion Series 5mx, Series 7, Psion Revo, Psion Netbook, netPad, Ericsson MC218, and the Ericsson R380 were released in 1999 using ER5.
+ ER5u a.k.a. Symbian OS v5.1. 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. Notably, a number of never released Psion prototypes for next generation PDAs, including a Bluetooth Revo successor codenamed Conan were using ER5u.
+ 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. 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 6600, 7310) as well as several FOMA phones in Japan.
+ 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 real-time support but not allowing open application installation.
+ Symbian OS v9.0. This version was used for internal Symbian purposes only. It was de-productized in 2004.
+ 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.
+ A Symbian developer proclaims that porting from Symbian 8.x to Symbian 9.x is a more daunting process than Symbian says.
+ Symbian OS v9.1 released early 2005. 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. S60 3rd Edition phones have Symbian OS 9.1. Sony Ericsson is shipping the M600i based on Symbian OS 9.1 and should ship the P990 in Q3 2006.
+ Symbian OS v9.2 released Q1 2006. Support for Bluetooth 2.0 (was 1.2) and OMA Device Management 1.2 (was 1.1.2). S60 3rd Edition Feature Pack 1 phones have Symbian OS 9.2.
+ Symbian OS v9.3 released on 12 July 2006. Upgrades include native support for Wifi 802.11, HSDPA, and Vietnamese language support.
* 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.
* There are a number of smart phone 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 smart phones 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 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 flavor of C++ very specialized, 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 PersonalJava flavors of Java.
* 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 latter is not Open Source) are more debatable. Phone vendors and network operators like the customizability of Symbian OS relative to Windows. This customizability, 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.
* At its lowest level sit the base components of Symbian OS. This includes the kernel (EKA1 or EKA2), 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 file system 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 file systems on the device (each drive has a drive letter, and backslashes are used as the directory delimiter). Symbian OS supports various file system types including FAT32 and Symbian OS-specific NOR flash filing systems. The file system is generally not exposed to the user through the phone user interface.
* Immediately above base is 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, along with certain related servers (for example, a view server which controls transitions between different phone user interface screens). There's a lot of related graphics code too - such as a window server and a font and bitmap server.
* An application architecture provides for standard application types, embedding, and file and data recognition. There is 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 codec’s). 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.
* Symbian OS device manufacturers also get supplied with an example user interface layer called TechView. This looks very similar to the user interface from a Psion Series 5 personal organizer, so isn't particularly similar to any given phone user interface, but provides a basis to start customization. It is also the environment in which a lot of Symbian OS test code and example code runs.
How to develop on SymbianOS Platform
==============================
* There are multiple platforms, based upon Symbian OS, that provide an SDK for application developers wishing to target a Symbian OS device - the main ones being UIQ, Series 60, etc.
* Individual phone products, or families, often have SDKs or SDK extensions 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 Symbian OS version 8, the SDKs also included a version of the GCC compiler (a cross-compiler) required to build software to work on the device. Don’t worry It means that you can use other Commercial (Like ARM Realview)/ GNU with SDK.
* 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. In terms of SDKs, UIQ Technology now provides a simplified framework so that the single UIQ SDK forms the basis for developing on all UIQ 3 devices, such as the Sony Ericsson P990 and Sony Ericsson M600.
* 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. (In Symbian History)
* Visual Basic, VB.NET, and C# development for Symbian can be accomplished through AppForge Crossfire, a plugin for Microsoft Visual Studio.
* There's 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 techniques 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 is available.
* 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 or memory cards. 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). 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.
Useful links
=========
* SDK Download: http://www.symbian.com/
* Information: http://www.newlc.com/
* Symbian Forum: http://forum.newlc.com/
Coming up
========
* I will Post Some more posts on Symbian in coming days.
Do write comments about this post or write to me at [skumar.brewdev@yahoo.com]
Thanks.
Sunil Kumar
-------------------------------------------------
Today we will discuss about "Symbian OS".
Introduction
==========
* 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 and runs exclusively on ARM processors.
* Symbian is currently owned by Ericsson, Panasonic, Siemens AG, Nokia, and Sony Ericsson. Whilst BenQ has acquired the mobile phone subsidiary of Siemens AG the Siemens AG stake in Symbian does not automatically pass to BenQ - this will need the approval of the Symbian Supervisory Board.
* History ( 1980 - 2006)
+ 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 a.k.a. Symbian OS v5. Psion Series 5mx, Series 7, Psion Revo, Psion Netbook, netPad, Ericsson MC218, and the Ericsson R380 were released in 1999 using ER5.
+ ER5u a.k.a. Symbian OS v5.1. 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. Notably, a number of never released Psion prototypes for next generation PDAs, including a Bluetooth Revo successor codenamed Conan were using ER5u.
+ 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. 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 6600, 7310) as well as several FOMA phones in Japan.
+ 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 real-time support but not allowing open application installation.
+ Symbian OS v9.0. This version was used for internal Symbian purposes only. It was de-productized in 2004.
+ 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.
+ A Symbian developer proclaims that porting from Symbian 8.x to Symbian 9.x is a more daunting process than Symbian says.
+ Symbian OS v9.1 released early 2005. 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. S60 3rd Edition phones have Symbian OS 9.1. Sony Ericsson is shipping the M600i based on Symbian OS 9.1 and should ship the P990 in Q3 2006.
+ Symbian OS v9.2 released Q1 2006. Support for Bluetooth 2.0 (was 1.2) and OMA Device Management 1.2 (was 1.1.2). S60 3rd Edition Feature Pack 1 phones have Symbian OS 9.2.
+ Symbian OS v9.3 released on 12 July 2006. Upgrades include native support for Wifi 802.11, HSDPA, and Vietnamese language support.
* 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.
* There are a number of smart phone 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 smart phones 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 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 flavor of C++ very specialized, 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 PersonalJava flavors of Java.
* 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 latter is not Open Source) are more debatable. Phone vendors and network operators like the customizability of Symbian OS relative to Windows. This customizability, 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.
* At its lowest level sit the base components of Symbian OS. This includes the kernel (EKA1 or EKA2), 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 file system 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 file systems on the device (each drive has a drive letter, and backslashes are used as the directory delimiter). Symbian OS supports various file system types including FAT32 and Symbian OS-specific NOR flash filing systems. The file system is generally not exposed to the user through the phone user interface.
* Immediately above base is 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, along with certain related servers (for example, a view server which controls transitions between different phone user interface screens). There's a lot of related graphics code too - such as a window server and a font and bitmap server.
* An application architecture provides for standard application types, embedding, and file and data recognition. There is 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 codec’s). 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.
* Symbian OS device manufacturers also get supplied with an example user interface layer called TechView. This looks very similar to the user interface from a Psion Series 5 personal organizer, so isn't particularly similar to any given phone user interface, but provides a basis to start customization. It is also the environment in which a lot of Symbian OS test code and example code runs.
How to develop on SymbianOS Platform
==============================
* There are multiple platforms, based upon Symbian OS, that provide an SDK for application developers wishing to target a Symbian OS device - the main ones being UIQ, Series 60, etc.
* Individual phone products, or families, often have SDKs or SDK extensions 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 Symbian OS version 8, the SDKs also included a version of the GCC compiler (a cross-compiler) required to build software to work on the device. Don’t worry It means that you can use other Commercial (Like ARM Realview)/ GNU with SDK.
* 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. In terms of SDKs, UIQ Technology now provides a simplified framework so that the single UIQ SDK forms the basis for developing on all UIQ 3 devices, such as the Sony Ericsson P990 and Sony Ericsson M600.
* 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. (In Symbian History)
* Visual Basic, VB.NET, and C# development for Symbian can be accomplished through AppForge Crossfire, a plugin for Microsoft Visual Studio.
* There's 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 techniques 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 is available.
* 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 or memory cards. 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). 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.
Useful links
=========
* SDK Download: http://www.symbian.com/
* Information: http://www.newlc.com/
* Symbian Forum: http://forum.newlc.com/
Coming up
========
* I will Post Some more posts on Symbian in coming days.
Do write comments about this post or write to me at [skumar.brewdev@yahoo.com]
Thanks.
Sunil Kumar
-------------------------------------------------
Hello Friends,
Today we will discuss about "Mobile Application Platforms Lunch Dates".
Symbian OS - 1980 [Proved Old is Gold]
Palm OS -1996 [victim of Legal Issues]
J2ME - 1998 [Game developer choice]
Brew - January 2001. [New Bright Child]
Coming up
==========
* I will Post some more posts on all the above platforms in coming days.
Do write comments about this post or write to me at [skumar.brewdev@yahoo.com]
Thanks.
Sunil Kumar
Today we will discuss about "Mobile Application Platforms Lunch Dates".
Symbian OS - 1980 [Proved Old is Gold]
Palm OS -1996 [victim of Legal Issues]
J2ME - 1998 [Game developer choice]
Brew - January 2001. [New Bright Child]
Coming up
==========
* I will Post some more posts on all the above platforms in coming days.
Do write comments about this post or write to me at [skumar.brewdev@yahoo.com]
Thanks.
Sunil Kumar
Hello Friends,
Today we will discuss about "Tools to Developing Mobile applications".
Platform Name: BREW.
Language Used: C++.
API Set Used: BREW.
Provider of the API Set: Qualcomm
SDKs: BREW SDK 1.1, 2.0, 2,1 and 3.1
IDE: Visual Studio 2003 and Eclipse.
Compilers for Emulator Build: Visual Studio 2003 (Till now Visual Studio 2005 not supported)
Compilers for Device Build:
* ARM Development Suit (ADS / Real View).
* GNU ARM.
* Gnude.
* WinARM.
Source Code Version Control: VSS, CVS and SVN
Platform Name: Symbian (Series 60).
Language Used: C++.
API Set Used: Symbian.
Provider of the API Set: Symbian (Nokia)
SDKs: Series 60 v 1.2, 2.0, 2.1, 2.2, 3.0
IDE: Visual Studio 2003, Carbide.C++, Code Warrior, Borland C++ BuilderX and Eclipse.
Compilers for Emulator Build:
* Visual Studio 2003 (Till now Visual Studio 2005 not supported)
* Metrowerks C++ Compiler (bundled with IDE)
Compilers for Device Build:
* SDKs come with GCC Compiler for Device.
* ARM Development Suit (ADS / Real View).
* Sourcery G++.
Source Code Version Control: VSS, CVS and SVN
Platform Name: Symbian (UIQ).
Language Used: C++.
API Set Used: Symbian.
Provider of the API Set: Symbian (Sony Ericsson)
SDKs: UIQ 60 v 2.0, 2.1, 3.0
IDE: Visual Studio 2003, Carbide.C++, Code Warrior, Borland C++ BuilderX and Eclipse.
Compilers for Emulator Build:
* Visual Studio 2003 (Till now Visual Studio 2005 not supported)
* Metrowerks C++ Compiler (bundled with IDE)
Compilers for Device Build:
* SDKs come with GCC Compiler for Device.
* ARM Development Suit (ADS / Real View).
* Sourcery G++.
Source Code Version Control: VSS, CVS and SVN
Platform Name: J2ME.
Language Used : Java.
API Set Used: J2ME (CLDC/MIDP/IMP/CDC).
Provider of the API Set: Sun Microsystems.
SDKs: IMP 1.0, MIDP 1.0 and MIDP 2.0. (Mainly depends upon the Symbian Release)
IDE: NetBeans Mobility Pack, Sun Java Wireless Toolkit, Carbide.j and Eclipse.
Compilers for Emulator Build:
* Java Compiler
Compilers for Device Build:
* Java Development Kit.
Source Code Version Control: CVS.
Platform Name: Palm OS.
Language Used: C++.
API Set Used: Palm OS (Cobalt/Garnet/PACE).
Provider of the API Set: Palm Source.
SDKs: Core Palm OS SDK, Palm Desktop SDK, Conduit Developer Kit (CDT) etc
IDE: Code Warrior, Palm OS Developer Suite.
Compilers for Emulator Build:
* Palm OS Compiler and Linker
Compilers for Device Build:
* SDKs come with GCC Compiler for Device.
* ARM Development Suit (ADS / Real View).
* Sourcery G++.
Source Code Version Control: VSS, CVS and SVN
Platform Name: Windows Mobile / Win CE.
Language Used: C++ / VB / C# / VB.NET.
API Set Used: Windows Mobile.
Provider of the API Set: Microsoft.
SDKs: PocketPC 2002, Windows Mobile 2003, Windows Mobile 2003 Second Edition, Windows Mobile 5.0 and Photon
IDE: Visual Embedded C++, Visual Embedded VB, Visual Studio 2003 and Visual Studio 2005.
Compilers for Emulator Build:
* Visual Embedded Compiler and Linker
Compilers for Device Build:
* SDKs come with GCC Compiler for Device.
* ARM Development Suit (ADS / Real View).
* Sourcery G++.
Source Code Version Control: VSS, CVS and SVN
Next post on-wards we will discuss about some main Platform i worked on.
Thanks
Sunil Kumar
Today we will discuss about "Tools to Developing Mobile applications".
Platform Name: BREW.
Language Used: C++.
API Set Used: BREW.
Provider of the API Set: Qualcomm
SDKs: BREW SDK 1.1, 2.0, 2,1 and 3.1
IDE: Visual Studio 2003 and Eclipse.
Compilers for Emulator Build: Visual Studio 2003 (Till now Visual Studio 2005 not supported)
Compilers for Device Build:
* ARM Development Suit (ADS / Real View).
* GNU ARM.
* Gnude.
* WinARM.
Source Code Version Control: VSS, CVS and SVN
Platform Name: Symbian (Series 60).
Language Used: C++.
API Set Used: Symbian.
Provider of the API Set: Symbian (Nokia)
SDKs: Series 60 v 1.2, 2.0, 2.1, 2.2, 3.0
IDE: Visual Studio 2003, Carbide.C++, Code Warrior, Borland C++ BuilderX and Eclipse.
Compilers for Emulator Build:
* Visual Studio 2003 (Till now Visual Studio 2005 not supported)
* Metrowerks C++ Compiler (bundled with IDE)
Compilers for Device Build:
* SDKs come with GCC Compiler for Device.
* ARM Development Suit (ADS / Real View).
* Sourcery G++.
Source Code Version Control: VSS, CVS and SVN
Platform Name: Symbian (UIQ).
Language Used: C++.
API Set Used: Symbian.
Provider of the API Set: Symbian (Sony Ericsson)
SDKs: UIQ 60 v 2.0, 2.1, 3.0
IDE: Visual Studio 2003, Carbide.C++, Code Warrior, Borland C++ BuilderX and Eclipse.
Compilers for Emulator Build:
* Visual Studio 2003 (Till now Visual Studio 2005 not supported)
* Metrowerks C++ Compiler (bundled with IDE)
Compilers for Device Build:
* SDKs come with GCC Compiler for Device.
* ARM Development Suit (ADS / Real View).
* Sourcery G++.
Source Code Version Control: VSS, CVS and SVN
Platform Name: J2ME.
Language Used : Java.
API Set Used: J2ME (CLDC/MIDP/IMP/CDC).
Provider of the API Set: Sun Microsystems.
SDKs: IMP 1.0, MIDP 1.0 and MIDP 2.0. (Mainly depends upon the Symbian Release)
IDE: NetBeans Mobility Pack, Sun Java Wireless Toolkit, Carbide.j and Eclipse.
Compilers for Emulator Build:
* Java Compiler
Compilers for Device Build:
* Java Development Kit.
Source Code Version Control: CVS.
Platform Name: Palm OS.
Language Used: C++.
API Set Used: Palm OS (Cobalt/Garnet/PACE).
Provider of the API Set: Palm Source.
SDKs: Core Palm OS SDK, Palm Desktop SDK, Conduit Developer Kit (CDT) etc
IDE: Code Warrior, Palm OS Developer Suite.
Compilers for Emulator Build:
* Palm OS Compiler and Linker
Compilers for Device Build:
* SDKs come with GCC Compiler for Device.
* ARM Development Suit (ADS / Real View).
* Sourcery G++.
Source Code Version Control: VSS, CVS and SVN
Platform Name: Windows Mobile / Win CE.
Language Used: C++ / VB / C# / VB.NET.
API Set Used: Windows Mobile.
Provider of the API Set: Microsoft.
SDKs: PocketPC 2002, Windows Mobile 2003, Windows Mobile 2003 Second Edition, Windows Mobile 5.0 and Photon
IDE: Visual Embedded C++, Visual Embedded VB, Visual Studio 2003 and Visual Studio 2005.
Compilers for Emulator Build:
* Visual Embedded Compiler and Linker
Compilers for Device Build:
* SDKs come with GCC Compiler for Device.
* ARM Development Suit (ADS / Real View).
* Sourcery G++.
Source Code Version Control: VSS, CVS and SVN
Next post on-wards we will discuss about some main Platform i worked on.
Thanks
Sunil Kumar
Subscribe to:
Posts (Atom)
