Linux® has come of age. In 2012, Linux will be 21 years old, a mature operating system with support for a spectrum of usage models. But it's hard to think of Linux as just an operating system—it's more like a chameleon. Its flexible and modular kernel addresses so many usage models (from the biggest supercomputer to the smallest embedded device) that it's difficult to classify it as anything other than an enabling technology. In fact, Linux is a platform. It's a key technology that enables the creation of new products, some of which were unknown just a short time ago.
Let's begin with a quick exploration of Linux, its basic architecture, and some of its important key principles. Then, look at how Linux applies these principles to a variety of usage models and why it's a platform, not just an operating system.
On the surface, Linux is an operating system. As shown in Figure 1, Linux consists of a kernel (the core code that manages hardware and software resources) and a collection of user applications (such as libraries, window managers, and applications).
Figure 1. Linux on the surface
This simple diagram shows key principles that are easily overlooked. At the bottom of the Linux stack is a set of architecture-dependent code that enables Linux on a vast array of hardware platforms (ARM, PowerPC, Tilera TILE, and more). This functionality, of course, is enabled by the GNU toolchain, which enables Linux portability.
Linux is in a class of its own in the arena of portability. The driver subsystem (which is vast in its capability) supports dynamically loaded modules with no performance impact, enabling modularity (in addition to a more dynamic platform). Linux also includes kernel-level security (in a number of schemes) enabling a secure platform. In the domain of external file systems, Linux enables the largest array of file system support of any operating system, enabling, as one example, flexibility through design modularity. Linux implements not only standard scheduling features but also real-time scheduling (including guarantees on interrupt latency).
Finally, Linux is open, meaning that its source can be viewed and improved upon by practically anyone. This openness also minimizes the opportunities for exploits, creating a more secure platform. Many companies contribute to Linux, ensuring that it will continue to address a variety of usage models while maintaining its core properties.
These seven key principles are by no means the only attributes that Linux provides, but they enable Linux as a universal platform across a wide variety of usage models. Further, Linux is the same across these usage models—not just the design principles but the code itself. This cannot be said of other operating systems (such as Windows®—desktop, server, or embedded—or Mac OS X or Apple iOS), which fragment their offerings to support other usage models.
Where Linux is might be harder to answer than where it isn't. Linux, with its ability to morph and scale, can be found in all computing segments (and even some that are not yet fully defined). This section explores some of the major computing segments, including desktop/netbook, server, cluster, mainframe, supercomputer, handheld/tablet, embedded, virtualization, and experimental (see Figure 2).
Figure 2. Linux attributes and segments addressed
Desktops and netbooks, where many of people use Linux, is the area in which Linux struggles the most. Recent market share data indicates that Linux captures around 1.5% of the desktop market but around 32% of the netbook market. These numbers might appear low, but as a developer, I tend to see Linux more than any other operating system.
Linux began as a simple experimental operating system, and with the introduction of XFree86 in 1994, a window manager showed the promise of a fledgling desktop operating system. Today, several window managers are available for Linux (both a blessing and a curse), allowing users to tailor its personality to their needs. Further, Linux scales automatically with processor capabilities (such as multicore and symmetric multithreading), efficiently scheduling processes across with performance in mind.
In the server market (consisting of web servers, mail servers, Domain Name System servers, and other back-end devices), Linux rules. Recent surveys found that more than 60% of all servers run a form of Linux. Outside of traditional web services, Linux powers many of the biggest Internet properties (Facebook, eBay, Twitter, and Amazon, to name a few), with the varying usage models and requirements. Beyond traditional options (such as web or mail), Linux offers the largest array of web services (and varying options for those services).
Linux is not only a staple in clusters and distributed computing models, it is a driving force and at the core of many new usage models. Two key models that are quickly growing today are cloud computing and big data.
Cloud computing is about delivery of IT as a service and relies on a cluster of shared resources that scale to the need of a given application. Clouds also rely on virtualization to support the automated management of nodes within a massive infrastructure. Within cloud environments, 66% rely on Linux as their primary platform.
Linux is also driving itself as the platform for data science. The Internet scales the volume of data that can be collected, and new problems arise in the processing of this data to identify its valuable patterns. What is now called Big Data was developed on Linux as a scalable way to manipulate data that exceeded prior traditional methods. Hadoop and its ecosystem are a result of the openness of Linux, along with an army of developers who are proficient with the platform.
In 1991, a well-known editor predicted that the last mainframe would be unplugged in early 1996. More than 20 years later, mainframes continue to be built and sold, and many run Linux. IBM began supporting Linux on mainframes in 2000 (such as the popular IBM® System z®) and provides a common user experience across environments. A recent article from Michael Vizard documented that about 25% of new mainframe workloads rely on Linux. (See Resources.)
Supercomputers are a constant arms race to hold the title of fastest, from the Oak Ridge National Laboratory's Jaguar supercomputer (2009) to the Chinese Tianhe-I (2010) to the current leader, Japan's RIKEN Kei computer (2011). In 2012, IBM's Sequoia supercomputer will be released and is expected to exceed the performance of RIKEN by a factor of two. What each of these supercomputers has in common is that they all run Linux. Linux is not only efficient, it's also adaptable to the various hardware platforms that push its performance. This shouldn't be surprising at all, given that more than 90% of supercomputers run Linux. (See Resources.)
At the more constrained spectrum of consumer devices, mobile devices and tablets are demonstrating significant growth. These devices represent a Linux kernel coupled with a custom graphical user interface (GUI). A key example of this area is the Google Android operating system, which is used both in smart phones and in tablet computers. Today, more than 25% of smart phones run a form of Linux (primarily Android), with almost 40% of tablet computers running Android.
These devices rely on ARM-based processors (systems on a chip) for high performance and low power consumption. Regardless of the underlying platform, these are Linux devices, not forks of the kernel and applications.
Microsoft® recently confirmed that for their Windows on ARM (WOA) tablet, the only applications that will be supported are those being developed for the platform (in other words, you can't run old applications on the tablet). Compare this to Linux, which supports highly portable applications instead of a restricted and closed application ecosystem. (See Resources.)
At the bottom of the spectrum are embedded devices, with varying degrees of constraints (processor performance, resources such as memory, and so on). Linux is ideal in most of these cases because of its ability to scale down and use any of the available embedded processors on the market. This flexibility makes Linux a highly used platform in televisions, in-car entertainment, navigation systems, and many other types of devices.
Linux is highly customizable and has a focus on low power consumption. To ensure the power focus, the Less Watts initiative tracks power consumption of Linux kernel releases. This project focuses mainly on Intel platforms but can also be useful for other processors.
Linux is a fairly standard offering for embedded devices and can determine the success or failure of the device (to support quick bring-up and development). One interesting recent device called the Raspberry Pi, an ARM-based credit card-sized computer, runs Linux and is intended as a learning device to teach programming. The device is anticipated to be priced at US$35 but is not yet available for purchase. (See Resources.)
One of the most interesting areas in which Linux drives innovation is in the virtualization domain. Linux is the operating system home to every kind of virtualization solution available, whether platform or para-virtualization, operating system virtualization, or more obscure ideas such as cooperative virtualization. Linux as an operating system is able to transform itself into a hypervisor (such as the Kernel Virtual Machine [KVM]) as well as hosting a number of research hypervisors. To bring additional efficiency to virtualization, Linux implements Kernel SamePage Merging to efficiently de-duplicate memory pages.
Linux is also driving the state of the art in a new advancement in virtualization called nested virtualization. Nesting, as the name implies, allows a hypervisor to host a guest hypervisor, which in turn hosts a set of guest virtual machines. Although at first glance an odd use case, nested virtualization will change cloud computing and extend the types of applications that can be hosted there. Today, Linux KVM supports nested virtualization.
Last but not least is the foundation of Linux itself—an experimental platform through which many new ideas are being explored. In 1991, Linux was introduced as a toy operating system, 20 years after the first release of UNIX®. Today, Linux serves as a platform for experimentation in file system research, cluster computing, clouds, virtualization advancement, and stretches the limits by which a single operating system kernel can be applied to so many usage models. Linux as a platform enables accelerated experimentation through the use of both Linux and the massive array of open source components. The result is an array of interesting technologies built from Linux, including HP webOS, Google Chrome OS, and Android.
One interesting change introduced by Linux is the increasing irrelevance of the underlying hardware platform. Linux presents the same user experience regardless of the underlying hardware architecture. So whether a cloud is filled with AMD x86 servers or low-power ARM-based offerings, the applications running on Linux are abstracted from the physical architecture. This abstraction allows consumers to make decisions on platform based upon their requirements rather than being tied to common but archaic and inefficient architectures. Linux equals choice.
Linux is also a self-contained integrated development environment (IDE). In addition to hosting a world-class compiler toolchain (the GNC Compiler Collection), it hosts spectrum of tools ranging from debuggers, editors, version control systems, file tools, and shells and interpretors to help automate development tasks. Linux in this capacity makes it an ideal environment for software development and software research. (See Resources.)
Supporting the various usage models defined here is simply a packaging option for Linux. Linux distributions address the desktop and server markets, where specialized distributions focus on embedded (such as uClinux, if your embedded device lacks a memory management unit). Anyone can take a Linux kernel and package a set of user applications for a specific usage model, taking advantage of the various benefits of Linux (the array of networking protocols and file systems, configurable and dynamic kernel, standard application programming interfaces). This is one of the reasons the fastest-growing smart phone platform runs Linux (with a customized UI for its personality).
If you compared Linux to a bridge, it would be a modern engineering marvel. Its distributed development model challenged the status quo, and the result is one of the most flexible software products ever created, spanning a variety of usage models from tiny embedded devices to massive supercomputers. Linux has shaped industries and led the way in cutting-edge research in cluster computing, file systems, clouds, and virtualization. Whatever computing environment is on the way, Linux will be there.
- Learn more about the inner workings of Linux in these developerWorks articles by the author:
- Anatomy of the Linux kernel (M. Tim Jones, June 2007): Check out the general structure of the Linux kernel and get to know its major subsystems and core interfaces.
- Anatomy of the Linux networking stack (M. Tim Jones, June 2007): Explore the structure of the Linux networking stack from the perspective of its layers and also examines some of its major structures.
- Anatomy of the Linux SCSI subsystem (M. Tim Jones, November 2007): Meet the Linux SCSI subsystem and discusses where this subsystem is going in the future.
- Anatomy of the Linux virtual file system switch (M. Tim Jones, August 2009):Discover what makes the virtual file system switch so powerful, and learn its major interfaces and processes.
- Anatomy of a Linux hypervisor (M. Tim Jones, May 2009): Explore the ideas behind the hypervisor and two particular hypervisors that use Linux as the platform (KVM and Lguest).
- The Surprisingly Juicy Desktop Linux Market Share Report reports how Linux on the desktop is steadily increasing in market share.
- Linux is a popular topic at IBM developerWorks. Learn about its architecture in Linux Rises on the Mainframe, which discusses mainframe workloads—in particular, that 25% of new mainframe workloads use Linux.
- Supercomputers are a dominant space for Linux. Linux powers the last three leaders in the supercomputer space (the National Center for Computational Science's Jaguar, China's Tianhe-I, Japan's Kei computer) as well as the upcoming leader, IBM Sequoia.
- Visit a great Wikipedia page on usage share of the various operating systems. This analysis covers the various use models from a number of sources.
- InformationWeek recently announced that you won't be able to run older applications on WOA. This is one example of the advantage of Linux, because its open design is not restrictive on the application ecosystem.
- An interesting new application of Linux is its use in the Raspberry Pi embedded device. This ARM-based platform runs GNU/Linux and is anticipated to cost US$35. Linux is a prerequisite in embedded devices to enable quick turn-on and application development.
- Linux is a great skill from the looks of the current job market. Dice.com and the Linux Foundation surveyed more than 2,000 hiring managers and found that 81% defined hiring Linux talent as a priority in 2012. Linux is growing as a desirable skill.
- UNIX as IDE is a great blog series from Tom Ryder that discusses the various aspects of UNIX that make it an ideal environment.
- In the developerWorks Linux zone, find hundreds of how-to articles and tutorials, as well as downloads, discussion forums, and a wealth of other resources for Linux developers and administrators.
- The Open Source developerWorks zone provides a wealth of information on open source tools and using open source technologies.
- Stay current with developerWorks technical events and webcasts focused on a variety of IBM products and IT industry topics.
- Attend a free developerWorks Live! briefing to get up-to-speed quickly on IBM products and tools, as well as IT industry trends.
- Watch developerWorks on-demand demos ranging from product installation and setup demos for beginners, to advanced functionality for experienced developers.
- Follow Tim on Twitter. You can also follow developerWorks on Twitter, or subscribe to a feed of Linux tweets on developerWorks.
Get products and technologies
- Evaluate IBM products in the way that suits you best: Download a product trial, try a product online, use a product in a cloud environment, or spend a few hours in the SOA Sandbox learning how to implement Service Oriented Architecture efficiently.
- Check out developerWorks blogs and get involved in the developerWorks community.
- Get involved in the developerWorks community. Connect with other developerWorks users while exploring the developer-driven blogs, forums, groups, and wikis.
M. Tim Jones is an embedded firmware architect and the author of Artificial Intelligence: A Systems Approach, GNU/Linux Application Programming (now in its second edition), AI Application Programming (in its second edition), and BSD Sockets Programming from a Multilanguage Perspective. His engineering background ranges from the development of kernels for geosynchronous spacecraft to embedded systems architecture and networking protocols development. Tim is a platform architect with Intel and author in Longmont, Colorado.