Versos‎ > ‎

Look at Linux

publicado a la‎(s)‎ 15 mar 2012, 11:26 por Domain Admin   [ actualizado el 15 mar 2012, 11:28 ]
Referencia Original: http://www.ibm.com/developerworks/linux/library/l-linuxuniversal/index.html

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.

What is Linux?

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
Diagram showing all the components of Linux for users, the kernel, and hardware

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 is Linux?

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
Diagram showing Linux attributes and the segments they address

Desktop and netbook

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.

Server

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

Cluster and distributed computing

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.

Mainframe

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

Supercomputer

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

Mobile devices and tablets

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

Embedded

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

Virtualization platform

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.

Experimental platform

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

Linux versatility

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


Going further

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.


Resources

Learn

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.

Discuss

About the author

M.Tim Jones

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.


Referencia Original: http://www.ibm.com/developerworks/linux/library/l-linuxuniversal/index.html

Comments