Android and Linux – A Closer
Look at the Family Tree
The success of Android has driven it away from its Linux roots. At its core Android remains a Linux distribution, but the requirements of the smartphone market force Android to constantly evolve. With Android in such high demand what does the future hold for Linux? Where does Android go from here?
by Andrew Patterson, Mentor Graphics
The popularity of smartphones and tablets has brought the word “Android” into the lexicon of everyday life – the same is not true for Linux, or even the Apple iOS. Consumers are quick to associate Android with a smartphone, and that opens the floodgates for increased pressure to develop more Android apps. While these same consumers may not have heard of Linux, they should realize that a modified Linux kernel sits inside every Android smartphone. Linux is a very important and fast-evolving operating system in its own right, with a dedicated community of developers. So how are Linux and Android alike? How are they different? What does the future hold for these two operating platforms? A good starting point is to look at the origins and content of both operating systems.
The US-based company Android Inc. was founded in 2003, with a mission to develop new software for smartphones. This company was acquired by Google Inc. in 2005 for an undisclosed sum. Whatever the price, it looks to have been a very good investment. In 2007, the Open Handset Alliance, an organization set up by Google, together with phone makers and semiconductor vendors, announced the release of the “Android Operating System” specifically targeted at the mobile handset development community. The initial Android release (v1.5) called “Cupcake” – started a theme of deserts as release names. With the Honeycomb (v3.1), Google made its first tablet-specific operating system, and the Ice-Cream Sandwich (v4.0) combined phone and tablet operating systems into one platform. The popularity of Android has become one of the biggest technical consumer influences of our time, almost by stealth. For mobile consumer devices, tablets, and smart phones, Android is winning out as the dominant operating system. According to Gartner, in the second quarter of 2012 smartphones accounted for 37 percent of all mobile sales, up 43 percent over the same three-month period last year. At a recent Motorola press event, Google’s chairman, Eric Schmidt, reported that nearly 1.3 million Android smartphones and tablets are activated every day. On the operating system front, Android extended its lead as the world's single most popular mobile phone platform to 64 percent, while Apple's iOS holds about a 19 percent share of the world market.
The popularity of Android on smartphones has a lot to do with the different models available from a variety of manufacturers. It also has a lot to do with the vast array of third-party apps now available. According to AOL Tech, the download rate for Android apps in 2012 is 1.5 billion installs per month, with a total of nearly 20 billion installs to date.
Linux inside
At its core, an Android device uses the Linux kernel, but it's not the same kernel other Linux-based operating systems use. The architecture of Android consists of five main components: The Linux Kernel, Libraries, Android Runtime, Application Framework, and Applications. When Android was first released, it came with a complete software development environment which helped kick-start the development community. Until Android appeared, mobile phone development organizations mostly relied on expensive commercial software development tools – these had the guarantee of professional support and long-term availability.
The move to Android by many smartphone developers was understandably cautious at first – issues around licensing, ownership, control and defect remedy had historically made commercial organizations wary. With its strong suite of development tools, which included source code configuration management, integration with build and test process tools, and an Eclipse-based environment, Android allowed engineers to become extremely productive in a very short period of time.
The Android development environment also came with a built-in, graphics management environment which meant developers could quickly and easily develop their required user interface from a pre-defined function library. This environment provided low-level graphics tools such as canvases,
color filters, points, and rectangles that allowed a developer to manage and draw images directly onto the UI screen. This is why Android apps all have a similar “look and feel.”
Five years from the formation of the Open Handset Alliance, Android is everywhere, and the total number of apps available is about to exceed those available for iOS
(Figure 1
). Android apps are relatively easy to create and there are many engineers who are able to program in Java. Are these Android apps portable to other OS environments? In theory they should be with some rework on the graphical interface and operating system calls. Users of other operating systems have shown keen interest in running Android apps, and there are virtualization methods available to allow for some portability. In fact, OpenMobile World Wide Inc has announced a product called Android Compatibility Layer (ACL) which offers the ability to run Android apps on Microsoft Windows-based operating systems such as on Nokia’s latest smartphone.
A potential growth market for Android is domestic set-top boxes (STBs). Demand for digital set-top box products is rising globally, and the migration from standard-definition products to high-definition products in developed markets is fueling new growth after a dip in sales in 2011. The market for STBs faces significant challenges, as consumers are looking for combined cable, Internet, and satellite services into one unit. Linux and Android both make suitable operating systems for these more complex systems and have the necessary built-in services to support mixed peripherals and interfaces, as well as links out to cloud-based services.
Several manufacturers, instead of waiting for standard open source STB solutions from Google, have started work on their own solutions, and semiconductor manufacturers are responding with dedicated SoC platforms. One such product coming in at just $64 is from Chinese manufacturer Xiaomi. The STB pictured in Figure 2 has an operating system based on the Android 4.0 Ice Cream Sandwich release.
Linux continues to serve us well
If Android is dominant on smartphones, Linux has established itself as the defacto OS on the back-end server market. Today, 90 percent of all financial transactions on Wall Street are carried out on Linux servers. Linux powers the servers of popular websites like Amazon, Facebook, Google, and Twitter. Linux is the largest collaborative software development project of all time with over 8,000 developers having participated since 2005 – from 800 different companies. Because it is not owned by a single dominant company, the Linux name has not benefited from any marketing campaigns. But its popularity has grown steadily. The Facebook server now has over 1 billion users per month, and is built on an open source “LAMP” stack with a Linux operating system at its core.
The Linux OS in use today has quickly evolved into over 100
variants, aimed at commercial and private users and manufacturers. Some of the more popular variants include Mint, Debian, Ubuntu, and Mageia. According to Hub Pages (June, 2012) the most popular commercial Linux variant is Ubuntu, which holds true to the principles of free and open source software. The development of Ubuntu is led by a UK-based commercial distributor Canonical, the company claims that Ubuntu will ship in five percent of all PCs sold in 2013, a market currently dominated by Microsoft Windows. Progress on this front will help establish Linux as a mainstream business and consumer PC solution.
A variety of industry alliances have been established to help bring specific Linux variants to market. For example in the Automotive world, the GENIVI Alliance, comprising over 170 automotive manufacturers and suppliers has agreed to collaborate on devising a single base Linux operating system for in-vehicle infotainment (IVI) systems. GENIVI releases a new specification approximately every six months, and members such as Mentor Graphics, provide specification-compliant Linux distributions targeted at IVI system designers. Several automotive OEMs have GENIVI Linux-based Infotainment products in the design stages, and more are expected to move into production in the next two years.
Android is also highly applicable in automotive IVI system design – many of the features available in an Android smartphone or tablet are exactly those sought by infotainment systems users: navigation,
music player, Internet connectivity, voice activation, and more. Increasingly, car makers are hearing, “Make the car’s infotainment system look
and feel more like my smartphone.” In fact, new car buyers are using the IVI capabilities of a particular automobile as a determining factor on what vehicle to purchase. Using Android as an Infotainment operating system means that users immediately have a familiar user interface. Some manufacturers have already gone to market with Android-based Infotainment solutions, such as the new Renault R-Link product.
A Dual OS Existence?
Recent embedded architecture developments allow the Linux and Android operating systems to happily co-exist. For example, the Android operating system can be hosted on top of Linux in a Linux Container (Figure 3). The resources, access control, and security of the Android client are managed by the host Linux operating system. For system designers concerned about the security of Android, this represents a good way to offer Android app access, and keep other system functions on a standard Linux platform. Multicore system-on-chip (SoC) platforms make this architecture even more attractive, as there are sufficient resources for both Linux and Android domains to perform well simultaneously. The CPU resources can be shared, along with memory, graphics processing resources, and other peripherals. The output of the two domains can be recombined into a common HMI (Human Machine Interface) allowing the user to select functions from both domains.
Despite the strengths and subtle differences between these two very popular platforms, there are situations in which the two platforms play nice together in today’s marketplace. Android is already dominating the smartphone market, and is now seen spreading to adjacent markets such as automotive infotainment,
set-top boxes, and possibly medical handheld devices and portable industrial controllers.
Both Android and Linux have proven to be extremely versatile and powerful operating systems, sharing common roots deep at the kernel level. Both will continue to win market share, at the expense of more expensive proprietary operating systems, as more and more target devices and applications are found. In some cases, they are at their best when the two OSes run together, and should not necessarily be viewed as alternatives.
Mentor Graphics, Wilsonville, OR. (503) 685-7000. [www.mentor.com]