Although the user interface is different and the Android apps represent a different approach to applications, Android is still just another distribution of Linux. What makes Android different is that it was built for mobile devices. Android is driven by the Linux kernel, and most of the GNU utilities are present. The normal user never sees the engine that drives Android, because they do not have root access. More importantly, as a distribution of Linux, Android is part of the open source community.
Android is GNU/Linux
The name Linux does not refer to all the application software and utilities. Linux only refers to the kernel. The kernel is the software that manages requests from devices and requests from applications. In 1991, Linus Torvalds, while a student at Helsinki University of Technology, released the first version of Linux. In his October 1991 announcement on Usenet, he asked for feedback from others, about his project. This lead to the formation of the Linux community that today includes over a thousand developers from around the world.
The kernel is just part of an operating system. In 1993, the first Linux distributions Slackware and Debian, incorporated the Unix-like utilities from the GNU Project , which is part of the Free Software Foundation . Richard Stallman, the head of the project, started the GNU Project to create an open source version of Unix. The marriage of the two communities brought about the name GNU/Linux. Android uses the Linux kernel, and Android uses the GNU utilities. Thus, Android is part of the GNU/Linux community.
The General Public License (GPL)
As with all software, there is a software license. GNU/Linux is licensed under the GNU GPL (General Public License) . GPL means that the software is free, and that the source is available for free. The term “non-free” simply means that the source code for the software is proprietary. There may be a charge for the software, but much of the software is available at no cost.
Since the Linux kernel and GNU utilities are under the GPL, the source code for Android is available for free from Android Open Source Project (AOSP) community. The Android Linux kernel is a fork of the stock version 2.6.3x from the Linux kernel site. For example, Android version 2.3.7 (Gingerbread) uses version 2.6.32 of the stock Linux kernel, as a base. In fact, if you look through the stock kernel code, you will find Android device drivers. Since the Linux kernel is under GPL, every company that modifies the kernel must make their version of the source code available to the public. The company may still have proprietary (non-free) drivers, for which the source code is not available. The Linux community has a process for migrating changes from a developer to the AOSP source, and then to the stock kernel.
The Android Community
Android, Inc. began the development of Android in 2003. In 2005, Google, Inc. acquired Android, Inc. as a wholly owned subsidiary. Google then formed the Open Handset Alliance (OHA) to set open standards for mobile devices. Currently, there are 84 technology and mobile companies that are members of OHA. Google formally announced both Android and OHA in 2007.
Led by Google, AOSP is a community of Android developers. The community is not limited to members of OHA. Rather, the community is open to any individual, or community, that wishes to participate in the growth of Android. AOSP directs the Android Compatibility Program . All applications on the Android Market must comply with the ACP guidelines. Besides the communities already discussed, there are many other communities involved in Android. These communities include the following:
- xda-developers is perhaps the largest forum for Android developers
- CyanogenMod works on aftermarket Android firmware for cellphones
- Google Android Developers group
- Android Developers Google+ page
When you combine all the communities involved in Android, you have a GNU/Linux distribution. There are over 250 distributions of GNU/Linux, including such popular distributions as Linux Mint, Ubuntu, openSUSE, and Fedora. Enterprise distributions include SLED (SUSE Linux Enterprise Edition) and RHEL (Red Hat Enterprise Linux). By the end of June 2012, there were over 400 million activated Android devices, with another 1 million being activated every day. Android currently holds 59% of the market for mobile devices. Without doubt, Android is the largest GNU/Linux distribution.
Android Release Names
GNU/Linux distributions have a tradition of having a code name for each released version. Starting with version 1.5, Android joined this tradition. References to an Android release often reference the code name, or the version, but not both together. The following table dispels this mystery, and provides a clues as to the code name convention:
|Cupcake||v1.5||Added supported for third-party virtual keyboards, widgets, automatic Bluetooth pairing, Bluetooth stereo, video recording in MPEG-4 and 3GP formats, and animated screen transitions.|
|Donut||v1.6||Included an enhanced the voice and text search, multilingual speech synthesis, integrated gallery, camera, and camcorder, WVGA screen resolutions, expanded gesture framework.|
|Eclair||v2.0.x/2.1||Included expanded account sync, tap contact photo for calls and text messages, expanded camera support (flash, digital zoom, scene mode, white balance), support multi-touch events, ability to have live wall papers.|
|Froyo||v2.2.x||Included enhanced performance, support for Android Cloud to Device Messaging (C2DM), USB tethering, WiFi hotspot, Bluetooth enabled car devices, Adobe Flash, and extra high Pixel Per Inch (PPI) screens.|
|Gingerbread||v2.3.x||Refined the User Interface (UI), improved soft keyboard, added support for SIP (Session Initiation Protocol) for VoIP (Voice over Internet Protocol), and Near Field Communications (NFC).|
|Honeycomb||v3.x||Release was strictly for Android tablets to support larger screen devices. Added features for dual-core processors, hardware accelerated graphics, full system encryption, USB support for cameras and camcorders, loading multi-media files directly SD card, and support for the Huawei MediaPad.|
|Ice Cream Sandwich||v4.0.x||Brought the Honeycomb features to smartphones. Added support for facial recognition unlock, network data usage monitoring and control, unified social network contacts, photography enhancements, file sharing over NFC, and an enhanced User Interface.
|Jelly Bean||v4.1.x||This release is packed with new features: Use Vsync across the Android framework, triple buffering in graphics pipeline, enhance access ability features, bi-directional language support, user installable keyboards, expanded notifications, ability to control notifications by applications, automatic re-arrangement of apps and widgets, Bluetooth data transfer for Android Beam, offline voice dictation, and improved voice search.|
If you haven’t already guessed the code name convention, they are all names of desserts. It looks like someone read Linus Torvalds autobiography “Just for Fun.” Why begin with Cupcake? Because there were two previous releases of Android. How many of you knew that Froyo is another name for Frozen Yogurt? When the next version of Android is released, you will be looking for the next dessert name. If you immediately thought of Key Lime Pie, you are correct. I wonder if they will continue the alphabetical sequence? What dessert names begin with the letter “L?”