Linux is everywhere. If you peer into the smallest smart phone, to the
virtual backbone of the Internet, or the largest and most powerful
supercomputer, you'll find Linux. That's no simple feat given the range
of capabilities expected from these platforms. Discover the omnipresence
of Linux and how it supports devices large and small as well as

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

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

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.

Linux and the job market

A recent survey from Dice.com and the Linux Foundation found that 81% of more
than 2,000 respondents indicated that Linux hiring was a priority in 2012. Not
only is Linux driving industries, it's driving careers, as well.

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.

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.

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.

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.

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.

Friday, July 29, 2011, is the 12th annual System Administrator Appreciation Day. On this special international day, give your System Administrator something that shows that you truly appreciate their hard work and dedication. (All day Friday, 24 hours, your own local time-zone).

Let's face it, System Administrators get no respect 364 days a year. This is the day that all fellow System Administrators across the globe, will be showered with expensive sports cars and large piles of cash in appreciation of their diligent work. But seriously, we are asking for a nice token gift and some public acknowledgement. It's the least you could do.

Consider all the daunting tasks and long hours (weekends too.) Let's be honest, sometimes we don't know our System Administrators as well as they know us. Remember this is one day to recognize your System Administrator for their workplace contributions and to promote professional excellence. Thank them for all the things they do for you and your business.