Linux range of use
Linux kernel-based operating systems have been widely adopted in a very wide range of uses. All the advantages and benefits of free and open-source software apply to the Linux kernel, and to most of the rest of the system software.
For desktop computers
The common human interface devices (HIDs) available for desktop computers, laptops and similar devices determine the design of the (graphical) human-computer interface implemented in software. There are a few software packages to choose among, when building an accordingly designed graphical user interface. The generic input driver for the Linux kernel is evdev, but here are several input methods implemented as middleware, i.e., atop and not as part of the Linux kernel.
For gaming
As adoption is proving, the Linux kernel is suitable as a gaming platform. Of course, added software is needed to either augment a typical desktop installation to be suitable as a gaming platform, or to create a Linux-based operating system for a dedicated gaming platform.
For servers and clusters
Servers
There is an abundance of server software (cf. client–server model) supporting various communications protocols, such as HTTP (web server), SMTP (mail transfer agents), POP3 and IMAP (e-mail server), Lightweight Directory Access Protocol (LDAP), Server Message Block (SMB-CIFS) (Samba), Simple Network Management Protocol (SNMP) (for system and network monitoring), Session Initiation Protocol (SIP), various routing protocols that run, partly exclusively, on the Linux kernel.
Some software bundles, also called solution stacks, have been that widely adopted, that their acronyms have become well known. Examples include:
For dynamic web pages:
- Linux operating system, Apache web server, MySQL database, and PHP programming language (LAMP)
- Linux operating system, Yaws web server, Mnesia or CouchDB database, and Erlang programming language (LYME, LYCE)
For cloud computing:
- Linux operating system, Eucalyptus Amazon Web Services framework, AppScale cloud computing framework, and Python programming language (LEAP)
- OpenStack – for infrastructure as a service (IaaS), the controller nodes run only on a Linux operating system
All three types of virtualization (hardware-based, software-based, and paravirtualization) have been implemented by a few projects, that run Linux, some being Linux-exclusive. The Linux kernel has been customized, adapted, and hardened to various scenarios, especially to the operation of a bastion host. Some were already mainlined, some are being developed and maintained out-of-tree.
Linux kernel-based operating systems are still employed as routing servers on both server computers and commodity hardware, in cases where professional routing equipment such as Cisco Catalyst, are either overkill or too costly. Components of the Linux kernel, such as Netfilter or the Linux network scheduler, along with the available free and open-source routing daemons Bird Internet routing daemon (BIRD), B.A.T.M.A.N., Quagga, and XORP fulfill the task very well. Very low-cost and low-performance routing can be performed by wireless routers running OpenWrt.
The anonymity routing solution Tor is cross-platform and not exclusive to Linux.
Clusters
Components of the Linux kernel, such as Logical Volume Manager (LVM), are well suited to support computer clusters. There is also software for managing clusters, e.g., Pacemaker, Linux-HA, DRBD, oVirt, openQRM, Ganeti, Eucalyptus, AppScale, or OpenNebula.
For both single system image and multi system image clusters, there are at least LinuxPMI, OpenSSI, Open-Sharedroot (diskless shared-root cluster), and Kerrighed available.
Virtualizing
There are three solutions for operating-system-level virtualization: Linux-VServer, LXC and OpenVZ, which offer similarities to FreeBSD jails and Solaris Containers.
A Linux operating systems runs virtualized on Xen, a micro-kernel-type hypervisor published under the same license as the Linux kernel (GNU GPL 2.0), and with KVM it is possible to turn the Linux kernel into a hypervisor.
For the managing there are libvirt, libguestfs and several utilities building on them, and a few other programs.
OpenStack controller nodes run exclusively on Linux, while compute nodes are cross-platform. Software projects, serving a similar use-case as OpenStack are Nimbus, Ganeti, AppScale, OpenNebula, Eucalyptus or openQRM.
For mobile devices
One of the best known Linux-based operating systems for mobile devices, such as smartphones, is the Android (operating system). Android employs a modified Linux kernel and combines it with libbionic instead of the glibc, SurfaceFlinger as display server, and some other replacements specifically written for this purpose.
Many mobile devices have a touchscreen as their sole human interface device (HID). The GUI and partly the middleware of the operating system has to be adapted as to enable software designers to create an according human-computer interface.
For embedded systems
The Linux kernel has gained wide use in operating systems used in embedded systems, as real-time and non-real-time variants.
Patches exist which transform the Linux kernel into a real-time kernel, termed a real-time operating system (RTOS). Several are actively maintained. Minimally, such an operating system includes a more or less modified Linux kernel, uClibc and BusyBox.
Non-RTOS variants exist. OpenWrt, which is also a Linux distribution, is for use on customer-premises equipment (CPE) devices like wireless routers. Rockbox, which is based on μClinux, is an operating system for portable media players.
For supercomputers
All the fastest supercomputers in the decade since the Earth Simulator have used Linux. Linux also ran on the first teraFLOPS supercomputer, ASCI Red in 1997, and on IBM Roadrunner in 2008, which was the first petascale computer.
As of November 2014, 485 or 97% of the world's fastest supercomputers run an operating system based on the Linux kernel; this percentage also translates to over 98% of the total core count or overall performance. Remaining 3% run some Unix variant (which is AIX for all of them except one), with one supercomputer running Windows and one with a "mixed" operating system.[1] Within those 97% are the most powerful supercomputers including those ranking as the top ten.
Since November 2014, Windows Azure[2] cloud computer is no longer on the list of fastest supercomputers (its best rank was 165 in 2012), leaving the Shanghai Supercomputer Center's "Magic Cube" as the only Windows-based supercomputer, running Windows HPC 2008 and ranked 360 (its best rank was 11 in 2008).[3]
References
- ↑ "Top500 - List Statistics - November 2014". Top500.org. Retrieved 17 November 2014.
- ↑ "Microsoft Windows Azure".
- ↑ "Magic Cube - Dawning 5000A, QC Opteron 1.9 GHz, Infiniband, Windows HPC 2008".