The mobile industry is being increasing cluttered with jargon, says Anuj Gupta, our latest guest blogger for mobileapptesting.com. In this post, Anuj clears the air with an essential primer for anyone remotely involved in the mobile testing space, including discussions on the most popular operating systems and application platforms for iPhone, Blackberry, Windows mobile and more.
Mobile devices are evolving into increasingly sophisticated general purpose computers and this has led to the development of a variety of platforms and operating systems in the mobile space. Today, the operating system lying inside your mobile device is equally important as the device manufacturer (OEM). The various features, GUI, processing speed, and most importantly, the applications available for your device will depend greatly on the underlying OS.
Unfortunately, industry jargon has cluttered our understanding of this emerging technology. It is my intention to clear the air on a few of these misunderstandings. Here goes….
Manufacturers launch devices based on various user segments, and giving rise to a number of Mobile OS and Application platforms. A mobile OS manages the hardware and software resources of a mobile device, similar to that of a computer OS. Some OS platforms cover the entire range of the software stack, while others may only include the lower levels (typically the kernel and middleware layers) and rely on additional software platforms to provide a user interface framework.
Today’s phones are expected to run a growing range of software such as internet browsers, navigation packages, games and music/video players. Application platforms are supposed to provide a ground for them. Application platforms are built over lower-level kernel operating systems (OS) such as Rex, Linux or compact real-time OS’s such as Nucleus. Software running on the device accesses platform resources through a set of application programming interfaces or APIs. Application development platforms, such as Brew, Symbian UIQ, Android, LIMO, ALP, Qtopia or WIPI provide programming resources for native and Java applications.
Mobile developers typically develop for multiple platforms to maximize their available market. This can be a difficult and time-consuming task as multiple platforms use different API calls for common OS operations and accessing OS resources such as accessing memory and files.
There is a variety of both the OS and the application platforms in the market. Obviously, some are more dominant than others. Here is a list of major mobile operating systems and Application platforms.
Mobile (Kernel) Operating Systems
The most common operating systems (OS) used in smartphones are:
Symbian OS from the Symbian Foundation
Symbian has the largest share in most markets worldwide, but lags behind other companies in the relatively small but highly visible North American market. It has been used by many major handset manufacturers, including BenQ, Fujitsu, LG, Mitsubishi, Motorola, Nokia, Samsung, Sharp, and Sony Ericsson. Prior to 2009, Symbian supported multiple user interfaces, i.e. UIQ from UIQ Technologies, S60 from Nokia, and MOAP from NTT DOCOMO. As part of the formation of the Symbian platform in 2009 these three UIs were merged into a single platform which is now fully open source. It has received some adverse press attention due to virus threats (namely Trojan horses).
The operating system consists of the kernel and middleware components of the software stack. The upper layers are supplied by application platforms like S60, UIQ, and MOAP.
Symbian has a “micro-kernel” architecture, which means that the minimum requirements are within the kernel to maximize robustness, availability and responsiveness. It contains a scheduler, memory management and device drivers, but other services like networking, telephony and file system 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.
RIM Blackberry OS
This is a proprietary software platform, created by Research In Motion, for their Black Berry phones. OS is focused on easy operation and was originally designed for business.
The Blackberry operating system provides multi-tasking and supports specialized input devices that have been adopted by RIM for use in its handhelds, particularly the trackwheel, trackball, and most recently, the trackpad and touchscreen.
The BlackBerry platform is perhaps best known for its native support for corporate email, through MIDP 1.0 and, more recently, a subset of MIDP 2.0, which and allows complete wireless activation and synchronization with Microsoft Exchange, Lotus Domino, or Novell GroupWise email, calendar, tasks, notes, and contacts, when used in conjunction with BlackBerry Enterprise Server. The operating system also supports WAP 1.2. Recently it has seen a surge in third-party applications and has been improved to offer full multimedia support.
iPhone OS from Apple Inc.
The iPhone uses an operating system called iPhone OS, which is derived from Mac OS X. iPhone OS has four abstraction layers: the Core OS layer, the Core Services layer, the Media layer, and the Cocoa Touch layer. The operating system uses roughly 500 megabytes of the device’s storage. iPhone app store is the online market for downloading iPhone applications. Third party applications were not officially supported until the release of iPhone OS 2.0 on July 11th 2008.
Presently XCode 3.1 is the development environment and the applications are written in Objective C (a variant of language C).
Windows Mobile from Microsoft
Windows mobile is based on the Windows CE 5.2 kernel, and features a suite of basic applications developed using the Microsoft Windows API. It is designed to be somewhat similar to desktop versions of Windows, feature-wise and aesthetically. The current version is called “Windows Mobile 6.5″.
Third-party software development is available for this with several options for developers to use when deploying a mobile application. This includes writing native code with Visual C++, writing managed code that works with the .NET Compact Framework, or Server-side code that can be deployed using Internet Explorer Mobile or a mobile client on the user’s device. The .NET Compact Framework is actually a subset of the .NET Framework and hence shares many components with software development on desktop clients, application servers, and web servers which have the .NET Framework installed, thus integrating networked computing space called the cloud.
The two improved variants of this operating system, Windows Mobile 6 Professional (for touch screen devices) and Windows Mobile 6 Standard, were unveiled in February 2007. It has been criticized for having a user interface which is not optimized for touch input by fingers; instead, it is more usable with a stylus. However, unlike iPhone OS, it does support both touch screen and physical keyboard configurations. On February 15th, 2010 Microsoft unveiled its next-generation mobile OS, Windows Phone 7. The new mobile OS includes a completely new over-hauled UI called “Metro”. It includes full integration of Microsoft services such as Zune, Xbox Live and Bing.
Linux operating system
Linux is strongest in China where it is used by Motorola, and in Japan, used by DoCoMo. Rather than being a platform in its own right, Linux is used as a basis for a number of different platforms developed by several vendors, including Android, LiMo, Maemo, Openmoko and Qt Extended, which are mostly incompatible.PalmSource (now Access) is moving towards an interface running on Linux. Another platform based on Linux is being developed by Motorola, NEC, NTT DoCoMo, Panasonic, Samsung, and Vodafone.
Palm webOS from Palm Inc. and Palm OS/Garnet OS from Access Co.
Palm publishes a webOS software development kit called Mojo which can be accessed from the launcher screen
Bada from Samsung
The Bada operating system has a kernel configurable architecture, which allows the use of either the Linux kernel, or another Real-time operating system (RTOS) kernel. The Linux kernel is the preferred choice for smartphones, while RTOS is used for cheaper feature-phones, due to its smaller memory footprint.
It has a web browser based on the open-source WebKit, and also features Adobe Flash. Both WebKit and Flash can be embedded inside native Bada applications. Bada offers interactive mapping with Point of interest (POI) features, which can also be embedded inside native applications.
Bada supports various sensors, such as motion sensing, vibration control, face detection, accelerometer, magnetometer, tilt, and GPS, which can be incorporated into applications.
Native applications are developed in C++ with the Bada SDK, and the Eclipse based IDE. Bada can also run Java ME applications (MIDP profile).
The bada mobile phone operating system is still in development, and Samsung expects handsets to be available in the second half of 2010.The first device to run Bada is called ‘Wave’ and was unveiled to the public at Mobile World Congress 2010, Wave is a fully touch screen phone running the new mobile operating system.
MeeGo from Nokia and Intel
At the 2010 Mobile World Congress in Barcelona, Nokia and Intel both unveiled ‘MeeGo’ a brand new mobile operating system which would combine the best of Moblin and the best of Maemo to create a truly open-sourced experience for users across all devices.
Android from Google Inc.
Android was developed by Google Inc. Android is an Open Source, Linux-derived platform backed by Google, along with major hardware and software developers (such as Intel, HTC, ARM, and eBay, to name a few), that form the Open Handset Alliance. This OS, though very new, already has a cult following among programmers eager to develop apps for its flexible, Open Source, back end. Android promises to give developers access to every aspect of the phone’s operation. This lends many to foresee the promise of further growth for the Android platform.
Anuj is a Creative Writer, Marcom Consultant and a Technology enthusiast with 4+ years of experience in Mobile technologies and Advertising. He often describes himself as a Writer’s heart in an Engineer’s body. He undertakes various freelance assignments apart from his job as a marcom executive in an IT firm. Read more of his writings at http://www.techmodish.blogspot.com/.