Linux

Related Post

Linux は、UnixライクなOSカーネルであるLinuxカーネル、およびそれをカーネルとして周辺を整備したシステム(GNU/Linuxシステムも参照)。

【概要】

Linuxは、狭義ではLinuxカーネル、広義ではそれをカーネルとして用いたシステムを指す、Unix系(Unixライク、Unix like)オペレーティングシステムである。カタカナにすると(作者リーナス・トーバルズの名前に準じるものとすれば)リーナックス、あるいはライナックスであるが、「リナックス」とされることも多い(後述、Linux#「Linux」の読み方)。Linuxは、スーパーコンピュータ・メインフレーム・サーバ・パーソナルコンピュータ・組み込みシステム(携帯電話やテレビなど)など、幅広い種類のハードウェアと共に使用している。Linuxカーネルは、最初IA-32アーキテクチャのCPUを搭載したPC/AT互換機用として[要出典]開発されたが、その後史上最も多くのハードウェアプラットフォーム向けにリリースされたOSとなった。カーネルについての詳細はLinuxカーネルの記事を参照。現在では特にサーバ、メインフレーム、スーパーコンピュータ用のOSとして首位を走っている。2010年10月現在、上位500のスーパーコンピュータのうちの90%以上はLinuxを使用している[8][3]。また、携帯電話、ネットワークルータ、テレビ、ハードディスクレコーダ、カーナビゲーションシステムといった組み込みシステムでもよく使われている。スマートフォンやタブレット端末用プラットフォームAndroidはLinuxカーネルの上に構築されている。
Linuxの開発は、フリーかつオープンソースなソフトウェアの共同開発として最も傑出した例のひとつである。Linuxカーネルのソースコードは無償で入手でき、GNU一般公衆利用許諾書のもとにおいて、非営利・営利に関わらず誰でも自由に使用・修正・頒布できる。Linuxは、世界中の開発者の知識を取り入れるという方法によって、あらゆる方面に利用できる幅広い機能と柔軟性を獲得し、数多くのユーザの協力によって問題を修正していくことで高い信頼性を獲得した。
デスクトップやサーバ用のLinuxは、Linuxディストリビューションという形でパッケージ化されて配布されている。有名なLinuxディストリビューションとしては、Debian(とその派生であるUbuntu、Linux Mint)、Red Hat Linux(とその派生であるFedora、Red Hat Enterprise Linux、CentOS)、Mandriva Linux/Mageia、openSUSE、Arch Linuxなどがある。各Linuxディストリビューションは、Linuxカーネル、システムソフトウェア、ライブラリ等、巨大なコンパイル済のアプリケーション群を含んでいる。
デスクトップOSとしてLinuxを使用することは、かつては技術者や上級ユーザだけが行うことというイメージが強かった。しかし最近では、一般ユーザでも容易に使用できるデスクトップ環境が充実したり、非常に簡単にインストールできるディストリビューションが登場したり、各種ハードウェアへの対応や自動設定機能が大幅に向上するなどした結果、それまで縁遠いものとされてきた一般ユーザーの一部にも普及し始めている。デスクトップ環境での使用を念頭に置いているディストリビューションは、典型的には X Window System を含んでおり、それに加えてGNOMEやKDEといったデスクトップ環境が付属している。非力なコンピュータでの使用を考えて、LXDEやXfceといった省リソースなデスクトップ環境を含んだディストリビューションもある。サーバでの利用を想定したディストリビューションなどでは、標準インストールからグラフィカルインタフェースをすべて排除しているものもある。また、Linuxは自由に再頒布できるので、独自のディストリビューションを作ることも自由である。
ユーザ空間のシステムツールやライブラリの多くは、リチャード・ストールマンが1983年に立ち上げたGNUプロジェクトによって作られたものであるため、フリーソフトウェア財団 (FSF) はGNU/Linuxという名前を使うことを推奨している。
今日ではLinuxの普及に伴い国際規格が策定されている。Linuxカーネルを使用し、Linux Standard Base (LSB) Core Specification (ISO/IEC 23360シリーズ) に準拠したOSが、OSとしてのLinuxであるとされている。
1990年代はFreeBSDと比較して安定性に劣ると言われてきたが、コミッターの貢献により安定性も向上し、2010年代以降はサーバ向けOSとして広く運用されるようになっている。

【歴史】

Linux 開発開始以前の OS

Unix
UNIXの歴史は、米国AT&Tのベル研究所において1969年に始まる。1971年に初めて公開され、初期には当時の一般的なやり方としてアセンブリ言語のみで実装されていた。その後、Unixは1973年にC言語で書きなおされた。オペレーティングシステムを高級言語で記述するという先駆的な試みは、他のプラットフォームへの移植を容易にした。AT&Tは、反独占訴訟に対する1954年の同意判決によってコンピュータビジネスへの参入を禁じられており、なおかつこの同意判決では、電話以外の技術は「要求する者すべて」にライセンスを供与しなければならないと定められていた。開発者達はこれに素直に従って、求める者に対してUnixのソースコードを提供した。これによってUnixは即座に成長し、大学やビジネス界などで広く受けいれられることとなった。AT&Tの独占状態は1984年に解体され、ベル研究所はウェスタン・エレクトリックの傘下になった。これによって法的な制限がなくなったため、ベル研究所はUnixをプロプライエタリ製品として販売しはじめた。

GNU
GNUプロジェクトは1983年にリチャード・ストールマンによって開始され、フリーソフトウェアのみによって「完全なUnix互換ソフトウェアシステム」を作り上げることをプロジェクトのゴールとしていた。作業は1984年より開始され、1985年にはストールマンがフリーソフトウェア財団を立ち上げ、1989年には GNU 一般公衆利用許諾書 (GNU GPL) を書いた。1990年代初頭までに、オペレーティングシステムに必要な多くのプログラム(ライブラリ、コンパイラ、テキストエディタ、Unixシェル、ウインドウシステム)が完成した。しかしながら低水準の要素 — デバイスドライバ、デーモン、カーネルといったものは頓挫しているか未完成であった。リーナス・トーバルズは、もし当時GNUカーネルが利用できたならば、自分はLinuxを作っていなかっただろうと発言している。

BSD
1970年代後半から1980年代にかけて、カリフォルニア大学バークレー校のCSRGは派生版UnixであるBSDを開発していたが、1984年にUnixがプロプライエタリに移行したため、これを自由に公開することができなくなっていた。以前のBSDからAT&Tからのライセンスが必要な部分を削り、必要な部分を書き直したものが4.3BSD Net/2である。さらに、これをベースに386で動かすために必要なコードを補って1992年にウィリアム・ジョリッツらがリリースしたのが386BSDであり、これがNetBSDやFreeBSDの祖先である。市場において、マルチプロセスやメモリ保護など、近代的なOSの実装が可能となる機能を搭載した安価な32ビットパーソナルコンピュータが普及しはじめ、Unixがパーソナルコンピュータで動くものとなる可能性があったことが、こうした広義のPC-UNIXの移植や開発をスタートさせた大きな要因であり、Linuxもまたそれらの現象のうちのひとつだった。リーナス・トーバルスは、当時386BSDが入手可能であったならば、自分はLinuxを作っていなかっただろうと発言している。

Minix
Minixは、アンドリュー・タネンバウムによって開発されているUnix系OSで、当初はコンピュータ科学におけるオペレーティングシステムの教育という目的に重点を置いた設計であった。教育目的のため、企業のライセンスといったしがらみが無いよう新たに書かれたものであったが、初期にはコンパイルするためのコンパイラにプロプライエタリなものが必要であったり(GCCはまだ開発の初期だった)、教科書として広く配布するため商業出版を(当時は)必要とした関係などもありライセンスには制限があった。2000年からはそれ以前の版にも遡ってライセンスも自由なもの(BSDライセンス)となっている。バージョン3以降は「本格的」な使用のために再設計された。

起源

1991年に、当時フィンランドのヘルシンキ大学の学生であったリーナス・トーバルズはオペレーティングシステムに好奇心を抱くようになっていた。当時、近代的なOSを動作させる能力を持つ Intel 80386 CPU を搭載した32ビットPC/AT互換パーソナルコンピュータが登場していた。ワークステーションやミニコンピュータ等と比較すれば遥かに安価に入手できるものであったため、リーナス・トーバルズはこれを使ってUnix互換の機能を持つOSを動作させてみたいと考えていた。しかし商用Unixは高価であり、Unixを模して実装された安価なMINIXも教育用という仕様から機能が大幅に簡略化されていたり、教育目的での使用に制限されているという問題があり、いずれもリーナス・トーバルズの目的を果たすことは困難だった。このためリーナス・トーバルズは、既に使用していた自作のターミナルエミュレータを改造したり、ファイルシステムなどのUnix互換APIを実装したりして、独自のOSカーネルの開発を開始した。最終的にこれが現在のLinuxカーネルへと成長することとなった。
リーナス・トーバルズはLinuxカーネルの開発をMINIX上で開始し、MINIX上で動作するアプリケーションはLinux上でも使われていた。Linuxが十分に成熟すると、それ以降のLinuxの開発はLinux上で行えるようになった。すべてのMINIXコンポーネントはGNUのプロダクトによって置き換えられた。フリーで利用可能なGNUプロジェクトのコードを使用することは、まだ青二才の段階だったLinuxにとって好都合であった。さらにリーナス・トーバルズは、商業製品の作成を禁じた独自のライセンスを廃して、GNU GPLへの切り替えを行なった。
当初のLinuxの実装は極めて単純なものであり、他の既存の自由でないUnixシステムのどれに対しても、その機能と実績において比肩しうるものではなかった。また当時、自由なソフトウェアによるUnix互換OSを開発しようとしていたGNUプロジェクトは自身のカーネル (GNU Hurd) を完成していなかった(2015年現在もなお開発途上である)。ライバルのBSDは1992年からUSLとの訴訟を抱えており権利上の問題をクリアしたバージョンがリリースされたのはFreeBSDでは1994年11月だった。つまり、1990年代前半において、自由なUnix互換カーネルと呼べるようなもののうち、実用的で権利上の問題がないと考えられる存在はLinuxの他になかった。PCで動作するフリーで本格的でUnix系の環境を求める潜在的なユーザたちの多くは、当時は主に書籍として流通していた教育用OSのMINIXに流れていたが、リーナス・トーバルズはLinuxをMINIXのメーリングリスト上で公開し、GPLの下で利用可能にすることにした。これはインテルの32ビットCPUを搭載したパーソナルコンピュータでしか動作しなかったが、当時はちょうど32ビットPC/ATパーソナルコンピュータの普及期であり、GPLによって誰もが改良可能だったことから、より多くの機能を求める開発者たちによる改良を促した。開発者たちはLinuxカーネルを育てていくとともに、GNUコンポーネントとLinuxを統合する作業を行い、最終的に実用的かつフリーなオペレーティングシステムを作り上げた。

成長

Linuxカーネル・メーリングリスト (LKML) が登場し、改良に参加する有志はそこに集まることになった。PC-UNIXの隆盛など社会的な注目が高まる中、1997年ごろより商用目的への応用が注目され、ハイエンドシステムに必要な機能が付け加えられていった。ReiserFS、ext3に代表されるジャーナルファイルシステム、64ビットファイルアクセス、非同期ファイルアクセス、効率的なマルチプロセッサの利用などである。
2000年頃より、IBM、ヒューレット・パッカード、シリコングラフィックス、インテルなどの企業にフルタイムで雇用されたプログラマも開発に加わるようになり、開発スピードにはずみが付いた。2007年、リナックスを一層発展させるためにLinux Foundationが発足した。この財団では先のIBMとインテルにくわえ、富士通とNEC も開発に参加している。このように、世界中の多くの人々の共同作業によってソフトウェアが開発されるということは、それまでのソフトウェア開発の常識では考えられないことなどとされ、エリック・レイモンドは、Linuxの開発を分析し、「カテドラルとバザール」を著した[11]。しかし、エリック・レイモンドはその「カテドラルとバザール」の中で、Linuxと対比してGNUプロジェクトを「カテドラル」(大聖堂のことで、宗教的ヒエラルキーの比喩である)と言っているのだが(そして確かに、Linuxと対抗する位置付けにあるGNU Hurdの開発については当たっているのだが)、Linuxカーネルのコンパイルに絶対に不可欠なGCCは、以前から世界中の多くの人々の共同作業によって開発され続けてきたソフトウェアであるという事実については世間では今のところあまり考えられていないようである。
2001年のある研究によると、当時の Red Hat Linux には3000万行のソースコードが含まれていた。この研究は、開発工数見積り手法であるCOCOMOを用いて、これをアメリカ内で開発した場合のコストを推定した。その推定値は 14億6万米ドル(2013年)であった。システムの大半 (71%) のコードはC言語で書かれていたが、他の言語も多く使われていた。例えば、C++、Lisp、アセンブリ言語、Perl、Python、Fortran、そして各種のシェルスクリプトなどである。全コード中、半分をわずかに越える量のコードがGPLでライセンスされていた。Linuxカーネル自体は240万行で、これは合計の8%であった。
その後の研究で、同じ解析が Debian GNU/Linux version 4.0 (etch)(2007年リリース)に対して行なわれた。このディストリビューションは2億8300万行のコードを含んでおり、従来の方法で開発していたとするなら、3万6千人月が必要であり、80億4万ドル (2013年) が必要であったと推定された。

カーネル開発の遍歴

バージョン ソースコード行数 備考
1991年 0.01 約 10,000 ユーザー数1人(開発者)
1992年 0.96 約 40,000
1994年3月14日 1.0.0 176,250
1995年3月 1.2.0 310,950
1996年6月9日 2.0.0 N/A
1997年 2.1.0 約 800,000
1999年1月25日 2.2.0 1,800,847
2001年1月4日 2.4.0 3,377,902
2003年12月17日 2.6.0 5,929,913
2008年 2.6.x 約 10,000,000
2011年7月21日 3.0 14,646,952 このバージョンからバージョン体系が変更されており、3.0は元々2.6.40として開発されていたものに相当する。
2012年1月 3.x 約 15,000,000
2015年8月 4.2 約 20,000,000

最初のLinuxのリリースまでの開発はおよそ4カ月かけて行われた。
Linuxのソースコードは肥大化を続ける傾向にあり、これを防ぐために古いコードやマイナーなデバイスドライバ用のコードを削除することが行われている。
2012年の、カーネル3.6からカーネル3.7への変更には、1271人の開発者が貢献している。

【現在の開発状況】

リーナス・トーバルズはカーネル開発の指揮を続けている。ストールマンは、フリーソフトウェア財団を率いており、こちらはGNUコンポーネントのサポートをしている。個人や企業はサードパーティの非GNUなコンポーネントを開発している。これらのサードパーティ製コンポーネントは一連の巨大な作品群であり、カーネルモジュール、ユーザアプリケーション、ライブラリを含んでいる。各Linuxベンダやコミュニティは、カーネル、GNUコンポーネント、非GNUコンポーネント、パッケージ管理システムをLinuxディストリビューションの形に結合し、それを頒布している。

【設計】

Linuxベースのシステムは、モジュール式のUnix系オペレーティングシステムである。これは、Unixにおいて1970年代から80年代にかけて確立した原則による基本設計から生まれたものである。Linuxカーネルはモノリシックカーネルであり、カーネルは、プロセス管理、メモリ管理、デバイス管理、ネットワーク、ファイルシステムの提供などを行なっている。デバイスドライバは、システムの動作中にモジュールとしてロードするか、カーネルに直接組み込むことができる。

カーネルとは別のプロジェクト群がカーネルと対話しており、システムの高水準な機能のほとんどはこれらによって提供されている。GNUが提供するユーザ空間のソフトウェア群は、Linuxシステムの重要な部分である。これらは、標準Cライブラリの最も一般的な実装(GNU Cライブラリ)、Unixシェル、Unixツールの多くを提供しており、オペレーティングシステムの基本的なタスクを実行している。ほとんどのグラフィカルユーザインタフェース (GUI) は、X Window Systemの上に構築されている。
インストール済Linuxシステムの構成要素としては以下のようなものが挙げられる:

  • ブートローダ – GRUBなど。コンピュータの電源を入れたときに実行され、Linuxカーネルをメモリ上にロードする。
  • Linuxカーネル – オペレーティングシステムの中核。環境に合わせて、必要なカーネルモジュールも適宜ロードされる。
  • Initプログラム – Linuxカーネルによって起動されるプロセスであり、プロセスツリーの根となる。言い換えれば、すべてのプロセスの祖先はinitである。initは、システムサービスやログインプロンプトを起動する。
  • ソフトウェアライブラリ – 他のプロセスによって共有して使われるコード。実行可能形式としてELFフォーマットを使用しているLinuxシステムでは、動的リンカld-linux.soが共有ライブラリの利用を管理する。
  • プログラム – システムソフトウェア、コマンドシェルやウインドウ環境などのユーザインタフェースプログラム、その他のアプリケーションプログラムなど。

【ユーザインタフェース】

Linuxシステムのユーザインタフェース(シェルとも呼ばれる)は、コマンドラインインタフェース (CLI) とグラフィカルユーザインタフェース (GUI) のどちらか、またはハードウェアに搭載されているコントロール(これは組み込みシステムでよくみられる)である。デスクトップシステムではGUIを使うことが一般的だが、GUI環境でも端末エミュレータウインドウや仮想コンソールを通してCLIインタフェースを利用できる。Unixの標準的ツールを含むLinuxの低水準な構成要素のほとんどはCLIだけで使うことができる。CLIは、自動化や繰り返し作業に適しており、非常にシンプルなプロセス間通信(パイプ)によるコマンドの連携もサポートしている。
沢山のユーザインタフェースが存在するが、デスクトップシステムにおいて最も名の知られたユーザインタフェースとしては、デスクトップ環境のGNOME、KDE、Unity、Xfceが挙げられる。ほとんどのユーザインタフェースはX Window Systemの上に構築されている。
他のGUIは Xウィンドウマネージャに分類されることがあり、その例としてFVWM、Enlightenment、Window Makerなどがある。これらは最小主義的なデスクトップ環境を提供する。ウンドウマネージャはウインドウの配置や外観をコントロールする手段を提供するとともに、X Window Systemとのやりとりを行う。GNOMEやKDEなどのデスクトップ環境はウインドウマネージャを標準で含んでいるが(例えば、GNOMEはMutter、KDEはKWin、XfceはXfwm)、他のウインドウマネージャを選択することもできる。

【相互運用性】

Linuxベースのディストリビューションは、他のオペレーティングシステムやコンピューティング標準との相互運用性を念頭に置いて開発されている。Linuxカーネルを用いて構築されたOS環境は、一般にはUnix互換OSに分類される。ただし厳密にはUnixとして扱うことは適切ではない。Linuxシステムは、可能である限りPOSIX、SUS、国際標準化機構、米国国家規格協会などの標準を順守しようとしているが、現在までにPOSIX.1の認証を受けたディストリビューションは Linux-FT ただ一つである。POSIXの認定には決して少なくない時間と予算が必要であり、また認定はバージョン単位で取得する必要があるため、ほとんどのディストリビューションでは時間や予算的な制約によって、これを見送らざるを得ないためである。
しかし、LinuxをOSプラットホームとして普及させるためには、ディストリビューションに依存しない一定の基準が必要である。そこで、Linux Foundationを活動母体として、LinuxのOSプラットホームとしての仕様をLinux Standard Base (LSB) として制定した。Linux Standard Baseは、2006年には、ISO/IEC 23360シリーズとして国際規格として認定された。現在、主要な商用ディストリビューションは、The Open Groupにより、Linux Standard Baseに準拠していることが認証されている。なお、非商用ディストリビューションについては、Linux Standard Baseに準拠していても、時間や予算的な制約などによって、認証を受けていないものが多い。

【開発】

Unix系OSの単純化した歴史。Linuxは、オリジナルのUnixやMINIXと同様のアーキテクチャと概念を共有しているが、非フリーのソースコードは共有していない。
他の有名な現代的OSとの主要な違いとして、Linuxカーネルおよびその他の構成要素がフリーかつオープンソースであることが挙げられる。そのようなOSはLinuxだけではないが、Linuxはその中でも突出して広く使われている。
フリーかつオープンソースなライセンスの一部は、コピーレフトという原理に基づいている。コピーレフトはある種の相互関係と捉えられる。コピーレフトなライセンスで公開されているソフトウェアのソースコード片は自由に利用できるが、それを利用して作ったソフトウェアを一般に頒布する場合はそれ自身もコピーレフトなライセンスでソースコードを公開しなければならない。最も一般的なフリーソフトウェアライセンスのひとつである「GNU 一般公衆利用許諾書」(GNU GPL) はコピーレフトの一形態であり、LinuxカーネルやGNUプロジェクトの多くのコンポーネントのライセンスとして採用されている。
Linuxディストリビューション(俗にディストロ (distro) と呼ばれる)は、システムソフトウェアおよびアプリケーションソフトウェアのパッケージ群およびそれらの構成を管理するプロジェクトである。Linuxディストリビューションは、ソフトウェアパッケージの集合(リポジトリと呼ばれる)をインターネット上で提供しており、ユーザはそれをネットワークを通じてダウンロードし、インストールできる。

【Linuxディストリビューション】

ディあストリビューションの一つである Ubuntu のインストールCD。ほとんどの場合はこのようなメディアを入手せずに、必要なファイルをインターネットからダウンロードしてインストールする。
Linuxのカーネル本体はソースコードとして単独で公開されており、他のプログラムによってバイナリへとコンパイルする必要がある。また、サーバやアプリケーション、ウィンドウシステムなどのアプリケーションプログラムを動作させるためには各種のライブラリが必要である。しかし、このような環境をゼロから構築して運用する作業は難解かつ非常に煩雑であり、Linuxを実用したいユーザーが逐一実行することは現実的でない。
このため、Linuxディストリビューションがいくつも作られている。Linuxディストリビューションは、Linuxカーネル、ライブラリ、システムソフトウェア、アプリケーションソフトウェアなどをパッケージとしてまとめて、それをインターネットなどで頒布している(多くの場合、パッケージはコンパイル済のバイナリが収められている)。Linuxディストリビューションは、カーネルのデフォルト設定、システムセキュリティ、雑多なソフトウェアパッケージ群が協調して動作するようにするための調整、デフォルト設定ファイルの用意などもユーザに代って行なっている。これによりユーザは、システムの構築・運用に頭を悩ませることなく、手軽にLinuxシステムを使用できる。
多くのLinuxディストリビューションでは、カーネル、ライブラリ、システムツール、コマンドラインシェル、コンパイラ、テキストエディタ、X Window System、ウィンドウマネージャ、デスクトップ環境、科学技術計算ツール、オフィスアプリケーション、画像処理ソフトウェアなど、何万ものアプリケーションパッケージを提供している。ユーザはその中から必要なパッケージをダウンロードすることで、自分の用途に合ったシステムを構築できる。ディストリビューションは通常、パッケージマネージャと呼ばれるソフトウェアを提供しており、アプリケーションやシステムソフトウェアのインストール・更新・削除をひとつのツール上で簡単に行えるようにしている。各ディストリビューションは、個人や、緩く結束した集団や、ボランティア団体や、営利企業によって管理されている。
Linuxディストリビューションに含まれるソフトウェアパッケージの多くはフリーソフトウェアライセンスを採用している。フリーソフトウェアライセンスは、商業利用を明示的に許諾しており、さらにはそれを推奨している。多くのLinuxディストリビューションは無償で入手できるが、いくつかの大企業は商用版ディストリビューションを販売することで利益を得ている。これらのディストリビューションでは、(特にビジネスユーザ向けの)サポートサービスが提供されており、さらに、プロプライエタリなサポートパッケージや、大量のインストールを行ったり管理作業を簡略化するための管理者向けツールなどが含まれている。

【コミュニティ】

各Linuxディストリビューションは、開発者およびユーザコミュニティによって駆動している。一部のベンダーは、ディストリビューションの開発と資金供給をボランティアベースで行っており、この有名な例としてはDebianがある。商業ディストリビューションのコミュニティ版を公開しているベンダーもある。この例としては、レッドハットのFedoraやノベルのopenSUSEがある。
多くの都市や地域には、Linuxユーザー・グループ (LUG) として知られる地域団体がある。彼らはミーティングを開いて、講習会やデモンストレーション、技術サポート、新規ユーザへのOSのインストールなどを行なっている。多くのインターネットコミュニティも、Linuxユーザや開発者のサポートを提供している。ほとんどのディストリビューションがIRCのチャットルームやニュースグループを持っている。その他のサポート手段としてはインターネットフォーラムがある。Linux全般を扱うフォーラムもあるし、ディストリビューションが自身のフォーラムを運用していることもある。
Linuxに焦点を当てた技術系ウェブサイトもいくつか存在する。Linuxの雑誌は、しばしば付録ディスクとしてソフトウェアやLinuxディストリビューションを含めている。
商用版ディストリビューションを販売している企業などは、Linuxシステムのコンポーネント開発やフリーソフトウェアの開発にも貢献している。とあるLinuxカーネルの解析が示すところによると、2008年12月から2010年1月までに書かれたコードのうち75%は企業によって開発されたものであり、残りの18%がボランティア、7%が未分類となっている。これらの企業としては、デル、IBM、ヒューレット・パッカード、オラクル、サン・マイクロシステムズ、ノベル、ノキア、レッドハットなどがある。したがって、Linuxディストリビューション全体と個々のベンダのあいだには共生関係があると考えられるかもしれない。

【プログラミング】

ほとんどのLinuxディストリビューションは、何十ものプログラミング言語をサポートしている。Linuxアプリケーションおよびオペレーティングシステムを開発するのに使われているツール群の多くはGNUツールチェーンというものの中にみられる。これには、GNUコンパイラコレクション (GCC) や GNU build system が含まれている。GCCは、C言語、C++、Ada、Java、Fortranのコンパイラを提供している。今後GCCを置きかえる可能性がある候補として、2003年に初公開されたLLVMプロジェクトがある。LLVMプロジェクトは、LLVM基盤のひとつの利用例として、C言語/C++/Objective-Cに対応した近代的なオープンソースコンパイラであるClangを提供している。プロプライエタリなLinux用コンパイラとしては、Intel C++ Compiler、Sun Studio、IBM XL C/C++ Compilerなどがある。
ほとんどのディストリビューションは、Perl、Python、Ruby、PHPといった動的プログラミング言語もサポートしている。また、C# (Mono) 、Vala、Schemeといった言語もサポートしている。各種のJava仮想マシンやJava開発キットもLinuxで動作する。これにはオリジナルのJVM、IBMのJ2SE RE、その他のオープンソース実装が含まれる。
GNOMEやKDEは良く知られたデスクトップ環境であり、アプリケーション開発のためのフレームワークを提供している。この2つのプロジェクトはそれぞれGObject/GTK+とQtに基づいており、両者ともC言語/C++だけでなく、様々な言語用のバインディングが提供されている。
Linuxでは、いくつもの統合開発環境 (IDE) も利用することができ、例えば、Anjuta、Eclipse、Geany、ActiveState Komodo、KDevelop、Lazarus、MonoDevelop、NetBeans、Qt Creator、Omni Studioなどがある。しかしながら、IDEを使わずに、テキストエディタやその他の個別のツールを組み合わせて開発を行う者も多い。

【利用状況】

Linuxは非常に幅広く移植されているOSカーネルであり、Linuxカーネルは非常に多様な環境において多様な用途で使われている。コンピュータアーキテクチャの観点ではARMベースのiPAQからメインフレームのIBM System z10まで対応し、デバイスの観点では携帯電話からスーパーコンピュータまで対応する。
デスクトップやサーバでの汎用に使われることを想定したディストリビューションだけでなく、特定の目的に特化したディストリビューションも存在する。それらの目的は例えば、特定のコンピュータ・アーキテクチャのサポート、組み込みシステム用、安定性の重視、セキュリティの重視、特定のユーザグループを想定、リアルタイム処理のサポートなどである。加えて、あえてフリーソフトウェアのみで構成したディストリビューションもある。300を越えるディストリビューションがプロジェクトを継続しているが、汎用のディストリビューションとして広く名が知られているものは十数個程度である。

【サーバ・メインフレーム・スーパーコンピュータ】

Linuxディストリビューションは、サーバ用のオペレーティングシステムとして長年使われており、その領域においてすでに傑出している。2006年にNetcraftは、10社の最も信頼できるインターネットホスティング企業のうち8社がLinuxディストリビューションを使っていると報告した。2008年6月では、Linuxが5社、FreeBSDが3社、マイクロソフト社製品が2社だった。2010年では、Linuxが6社、FreeBSDが2社、マイクロソフト社製品が1社だった。
Linuxディストリビューションは、俗にLAMPと呼ばれるサーバソフトウェアの組み合わせの基盤となっている。LAMPは、開発者のあいだで人気を博し、ウェブサイトのホスティングにおいて一般的な方法のひとつとなった。
Linuxディストリビューションは、メインフレームの世界でも人気を増している。2009年にはIBMが、メインフレームベースの企業向けLinuxサーバを主に販売していくと報告した。
Linuxディストリビューションはスーパーコンピュータ用のOSとしても一般的に使われている。特にクラスター型スーパーコンピュータでの採用が多い。2010年にはスーパーコンピュータの性能ランキングであるTOP500のリストのうち459システム (91.8%) がLinuxを使用していた。Linuxは、世界で最も強力なスーパーコンピュータのOSとして使用されたこともある。
2008年には東京証券取引所の基幹システムのひとつ「派生売買システム」でLinuxが使われるようになった。 以降、東証ではシステムのLinux化が進められている。

【デスクトップ】

Linuxシステムは、概して一般消費者が気がつかない所で応用される例が多かったが、最近になってデスクトップコンピュータやノートパソコンでのLinuxの知名度は上昇しつつある。ほとんどのLinuxディストリビューションはグラフィカルインタフェースを含んでおり、例えばGNOME (シェルとしてはGNOME Shell、Unity、Cinnamonなど) や KDE(Plasma) がある。
デスクトップにおけるLinuxのパフォーマンスは論争を呼ぶ話題であった。2007年にはCon Kolivasが、サーバでのパフォーマンスばかりに注力するLinuxコミュニティを批判した。彼はデスクトップへの関心のなさに苛立ち、Linuxカーネルの開発をやめた。その後、Linuxのデスクトップ環境を改善するための大量の開発が開始された。
多くの有名なアプリケーションは幅広いOSで動作する。例えば、Mozilla Firefox、LibreOffice、BlenderなどはLinuxを含む主要なOSで動作する。加えて、Linux用のアプリケーションとして最初に開発され、それが人気を得たために他のOS(WindowsやOS Xなど)に移植されたものもある。この例としてはGIMPやPidginなどが挙げられる。さらにLinuxをサポートするプロプライエタリなソフトウェアも増えてきている[59]。ゲームをLinuxに移植した企業もある。有名なゲーム配信プラットフォームSteamもLinuxに対応した。アニメーションや視覚効果のスタジオではLinuxがよく使われているため、Maya、SoftimageShake、といったソフトウェアはLinux版が用意されている。
フリーソフトウェア開発の共同作業の性質によって、世界中に分散したボランティアチームがソフトウェアの翻訳を行うことが可能になっている。このため、Linuxシステムは、費用対効果の問題で営利企業がOSをローカライズできないようなマイナーな言語にも対応していることがある。例えば、シンハラ語版のKnoppixは、Windows XPがシンハラ語に対応するかなり前から利用可能だった。
ソフトウェアのインストールや削除は、典型的にはSynapticやPackageKit, YUMなどのパッケージマネージャを通して行う。多くのディストリビューションは何万ものソフトウェアパッケージを抱えているが、オフシャルのリポジトリからソフトウェアを見つけられない場合は、非公式のリポジトリやコンパイル済パッケージを使ってソフトウェアをインストールすることもできる。もちろんソースコードを自分でコンパイルすることもできるが、これは概して初心者にとっては挑戦的な課題である。とはいえ、現代的なディストリビューションにおいて、ソースコードを自分でコンパイルしなければならない状況になることは少ない。
1枚のCD-ROMメディアやUSBメモリからLinuxを起動できるLive CDやLive USBというものもある。Live CD/USBは、ハードディスクにシステムをインストールすることなしにOSを起動できるように作られている。一部のディストリビューションのインストール用メディアはLive CD/USBとしても動作するようになっており、ハードディスクにインストールする前にデスクトップ環境を試すことができる。特定の用途に特化した単機能のLinux Live CD/USBも存在する。例えば、ハードディスクのパーティションを編集するソフトウェアを搭載したGParted Live CD/USBがある。
GNOME Shell
KDE Plasma Desktop
Xfce
LXDE

【組み込み機器】

Android スマートフォン
Androidを搭載したスマートフォン Galaxy Nexus
Linuxは、そのカスタマイズの容易さと開発コストの低さから、組み込み機器でよく使われている。スマートフォンやタブレット端末用OSのAndroidはLinuxカーネルを使用している。Linuxが動作している携帯電話やPDAは2007年頃からますます一般的になりだした。例えば、ノキア N810、オープンモコ社のNeo1973、モトローラ社のROKR E3などがある。このトレンドは続き、パーム社はLinuxベースのwebOSを開発した。これはPalm Preスマートフォンに使用されている。有名なティーボ社のデジタルビデオレコーダにもLinuxが使用されている。Ciscoなどのネットワークルータ、日本メーカーの家庭用ルータやネットワークアタッチトストレージの多くでもLinuxが使われている。ソニーやシャープなどは、テレビやハードディスク・レコーダーなどのデジタル家電のOSとしてLinuxを使っている。電子音楽機器のOSとしても使われており、例えば、ヤマハ・MOTIFシリーズ、コルグ・OASYSなどが挙げられる。WholeHogIII consoleのような舞台照明制御システムでも使われている。高い可用性が求められる通信事業者のシステムのためにキャリアグレードLinuxというLinux仕様の要件もまとめられており、この仕様を満たしたいくつかの製品が販売されている。
マイナーな環境でも動作するように特化されたディストリビューションもある。ELKSカーネルはIntel 8086や80286プロセッサで動作でき、Clinuxカーネルはメモリ管理ユニット (MMU) が存在しないシステムで動作できる。製造者が作ったOSしか動作させない想定で開発されたアーキテクチャ上でもLinuxは動作している。例えば、Macintosh(PowerPCおよびインテル製プロセッサ)、携帯情報端末、ゲーム機、ポータブルメディアプレーヤー、携帯電話などが挙げられる。フリーダムHECなど、いくつかの産業団体やハードウェアカンファレンスは、Linuxの多様なハードウェアサポートのための保守および改善に力を注いでいる。

【マーケットシェア】

フリー/オープンソースソフトウェアに関する多くの定量的な調査は、マーケットシェアや信頼性を含むトピックに焦点を当てており、なかでも多くの研究がLinuxを調査の対象としている。Linuxのマーケットは急速に成長しており、2008年には、Linuxによるサーバ、デスクトップ、ソフトウェアの収益は357億円を越えると予測された。
IDC社の2007年第1四半期の調査は、その時点でLinuxは全サーバの12.7%を占めていると示した。ただしこの数値は、様々な企業によってLinuxサーバとして販売されたマシンの台数だけに基づく推定であり、サーバハードウェアを購入したあとでLinuxをインストールしたものを考慮に入れていない。2008年9月には、マイクロソフト社のCEOスティーブバルマーが、ウェブサーバの60%はLinuxシステムであり、それに対してWindows Serverは40%であることを認めた。
W3Schools.comのアクセス解析情報によると、Linuxのシェアは、2003年3月の時点で2.2%、その後ゆるやかに増加を続け、2015年1月の時点で5.5%である。
アナリストや支持者たちは、Linuxが比較的成功した要因として、セキュリティや信頼性、低コスト、ベンダロックインからの自由を挙げている。
Linuxは、映画業界でも何年ものあいだ選択肢のひとつとして使われてきた。Linuxサーバで初めて作られたメジャーフィルムは1997年のタイタニックである。それ以降、ドリームワークス・アニメーション、ピクサー・アニメーション・スタジオ、WETAデジタル、インダストリアル・ライト&マジックといった大スタジオがLinuxに移行している。The Linux Movies Groupによると、大規模なアニメーションスタジオおよび視覚効果スタジオの95%以上のサーバおよびデスクトップがLinuxを使用している。

【一般への受け入れ】

日本や韓国などITインフラがマイクロソフトやアップルなどの製品に大きく依存している国や地域を除けば、家庭や企業におけるLinuxデスクトップの使用は成長を続けている[
Linuxは各国の地方自治体や政府でも知名度を得ている。ブラジルの連邦政府はLinuxをサポートしていることで有名である。ロシア軍が独自のLinuxディストリビューションを作成していることが明るみに出たこともあり、これは「ゴースト」プロジェクトとして実を結んだ。インドのケーララ州は、すべての州立高校がコンピュータでLinuxを走らせることを命じている。中国は、技術的独立性を達成するために、自身の龍芯 (Loongson) プロセッサ用のOSとしてLinuxのみを使っている。スペインでは、いくつかの地域が独自のディストリビューションを作成しており、教育や公的機関でそれを使用している。ポルトガルは、独自のLinuxディストリビューションとしてCaixa Mágicaを持っており、Magalhãesネットブックや「eエスコラ」行政プログラムで使用されている。フランスやドイツもLinuxを取り入れる方向で歩を進めている。
日本の地方自治体や官公庁の一般部署でも近年、導入・維持コストの低さや、古いパソコンでも使用できる動作の軽さなどを買って、Linuxデスクトップの導入を検討したり実際に導入しているところがある。2009年10月14日には大阪府箕面市が、Edubuntuのインストールされた中古パソコン500台を利用したシンクライアントシステムを構築することを発表した他にも大阪府交野市が、中古パソコンに利用するOSとしてXubuntuを採用したしかし、2010年以降はMicrosoft OfficeやInternet Explorer、Adobe Creative Suiteの大幅な機能強化とLinux版Flash Playerの新機能追加の打ち切りが行われたことに伴い、Linux環境では文書やグラフ、ワークシート、画像ファイル、埋め込み動画の表示・印刷が乱れるなどの問題が大きくなったため、両者とも現在はLinuxマシンを撤去し、Windows 7以降のWindowsへの再移行が行われている。住民基本台帳システムや電子納税システム、マイナンバーシステムなどのスマートカードを用いたWindows ServerとActiveXを基盤とした電子政府システムの本格運用開始に伴い、経済産業省や総務省、内閣府なども現在はLinuxデスクトップの普及促進活動を中止しており、LinuxやOS Xなどを利用しているユーザーに対し、WindowsとInternet Explorer、Microsoft Officeの再導入を勧めている。
Linuxは、日本の学校教育の場でも用いられている。採用例は初等教育の段階から見られるが、特に大学では理工学系分野での使用が多い。理工学分野ではUnix系環境向けの(フリーでオープンソースの、もしくはプロプライエタリの)アプリケーションや開発環境が非常に充実しており、また長年に渡るそれらの利用実績や経験の蓄積があるためである。より広範な一般教養のカリキュラムの中で使用されることもあるが、多くの学生が大学進学以前から既にWindowsやOS Xに慣れ親しんでいることや、オフィススイート・画像編集ソフト・会計ソフト・ゲーム等の一般向けパッケージソフトが従来から用いられているOSと比較して非常に少ないため、あまり受け入れられていない。特に日本国内の民間企業や政府機関は欧米圏などと比較すると保守的でリスクマネジメントに慎重であるため、マイクロソフト社とのクライアントOSに関する独占的なSLA契約を締結し、LinuxやAndroid、iOSなどを搭載した端末からのオンラインバンキングや電子政府システムへのアクセスを排除していることに加え、Linuxをプリインストールしたマシンを製造販売すると製造物責任法上のリスクが大きく上昇することもあって、メーカー側も生産をためらっている状況にあり、日本国内市場では自作パソコンユーザーの間ですらほとんど受け入れられていない。しかし例えば、有名なゲーム配信プラットフォームのSteamがLinuxに対応したり、デルやトーワ電機などのパソコンメーカーがLinuxをプリインストールしたBTOパソコンを発売するなど、状況は変化しつつある。財団法人 コンピュータ教育開発センター(CEC)が、小中学校11校を対象にオープンソース・デスクトップ導入実験を行ったが、その際岡山県総社市で実施したアンケートで、小学生の90%以上がLinuxは簡単と答えている。
OLPCのXOラップトッププロジェクトは、新たなLinuxコミュニティを作ろうとしている。このプロジェクトは、発展途上国の何百万人もの学童とその家族にリーチすることを計画している。このプロジェクトの支持者には、Google、レッドハット、イーベイが含まれている。XOは、Windowsも選択できるようにすることにしているが、基本的にはFedoraにSugarをデスクトップ環境として使ったものを展開する予定である。

【名称・ライセンス・商標】

名称

名前の由来
リーナス・トーバルズは、自分の作品を「freak」「free」「Unix」を合成して「Freax()(フリークス)」と呼ぼうと思っており、開発の初期の半年程の間は、彼はファイルを「Freax」というディレクトリに保存していた。 「Linux」という名前も思いついたが、自己中心的すぎるとして当初は却下していた。
1991年の9月、開発を促進するために、Linuxのファイルはヘルシンキ工科大学のFTPサーバ (ftp.funet.fi) にアップロードされた。トーバルズの協力者であり、当時そのサーバの責任者であったレムケは、「Freax」という名前を良く思わず(「Freax」と語感が酷似している「Freaks」は英語で変人・奇人の意味を持つため)、彼はトーバルズに相談することなく、サーバ上のプロジェクトに勝手に「Linux」という名前をつけてしまった。その後トーバルズも、その名前に同意した。
後付けではあるが「Linux Is Not UNIX」の略とも「Linus UNIX」の略ともされる。

Linux」の読み方
「Linux」という語の発音は公式に定められておらず、日本では「リナックス」と読まれることが最も一般的[独自研究?]であるが、そのほかにリヌックス、ライナックスなどの読み方もある。英語圏では[ˈlɪnəks]、[ˈlɪnʊks]、[ˈlaɪnʌks]など様々な発音で読まれている。開発者であるスウェーデン系フィンランド人リーナス・トーバルズの名前に由来していることから、スウェーデン語風に[ˈlɪnɵks]()(リヌックス)と発音するのが良いとも考えられるが、リーナス・トーバルズ本人は「どのように発音してもらっても構わない」と発言している。インターネット上に公開されている本人による英語の録音では[ˈlɪnʊks]()(リヌックス)と発音されている。ウィキペディア英語版の記事には、[ˈlɪnəks]と[ˈˈlaɪnəks]の2つが記載されている。両者ともアクセントは第1音節に置かれている。
日本では各種の読み方が混在していたが、日本最初のLinux専門誌である『LINUX JAPAN』(五橋研究所、1998-2002年)が表紙をはじめとしてカタカナ表記に「リナックス」を採用し、他も同誌に追従した事から、この読み方が一般に広まった。しかし、日本Linux協会の登記名(商号。設立時にはまだラテン文字での登記ができなかった)は「日本リヌックス協会」である。

GNU/Linux
「Linux」とは本来Linuxカーネルを指す語であり、カーネルとはその名の通りOSの核をなすものにすぎない。これを用いて実用的なオペレーティングシステムを構成するには、他の多数のソフトウェア(ライブラリやシステムソフトウェアなど)の助力を必要とする。また、何らかの処理を行なったり業務に使用する際には各種のアプリケーションソフトウェアが必要となる。GNUプロジェクトはこうしたソフトウェアをフリーソフトウェアとして開発・提供しており、実際にほとんどのLinuxディストリビューションはライブラリ環境(GNU Cライブラリなど)やツール環境(GNU Core Utilities等)をGNUのプロダクトに依存している。そのため、LinuxカーネルとGNUプロダクトを組み合わせてUnixと同等のシステムを構成している場合は「GNU/Linux」と呼ぶべきだと主張する者もいる。この主張の他の根拠としては、「GNU自身のプロダクトではないものの、Linuxカーネルを含め多くのソフトウェアがその使用に際してユーザーライセンスとしてGNUが提唱するパブリックライセンス(GPLやLGPL等)を採用していること」や「さらにこれらのソフトウェアの多くが事実上相互依存している点」などが挙げられている。(リチャード・ストールマン、またリーナス・トーバルズ自身もGNU/Linuxと呼称している。ただし、「Revolution OS」でのインタビューにおいてリーナス・トーバルズは「すべてのLinuxをGNU/Linuxと呼称するのはばかげている」と答えている。詳細はGNU/Linux名称論争を参照。

ライセンス
LinuxおよびほとんどのGNUソフトウェアは、ライセンスとして GNU General Public License (GPL) を採用している。GPLでライセンスされていることにより、Linuxを再頒布する者はソースコード(加えた修正も含む)を同じ条項で入手可能にすることが要求される。他の主要コンポーネントの中には別のライセンスを使っているものもある。例えば、多くのライブラリはGNU Lesser General Public License (LGPL)(GPLよりも許諾的)を採用しており、X.orgはMITライセンスを採用している。
リーナス・トーバルズは、Linuxカーネルのライセンスを、GPLバージョン2からGPLバージョン3に移行しないつもりだと述べており、特に、ソフトウェアをデジタル著作権管理のために使うことを禁じた条項を嫌っている。また、移行するとしたら、著作権者(数千人)から許可を得なければならないだろう。

商標
米国では、「Linux」という名前はリーナス・トーバルスが登録している商標である。初期は誰もこの名前を登録していなかったが、1994年8月15日に William R. Della croce, Jrが出願を行い、Linuxディストリビュータ達にロイヤリティを要求するということが起きた。1996年にリーナス・トーバルズといくつかの団体が、商標をリーナス・トーバルズに譲渡することを求めて彼を告訴し、1997年にこの問題は解決した。それ以降、商標のライセンス供与は Linux Mark Institute (LMI) によって処理されている。リーナス・トーバルズは、自分が商標を保有している目的は他人が勝手に使用するのを防ぐためだけだと述べている。LMIは、以前は「Linux」という名前を商標の一部として使用することに対してわずかなサブライセンス料を課していたが、のちにこれを変更し、無期限のサブライセンスを無償で提供している。

マスコット
LinuxカーネルVersion 2.x系列登場後のマスコットには、リーナス・トーバルズの嗜好を汲んで、タックス (Tux) と名付けられたペンギンのキャラクターが選ばれている。
また、Linuxカーネル Version 2.6.29限定のマスコットとして、タスマニアデビルのTuzが発表されている。