Saturday, July 10, 2010

Difference between smartphone Operating Systems

Comparative study – Major smartphone Operating Systems

1) iPhone OS –

Pocket size version of the Mac OS X, was shrunk and redesigned to power the iPhone 3G. Embracing a smart user interface, thousands of apps, millions of downloads from app store and a revolutionizing user-experience. Apple doesn’t permit the use of its OS on third-party hardware.

AppStore– Developers after registering on the website can upload their applications onto App store for millions of users to download at the designated price. Apple takes a share of that price and gives the other share to the developers. Over 185,000 applications reside on App store at this moment and have already been downloaded more than 4 billion times.

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.

Presently XCode 3.1 is the development environment and the applications are written in Objective C (a variant of language C).

2) Symbian

Made Open Source by contributions from Nokia, NTT DoCoMo, Sony Ericsson and Symbian Ltd

Symbian has a microkernel architecture, which means that the minimum necessary is 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 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.

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.

3) webOS

Runs on Linux kernel with proprietary components developed by Palm.

Underneath the graphical user interface sits a software stack that has much in common with mainstream Linux distributions for desktop computers. webOS uses, among other components, the Linux kernel, Upstart, GStreamer as multimedia framework, libpurple for instant messaging, Simple DirectMedia Layer (SDL) for game programming, PulseAudio for audio management, and WebKit.Applications for webOS are written in JavaScript, HTML, AJAX, and some other common ‘web’ technologies, which is handled by WebKit, as well as C and C++. It supports streaming video in RTSP, H.263, and H.264 formats.

Palm publishes a webOS software development kit called Mojo which can be accessed from the launcher screen

4) BlackBerry OS

Proprietary software platform, created by Research In Motion, for BlackBerry phones.

The operating system provides multitasking 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.

5) Bada

Developed by Samsung Electronics.

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

6) Windows Mobile

The current version is called “Windows Mobile 6.5″. It 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. Additionally, third-party software development is available for Windows Mobile, and software can be purchased via the Windows Marketplace for Mobile.

Third-party software development is available for the Windows Phone operating system. There are 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 (a.k.a. “The Cloud”)

  • Windows Mobile Professional runs on ‘Windows Phones’ with touchscreens
  • Windows Mobile Standard runs on ‘Windows Phones’ with regular screens
  • Windows Mobile Classic which runs on ‘Windows Mobile Classic devices’

7) Android

Backed by Google, presently owned by Open Handset Alliance, Android is more than just an operating system. It is a software stack encompassing middleware and key applications and is based on a modified version of Linux Kernel.

The Android SDK includes debugger, libraries, a handset emulator, documentation, sample code, and tutorials.

Google promotes application development for Android based phones by having a dedicated team at their own end and also organizing developer competitions from time to time.

Google’s own participation in app development for Android platform – These applications include Google Voice, Sky Map, Finance, Maps Editor, Places Directory for their Local Search, Google Goggles that searches by image, Google Translate, Listen for podcasts and My Tracks.

Apart from these major OSs,there are many others that share smaller markets, viz., Ubuntu, Maemo etc.