Personal tools
You are here: Home Blog Mobile Technology - Where are we going? (Part 2)

Mobile Technology - Where are we going? (Part 2)

Posted by Bryan Hinton at Dec 07, 2009 02:05 PM |
Filed under:

iPhone™ OS is great!  Why? I explained that in the last post and also provided valuable links and resources.   If you are a developer on Mac™ OS X, Darwin, or iPhone OS, then here are some good starting points:

  1. Open Source Components that ship with Mac OS X 10.6.2 and their corresponding Open Source Projects  (src avail for dl/browse) - http://www.apple.com/opensource/
  2. Open Source Components that ship with Mac OS X 10.6.2, iPhone OS 3.1.2 and Developer Tools 3.2.1 (source avail for dl) Also browseable by prior versions - http://opensource.apple.com
G1/Android on Linux Journal

Image by ranti.junus via Flickr

On to Android...so what is it?  Android is an open-source mobile operating system.  It uses a modified Linux 2.6 Kernel - tuned for embedded devices.  To quote the Android Web site - "Android relies on Linux version 2.6 for core system services such as security, memory management, process management, network stack, and driver model. The kernel also acts as an abstraction layer between the hardware and the rest of the software stack."  (http://developer.android.com/guide/basics/what-is-android.html).

You may be asking, what is Linux and why is it relevant?  Linux (GNU/Linux) is a UNIX-like operating system that comes in many flavors or distributions. The distributions typically differ in how package (applications) distribution is handled. Oftentimes, a custom or stripped down kernel is shipped with the distribution.  There are over 600 GNU/Linux distributions. They run on a myriad of devices from embedded controllers to large scale grids and supercomputers.  To see where GNU/Linux fits in the evolution of the operating system, see the chart in my prior post.  GNU/Linux has been around a while - Linuz Torvalds coined the term in '91.  The GNU Project, created by Richard Stallman in 1983, had the goal of creating a complete Unix-compatible software system composed entirely of free software".  Hence came GNU/Linux.  You can read more here - http://www.gnu.org/.

In the early 90's, the GNU/Linux kernel began as an offshoot from SVR4 and the BSD line (see prior post).  The GNU/Linux process, thread, and memory model are well tested and very solid.

GNU Libtool 

Many GNU userland tools can also be found on GNU/Linux systems.

In 2005, Google aquired Android, Inc. and its employees. Android Inc. was a small mobile development company in Northern California. The terms of the deal were held behind closed doors.  After aquisition of Android Inc., Google continued development of the operating system.  Android actually runs on a modified version of the GNU/Linux Kernel and uses non GNU/Linux userland libraries.  Interesting, eh?  Guess they wanted to keep GNU/ out of userland - hence they opted for a BSD custom like userland. Certainly a great choice.    ;

As opposed to Objective-C, which developers use to write applications for the iPhone, Java is used for writing applications on Android devices.  Android provides libraries on top of the kernel for 2D and 3D rendering, type support, sqlite access, media, libc (actually called Bionic), etc.   While the Linux kernel provides memory management, process and threading support, etc., Google uses a byte-code interpreter (well, not exactly, but similar) called DalvikVM which transforms java class files into a second type of byte code format - .dex.  An Android application gets loaded into a single process and is allocated a DalvikVM instance. DavlikVM was chosen because of its memory/processor efficiency on embedded devices.

In 2007, Google created the open handset alliance with the following objective: "The Open Handset Alliance is a group of 47 technology and mobile companies who have come together to accelerate innovation in mobile and offer consumers a richer, less expensive, and better mobile experience. Together we have developed Android™, the first complete, open, and free mobile platform. We are committed to commercially deploy handsets and services using the Android Platform (http://www.openhandsetalliance.com)"

The list of member companies is huge including but not limited to, TI, NVidia, Quallcomm, Acer, Sprint, Toshiba, LG, etc.    Shortly thereafter, in 2008, Google released the Android source code under an Apache license.  This move attracted and will continue to attract top developers from all over the world who are comfortable with the Java programming language in a Linux type environment.

Google's initiative with the release of the Android source code and the formation of the Open Handset Alliance were huge moves. The Open Handset Alliance will aid its member companies with deploying the Android operating system on their respective devices.  In other words, we will see the Android operating system on many different brands of mobile phones.

By the end of 2009, there will be over 15 mobile devices with the Android operating system.  There are over 15,000 apps on the Android market (as of November 2009). There were 10,000 apps on the Android Market 2 months ago.  There are over 100,000 apps on the Apple app store (as of November 2009).  The Apple app store is 16 months old. There have been over 2 billion total downloads since inception. 

Android has a shot at getting there. The Android operating system is solid and it isn't going anywhere.  If you are interested in learning more, here are some good resources on the Internet.

Getting Started with Android Development

The GNU Operating System

Free Software Foundation

Open Handset Alliance

What is Android?

Dalvik Virtual Machine insights

Android Notes

Inside the Android Application Framework

For the technical readers, please note that this post was not meant to be a comprehensive review of Android and/or GNU/Linux.

Apple, the Apple logo, iPod, iPod touch, and iTunes are trademarks of Apple Inc., registered in the U.S. and other countries. iPhone is a trademark of Apple Inc. App Store is a service mark of Apple Inc.

Document Actions