読み込み中...Linux(読み方は後述)とは、一般的にはUNIXライクなコンピュータ用オペレーティングシステム (OS) の一群を指し、厳密にはそのうちのOSカーネル (Linuxカーネル) のことである。
現在では、パーソナルコンピュータに限らず、携帯電話のような組み込みシステムからメインフレームやHPCC等のスーパーコンピュータまで、幅広く応用されている。
Linuxとは本来、OSの基盤となる中核ソフトウェア「カーネル」のみを指す呼称であるが、今日ではこのLinuxカーネルにGNU Projectのソフトウェアや、X Window Systemなど別のプロジェクトやライセンスのもとで開発が行われたソフトウェア製品群をパッケージ化し、Linuxカーネルと同時に配布するLinuxディストリビューションを指して、単にLinuxと呼ぶこともある。
Linuxカーネルを用いて構築されたOS環境は、一般的にはUNIX系OS、UNIX互換OS等として分類される。ただし厳密には、UNIXの標準的なAPIなどを定めた仕様であるPOSIXをおおむね満たしているものの、たとえ実質的にPOSIXを満たしていたとしてもほとんどのディストリビューションがPOSIX自体を取得していないPOSIXの認定には決して少なくない時間と予算が必要であり、また認定はバージョン単位で取得する必要があることから、殆どのディストリビューションでは時間的・予算的な制約からこれを見送らざるを得ないという事情がある。独 Unifix Linux 2.0のように、かつてPOSIX認定を取得した例外的なディストリビューションも存在しなかった訳ではない。こと、UNIXの商標を取得していない(商標UNIXではない)こと、既存のUNIXからのforkやソースコードの流用等も行われていない(血統上のUNIXでもない)ことなどから、本来のUNIXと混同して扱うことは適切ではない。
かつては「ハッカー(クラッカーの意味ではない)のOS」としてのイメージが強かったが、最近ではユーザーフレンドリーなデスクトップ環境が充実し、さらにシステムやソフトウェアパッケージ等の管理システムも発達し、グラフィカルなラッパー等が充実した結果システムの保守運用も容易なものとなったため、それまで縁遠いものとされてきたエンドユーザーの一部にも普及し始めている。
日本国内ではLinux初心者のことを慣用的にタコと呼ぶ場合があるが、これは現在では必ずしも罵倒語や蔑称ではなく、対外的には愛称に当たるものとして定義されているただしそのルーツとして、Linuxの国内における普及の最初期の段階では日経MIX(パソコン通信の大手商用ホスト、およびそのサービス)がLinuxユーザーコミュニティの総本山的な存在であった時期が存在しており、この日経MIXを中心に、スキルや教養、一般常識等が伴わない「(いろいろな意味で)至らない個人」を「タコ」と称して、罵倒したりからかったりしていた文化(BBS文化)の流れを汲んでいる。「タコは叩いて育てる」などのスローガンはその典型と言えよう。。
Linuxはリーヌークス、リナックス、リヌックス、リヌクス、ライナックス、リーナクス等様々な読み方をされている。開発者であるスウェーデン系フィンランド人リーナス・トーバルズ本人のスウェーデン語の名前に由来していることから、スウェーデン語の発音「リーヌークス」と表記するのが正しいとされているが、リーナス個人が英語を母語とする文化圏の出身ではないため、「どのように呼んでもらっても構わない」としている。ただし、ドキュメンタリー番組への出演の際には「リナックスは常にリナックスさ」と語るなど本人はリナックスという読みを使っている。
日本では各種の読み方が混在していたが、日本で最初のLinux専門誌LINUX JAPANが「リナックス」の読み方を採用し、一般誌が同名称に追従した事から、この読み方が一般に広まった。しかし、日本Linux協会の正確な読みは「にほんりぬっくすきょうかい」である。
後付けではあるが、LinuxをLinux Is Not UniXの略としたり、LINus UniXの略としたりする者もいる。
Linuxカーネルはその名の通り、OSの根幹としてコンピュータのシステム資源を統括するカーネルであり、これを用いて具体的な応用を可能とするオペレーティングシステムを構成する場合には、他の多数のソフトウェアの助力を必要とする。各種のライブラリやサブシステムを抜きにしてこれらを構成することは不可能であり、さらに具体的な作業や業務に応用する際には、各種サーバやアプリケーション等のソフトウェアも必要となる。
GNU Projectではこうしたソフトウェアをフリーで開発・提供しており、実際に大多数のLinuxディストリビューションでは一部ないしは全てのライブラリ環境(glibc、GNU Cライブラリ)やツール環境(GNU bintuilsやfile utils等)をGNUのプロダクトに依存しているという事実、またGNU自身のプロダクトではないものの、Linuxカーネルを含め多くのソフトウェアがその使用に際してユーザーライセンスとしてGNUが提唱するパブリックライセンス(GPLやLGPL等)を採用し、さらにこれらのソフトウェアの多くが事実上相互依存している点などからも、Linuxカーネルを用いてUNIXと同等のシステムを構成する場合には、そうしたシステムは「GNU/Linux」などと呼ぶべきだと主張する者もいる(リチャード・ストールマン、またリーナス・トーバルズ自身もGNU/Linuxと呼称しているただし、「Revolution OS」のインタビューによれば、リーナスは「すべてのLinuxをGNU/Linuxと呼称するのはばかげている」と答えている。)。
Linuxカーネルは、1991年に当時フィンランドのヘルシンキ大学在学中であったリーナス・トーバルズが個人で開発を開始した。最初はアセンブリ言語で記述されたターミナルエミュレータであったが、その後、Minixよりも優れたMinixを作るために拡張された。
当時はインテルの80386 CPUを搭載した32bit PC/AT互換パーソナルコンピュータが登場し、それまで32ビット環境を扱うために要求されたワークステーションやミニコンピュータ等と比較すれば遥かに安価に、しかも個人でも入手が可能なものとなりつつあったため、リーナス・トーバルズはこれを使ってUNIX互換の機能を持つOSを動作させてみたいと考えていた。しかし商用UNIXは単純に高価であり、UNIXを模して実装されたMinixもまた教育用という動機からその機能を大幅に簡略化されていたために構造的ないくつもの問題を備えており、いずれもトーバルズの目的を果たすことは困難であった。このためトーバルズは自らOSカーネルの開発に着手し、既に使用していた自作のターミナルエミュレータを改造、ファイルシステムなどUNIX互換のサブシステムとAPIを作成し、GNU Projectのライブラリやツール環境などと組み合わせることでそれらのソフトウェアが使えるようにした。
登場した当初のLinuxの実装は極めて単純なものであり、既存の他のどのようなUNIXシステムに対しても、その機能と実績において比肩しうるものではなかった。しかし当時、フリーなUNIX互換OSを開発していたGNU Projectはカーネル(GNU Hurd)を完成しておらず(2006年現在もなお開発途上である)、AT&TのUNIXもフリーではなく、さらにBSDはAT&Tと係争中であったために、即座に利用可能な形で提供され、スクラッチ開発であることから権利上の問題も抱えていないと考えられる、クリーンかつフリーなUNIX互換カーネルと呼ぶことができるめぼしい存在は、Linuxの他になかった。PCでも動作する、より本格的でフリーなUNIX(ライク)環境を求める潜在的なユーザーや開発者たちの多くは、当時は主に書籍として流通していた教育用OS「Minix」に流れていたが、トーバルズはLinuxをMinixのメーリングリスト上で公開し、GPLの下で利用可能にすることにした。これはインテルの32bitCPUを搭載したパーソナルコンピュータでしか動作しなかったが、ちょうど32bitパーソナルコンピュータの普及期であったこと、GPLによって誰もが改良可能であったことから、フリーですぐに使用でき、より多くの機能のあるOSを求める人々からの改良を促した。“適切なときに適切な場に居合わせた”ことが、後の大幅な成長に繋がったと言える。
実際にこの時期には、他にもカリフォルニア大学バークレー校のBerkeley Software DistributionもBSD系UNIXの80386への移植・実装(386BSD、のちのFreeBSDおよびNetBSD)を開始していた。市場において、マルチプロセスやメモリ保護・仮想CPUなど、近代的な32bit OSの実装が可能となる機能を搭載した安価な32bitパーソナルコンピュータが普及を開始し、UNIXが自らのコンピュータで動くものとなる可能性があったことが、こうした広義のPC-UNIXの移植や開発をスタートさせた主な要因であり、Linuxもまたそれらの現象のうちの1つであった。
その後、Linux Kernel Mailing List (LKML) が開発に使われ、改良に参加する一般有志はそこに集まることになった。PC-UNIXの隆盛など社会的な注目が高まる中、1997年ごろより商用目的への応用が注目され、ハイエンドシステムに必要な機能が付け加えられていく。ReiserFS、ext3に代表されるジャーナルファイルシステム、64bitファイルアクセス、非同期I/Oファイルアクセス、効率的なマルチプロセッサの利用などである。
2000年頃より、IBM、ヒューレット・パッカード、SGI、インテルなどの企業にフルタイムで雇用されたプログラマも開発に加わるようになり、開発スピードにはずみが付いた。このように、多くの人々の協力によってソフトウェアが開発されうるということは、それまでのプロプライエタリなソフトウェア開発の常識では考えられないことであり、エリック・レイモンドは、Linuxの開発を分析し、「伽藍とバザール」を著した。
2005年時点では、小〜中規模のホストコンピュータ用OSとして、機能的には商用UNIXと比較しても遜色のない域に達している。主に各種ネットワーク系サーバ(ウェブサーバ、データサーバなど)の、小〜中規模ネットワークにおけるサーバOSとして利用される例が一般的であり、また安価なPCやブレードサーバ等を束ねるクラスタ環境としても応用されている。
その一方で小規模な情報機器への組み込みOS環境としても普及しており、プリントサーバやストレージサーバ、ネットワークカメラやルータ等にも応用され、一部のPDAや携帯電話端末などの、小型情報端末の組み込みOSとしても普及している。
概して、一般消費者やオペレータの目に直接触れるフロントエンド環境としてよりも、インフラを担う「縁の下の力持ち」として応用される例が多い。
逆に、パーソナルコンピュータ市場におけるデスクトップ環境としては、普及率においてMicrosoft Windowsの圧倒的なシェアを覆すには程遠く、もっぱら安価なUNIX互換ワークステーションとして、それらの環境を必要とするユーザーの間で利用されるに留まっている。
Linuxは学校教育の場でも用いられる。採用例は初等教育の段階から見られるが、特に大学では理数系・理工系分野での採用が顕著であり、その背景としてはUNIX系環境向けの極めて充実した理数系・工学系向けアプリケーションやツール環境の存在と、長年に渡るそれらの利用実績と知見・経験の蓄積とがある。より広範な一般教養のカリキュラムの中で使用されることもあるが、こちらは多くの学生が大学進学以前から既にWindowsに慣れ親しんでいるため、一般に受けが悪いとされる。しかし小中学生などを対象にした調査では、小学生の90%以上がLinuxは簡単と答えており、若い年齢ほどLinuxへの抵抗はないため初等教育からの採用が重要である。Linuxは簡単という小学生は90%,教員は60%---経産省による導入実験,結果公開http://itpro.nikkeibp.co.jp/article/NEWS/20060510/237418/, ITpro最近では、オフィススイートであるOpenOffice.orgなど商用のソフトウェアにも劣らないフリーソフトウェアや、Windowsなど既存のオペレーティングシステムを意識したLinuxディストリビューションの登場により、エンドユーザー用のデスクトップ環境としての状況は改善されつつある。こうした状況を受けて国内外で一部の自治体がLinuxを搭載したデスクトップPCを導入する動きが見られる。他方で一般に販売されているソフトウェアの多数においては、Linux上で十分に代替しうる製品が存在しないこと、サポートの問題等によりハードウェアの動作保障が不十分なことから、家庭向けのPCとしての導入は進んでいない。
日本でも近年、導入・維持コストの低さと、Windows現行版の作動しない旧式PCでも使用できる動作の軽さを買って、官公庁や自治体などで導入を検討する動きがある。これに対して、現場のPC環境変更にかかる苦労や工数、データ互換性の問題などを考慮せずに「無料だから」と安易にトップダウンで切り換える事を憂慮する意見もあるものの、最近ではLinuxを導入する企業も増えてきている。海外では公的な機関が相次いでLinuxの導入や推奨を決めており、Linuxの導入の流れは確実に強まりつつあるとする主張や指摘もある。
Linuxカーネルはフリーソフトウエアとして開発が行われており、世界中のプログラマや企業により改良され、発展し、世界的に利用されるOSとなった。
現在主流となっているカーネルVersion 2.x系列におけるマスコットキャラクターは、リーナス・トーバルズの嗜好を汲んでタックスと名付けられたペンギンが選ばれている。なお、カーネルVersion 1.xのマスコットキャラクターはカモノハシであった。一部にカモメだという誤解も見られるが、カモメはSLS及びSlackwareの日本語拡張キットJE(Japanese Extension)のマスコットである。2007年 カーネル部のソースコードは500万行を超えたと発表され、今後とも増え続けるとされている。
最初のLinuxのリリースまでの開発はおよそ4ヶ月をかけて行われた。開発にはアセンブリ言語にくわえてGCCを使用して、C言語をメインにコードを書いたとドキュメンタリー番組「Linuxの歴史」への出演の際に本人が語っている。
Linuxのカーネル自体はソースコードとして単独で公開されており、他の応用プログラム等と組み合わせてコンパイルし実行バイナリを得ることによって初めて、各種サーバやアプリケーション、ウィンドウシステム等を動作させることができる。しかしながら、このような環境をゼロから構築し維持運用してゆく作業は難解且つ煩雑なものであり、少なくともパーソナルコンピュータの一般的なエンドユーザーの知見やスキルでは実質的に不可能と言ってよい。
このため、ライブラリやシステムソフトウェア、アプリケーション等を、ソースリストの状態ではなくあらかじめコンパイルして実行バイナリとし、さらに設定の雛型などを添付した上で、tar形式のアーカイブやrpm/deb形式などのパッケージとしてまとめ、サポートスクリプトやパッケージ管理システム、インストーラ等と組み合わせた形で提供されることが多い。このようなひとまとめにされた環境を、Linuxディストリビューションと呼ぶ。
多くのLinuxディストリビューションでは、カーネル、ライブラリ、ツール環境、コマンドラインシェル、コンパイラ、テキストエディタ、X Window System、ウィンドウマネージャ、科学技術計算用ツール、その他オフィスアプリケーションソフトなど、何千ものアプリケーションパッケージを選択できるようになっている。
LinuxはオープンソースのOSであるため、カーネルのみを取り出して他のコンポーネントと組み合わせられる。Microsoft Windowsなどのソースの開示や参照が困難なプロプライエタリOSと比較して、よりニッチな用途への対応や調整のキャパシティを広く取れることから、応用範囲はより広範であるとされる。