Linuxは、現在ではWebサーバーやクラウド、スマートフォン、組み込みシステムなど、さまざまな環境で利用されています。
Linuxの歴史を理解するためには、Linuxだけでなく、それ以前に登場したUNIXやGNU、MINIXについても知っておく必要があります。
この記事では、UNIXの誕生からLinuxが開発され、オープンソースのOSとして普及していくまでの歴史を解説します。
Linuxが誕生するまで
Linuxは、それまで存在しなかったOSの仕組みを一から発明したものではありません。
Linuxが登場する以前からUNIXなどのOSが存在しており、LinuxもUNIX系OSの考え方や操作体系から大きな影響を受けています。
UNIXの誕生
UNIXは、1969年ごろにAT&TのBell LabsでKen ThompsonやDennis Ritchieらによって開発されました。
その後、UNIXは大学や研究機関などでも利用されるようになり、OSの研究や開発に大きな影響を与えました。
UNIXからはさまざまな系統のOSが派生し、現在のLinuxやBSDなどにつながるUNIX系OSの文化や設計思想が形成されていきます。
AT&TとBell Labs
UNIXが開発されたBell Labsは、当時AT&T傘下の研究機関でした。
初期のUNIXは大学や研究機関などにも提供され、特にカリフォルニア大学バークレー校ではUNIXを基にしたBSD(Berkeley Software Distribution)の開発が進められました。
こうした活動によってUNIXの技術や考え方が広まり、その後のさまざまなOSに影響を与えることになります。
UNIXの普及と商用化
UNIXの普及に伴い、AT&TのUNIX System Vをはじめ、企業によってさまざまな商用UNIXが開発されるようになりました。
一方で、UNIXのソースコードや利用にはライセンス上の制約があり、誰でも自由に利用・改変・再配布できるOSではありませんでした。
こうした時代に、自由に利用・改変できるUNIX互換OSを作ろうとする動きが登場します。
GNU Projectの開始
1983年、Richard Stallmanは「GNU Project」を発表しました。
GNU Projectでは、UNIXと互換性を持ちながら、利用者がソフトウェアを自由に実行・研究・変更・再配布できるOS環境を構築することを目指しました。
Richard Stallman
Richard Stallmanは、ソフトウェアを利用する人の自由を重視する「フリーソフトウェア」の考え方を推進した人物です。
1985年にはFree Software Foundation(FSF)を設立し、GNU Projectをはじめとするフリーソフトウェアの開発と普及を進めました。
自由なUNIX互換OSという構想
GNUは「GNU’s Not Unix」の再帰的頭字語です。
GNU ProjectではUNIXそのものを使用するのではなく、UNIXと互換性のある自由なOSを新しく構築することを目標としていました。
そのため、シェル、コンパイラ、各種コマンドなど、OSを構成する多くのソフトウェアがGNU Projectによって開発されていきました。
GNUとフリーソフトウェア
GNU Projectからは、GCCやGNU Bash、GNU Coreutilsなど、現在のLinux環境でも利用されている多くのソフトウェアが生まれました。
また、ソフトウェアを自由に利用・改変・再配布できる仕組みを維持するため、GNU General Public License(GPL)も作られました。
このGPLは、後にLinuxカーネルにも採用されます。
MINIXの登場
1987年、Andrew S. TanenbaumによってMINIXが公開されました。
MINIXはUNIXに似た構造を持つOSで、主にOSの仕組みを学ぶための教育用途を目的として開発されました。
教育用のUNIX系OS
MINIXは、OSの設計や動作を学習できるように比較的小規模な構成で設計されていました。
当時大学生だったLinus TorvaldsもMINIXを利用しており、MINIXはLinux開発が始まる背景の一つとなりました。
ただし、LinuxはMINIXのソースコードを発展させて作られたOSではなく、独立して開発されたカーネルです。
Linuxの誕生
1991年、フィンランドの大学生だったLinus Torvaldsは、Intel 386を搭載した自身のPCで動作するOSカーネルの開発を始めました。
これが現在のLinuxカーネルの始まりです。
Linus Torvalds
Linus TorvaldsはMINIXを利用していましたが、自分のPCの機能をより活用できるシステムを作るため、独自のカーネル開発を開始しました。
1991年にはインターネット上で開発について公開し、ほかの開発者もLinuxの開発に参加するようになります。
その後Linuxは急速に機能を拡張していきました。
Linuxという名称の由来
Torvalds自身は当初、開発していたシステムを「Freax」と呼ぶことを考えていました。
しかし、ファイルを公開するFTPサーバー上のディレクトリに「Linux」という名称が使用され、最終的にLinuxという名称が定着しました。
Linuxという名称は、LinusとUNIXを組み合わせたものとして知られています。
GNUとLinux
Linuxが登場した時点で、GNU Projectではコンパイラやシェル、基本的なコマンドなど、OS環境を構成する多くのソフトウェアがすでに開発されていました。
LinuxカーネルとこれらのGNUソフトウェアを組み合わせることで、実用的なUNIX系OS環境を構築できるようになりました。
LinuxカーネルだけではOS環境にならない
Linuxは厳密にはOS全体ではなく「カーネル」を指します。
カーネルはCPU、メモリ、ストレージ、デバイス、プロセスなどを管理しますが、利用者が実際にOSを操作するためには、シェルやコマンド、ライブラリなどのソフトウェアも必要です。
LinuxカーネルにGNUをはじめとするさまざまなソフトウェアを組み合わせたものが、現在利用されているLinuxディストリビューションの基礎となっています。
Linuxとオープンソース
Linuxが急速に発展した背景の一つに、ソースコードを公開し、多くの開発者が開発に参加できる仕組みがあります。
現在では個人の開発者だけでなく、多くの企業や組織もLinuxカーネルや関連するオープンソースソフトウェアの開発に参加しています。
GPL
LinuxカーネルはGNU General Public License version 2(GPLv2)の下で提供されています。
GPLによって、一定の条件のもとでLinuxのソースコードを利用・変更・再配布することができます。
これにより、Linuxを基にしたさまざまなシステムやLinuxディストリビューションが開発されてきました。
世界中の開発者による開発
Linuxは、特定の一企業だけによって開発されているソフトウェアではありません。
世界中の開発者がLinuxカーネルの開発に参加し、機能追加、不具合修正、新しいハードウェアへの対応などが継続的に行われています。
企業によるLinux開発への参加
Linuxの普及に伴い、個人だけでなく企業もLinuxや関連するオープンソースプロジェクトの開発に参加するようになりました。
現在のLinuxは、コミュニティと企業の双方によって開発・利用される、大規模なオープンソースソフトウェアとなっています。
Linuxディストリビューションの登場
Linuxカーネルだけでは、一般的なOSとして利用するための機能がすべて揃っているわけではありません。
そこで、LinuxカーネルにGNUのソフトウェア、パッケージ管理システム、インストーラーなどを組み合わせた「Linuxディストリビューション」が登場しました。
Debian
Debianは1993年に始まったLinuxディストリビューションです。
現在も開発が続けられており、Debianを基にUbuntuをはじめとする多くのLinuxディストリビューションが開発されています。
Red Hat
Red Hat Linuxは1990年代に登場し、その後のRed Hat Enterprise Linux(RHEL)などにつながりました。
RHELは企業向けのLinuxディストリビューションとして提供されており、サーバーをはじめとするエンタープライズ環境で利用されています。
Ubuntu
UbuntuはDebianを基に開発されたLinuxディストリビューションで、2004年に最初のバージョンが公開されました。
デスクトップ用途だけでなくサーバーやクラウドでも利用されており、代表的なLinuxディストリビューションの一つとなっています。
現在のLinux
現在のLinuxは、WebサーバーやクラウドなどのITインフラだけでなく、スマートフォン、ネットワーク機器、組み込みシステムなど幅広い分野で利用されています。
AWSなどのクラウド上でもLinuxベースのOSを利用できるため、クラウドエンジニアやインフラエンジニアにとってLinuxは重要な技術の一つです。
また、AndroidもLinuxカーネルを基盤としており、Linuxはサーバー以外の身近な機器にも利用されています。
まとめ
Linuxの歴史には、1960年代に登場したUNIX、自由なUNIX互換OSを目指したGNU Project、教育用OSとして開発されたMINIXなど、さまざまな技術やプロジェクトが関係しています。
1991年にLinus TorvaldsによってLinuxカーネルの開発が始まり、GNUなどのソフトウェアと組み合わされることで、実用的なLinux環境が形成されていきました。
その後、オープンソースによる開発とさまざまなLinuxディストリビューションの登場によって利用範囲が広がり、現在ではサーバーやクラウドをはじめとする多くのシステムでLinuxが利用されています。
