Linux (commonly pronounced /ˈlɪnəks/ LIN-əks in American English, also pronounced /ˈlɪnʊks/ LIN-ooks in Europe and Canada) refers to the family of Unix-like computer operating systems that use the Linux kernel. Their development is one of the most prominent examples of free and open source software collaboration; typically all the underlying source code can be used, freely modified, and redistributed, both commercially and non-commercially, by anyone under licenses such as the GNU General Public License.
Linux can be installed on a wide variety of computer hardware, ranging from mobile phones, tablet computers and video game consoles, to mainframes and supercomputers.Linux is predominantly known for its use in servers; as of 2009 it has a server market share ranging between 20–40%. Most desktop computers run either Microsoft Windows or Mac OS X, with Linux having anywhere from a low of an estimated 1–2% of the desktop market. However, desktop use of Linux has become increasingly popular in recent years, partly owing to the popular Ubuntu, Fedora, Mint, and openSUSE distributions and the emergence of net books and smart phones running an embedded Linux.
Typically Linux is packaged in a format known as a Linux distribution for desktop and server use. Linux distributions include the Linux kernel and all of the supporting software required to run a complete system, such as utilities and libraries, the X Window System, the GNOME and KDE desktop environments, and the Apache HTTP Server. Commonly used applications with desktop Linux systems include the Mozilla Firefox web-browser, the OpenOffice.org office application suite and the GIMP image editor.
The name "Linux" comes from the Linux kernel, originally written in 1991 by Linus Torvalds. The main supporting Userland in the form of system tools and libraries from the GNU Project (announced in 1983 by Richard Stallman) is the basis for the Free Software Foundation's preferred name GNU/Linux.
Programming on Linux
Most Linux distributions support dozens of programming languages. The most common collection of utilities for building both Linux applications and operating system programs is found within the GNU toolchain, which includes the GNU Compiler Collection (GCC) and the GNU build system. Amongst others, GCC provides compilers for Ada, C, C++, Java, and Fortran. The Linux kernel itself is written to be compiled with GCC. Proprietary compilers for Linux include the Intel C++ Compiler, Sun Studio, and IBM XL C/C++ Compiler. BASIC is supported in such forms as Gambas, FreeBASIC, and XBasic.
Most distributions also include support for PHP, Perl, Ruby, Python and other dynamic languages. While not as common, Linux also supports C# via the Mono project, sponsored by Novell, C# via Vala and Scheme. A number of Java Virtual Machines and development kits run on Linux, including the original Sun Microsystems JVM (HotSpot), and IBM's J2SE RE, as well as many open-source projects like Kaffe.
The two main frameworks for developing graphical applications are those of GNOME and KDE. These projects are based on the GTK+ and Qt widget toolkits, respectively, which can also be used independently of the larger framework. Both support a wide variety of languages. There are a number of Integrated development environments available including Anjuta, Code::Blocks, Eclipse, KDevelop, Lazarus, MonoDevelop, NetBeans, Qt Creator and Omnis Studio while the long-established editors Vim and Emacs remain popular.
The popularity of Linux on standard desktops (and laptops) has been increasing over the years.Currently most distributions include a graphical user environment. The two most popular such environments are GNOME and KDE, both of which are mature and support a wide variety of languages.
The performance of Linux on the desktop has been a controversial topic; for example in 2007 Con Kolivas accused the Linux community of favoring performance on servers. He quit Linux kernel development because he was frustrated with this lack of focus on the desktop, and then gave a "tell all" interview on the topic. Since then a significant effort has been expended improving the desktop experience. Projects such as upstart aim for a faster boot time. There are several companies that do port their own or other companies' games to Linux.
Many types of applications available for Microsoft Windows and Mac OS X are also available for Linux. Commonly, either a free software application will exist which does the functions of an application found on another operating systems, or that application will have a version that works on Linux (such as Skype). Furthermore, the Wine project provides a Windows compatibility layer to run unmodified Windows applications on Linux. CrossOver is a proprietary solution based on the open source Wine project that supports running Windows versions of Microsoft Office, Intuit applications such as Quicken and QuickBooks, Adobe Photoshop versions through CS2, and many popular games such as World of Warcraft and Team Fortress 2. In other cases, where there is no Linux port of some software in areas such as desktop publishing and professional audio, there is equivalent software available on Linux.
Many popular applications are available for a wide variety of operating systems. For example Mozilla Firefox, and OpenOffice.org have downloadable versions for all major operating systems. Furthermore, some applications were initially developed for Linux (such as Pidgin, and GIMP) and, due to their popularity, were ported to other operating systems (including Windows and Mac OS X).
A growing number of proprietary desktop applications are also supported on Linux, see List of proprietary software for Linux. In the field of animation and visual effects, most high end software, such as AutoDesk Maya, Softimage XSI and Apple Shake, is available for Linux, Windows and/or Mac OS X.
The collaborative nature of free software development allows distributed teams to localize Linux distributions for use in locales where localizing proprietary systems would not be cost-effective. For example the Sinhalese language version of the Knoppix distribution was available significantly before Microsoft Windows XP was translated to Sinhalese. In this case the Lanka Linux User Group played a major part in developing the localized system by combining the knowledge of university professors, linguists, and local developers.
Installing new software in Linux is typically done through the use of package managers such as Synaptic Package Manager, PackageKit, and Yum Extender. While major Linux distributions have extensive repositories (tens of thousands of packages), not all the software that can run on Linux is available from the official repositories. Alternatively, users can install packages from unofficial repositories, download pre-compiled packages directly from websites, or compile the source code by themselves. All these methods come with different degrees of difficulty, compiling the source code is in general considered a challenging process for new Linux users, but it's hardly needed in modern distributions.
Servers, mainframes and supercomputers
Linux distributions have long been used as server operating systems, and have risen to prominence in that area; Netcraft reported in September 2006 that eight of the ten most reliable internet hosting companies ran Linux distributions on their web servers. (As of June 2008, Linux distributions represented five of the top ten, FreeBSD three of ten, and Microsoft two of ten; as of February 2010, Linux distributions represented six of the top ten, FreeBSD two of ten, and Microsoft one of ten.)
The Oak Ridge National Laboratory's Jaguar supercomputer, as of November 2009 the world's fastest supercomputer. It uses the Cray Linux Environment as its operating system.
Linux distributions are the cornerstone of the LAMP server-software combination (Linux, Apache, MySQL, Perl/PHP/Python) which has achieved popularity among developers, and which is one of the more common platforms for website hosting.
Linux distributions have become increasingly popular on mainframes in the last decade due to pricing, compared to other mainframe operating systems. In December 2009, computer giant IBM reported that it would predominantly market and sell mainframe-based Enterprise Linux Server.
Linux distributions are also commonly used as operating systems for supercomputers: as of June 2010, out of the top 500 systems, 455 (91%) run a Linux distribution.
Linux was also selected as the operating system for the world's most powerful supercomputer, IBM's Sequoia which will become operational in 2011.