Linuxのディストリビューションには数え切れないほどの種類がある。ただ、その中でも主流になっているのはちょうど両手の指で納まるくらいの数だ。
このページではそれらのLinuxディストリビューションを簡単に比較してみよう。
Linuxのディストリビューションとは?
ディストリビューションとは分布とか流通とかいう意味だが、Linux関連で使うときには「種類」のことだと思っていい。Linuxはオープンソースなので進化の過程で、様々な分布元から様々な種類のLinuxができている。
ちなみに、これを提供する人を「ディストリビューター」と呼ぶ。
Linuxはオープンソースのため、その開発体制は放任主義的な雰囲気があり、若干自由奔放だ。Linuxというのは厳密にはカーネル(OSの核となる部分)でありその他の部分はGNU(フリーなソフトウェアでOSを構築することを目的とした組織)などが提供するオープンソースソフトウェアを使用し、融合させることによってOSとしての形を形成している。
ディストリビューションによって、パッケージの管理のしかたや、厳密なシステムの起動シーケンスや設定ファイルなどに違いが生じるのはそのためだ。ディストリビューションは基本的には組織単位形成され成果物が提供されることが多い。
RedHatやDebian、Slackwareをベースとした派生ディストリビューションが多いが個人で自分専用のLinuxディストリビューションを構築することも十分に可能となっている。
代表的なLinuxディストリビューション3系列
RedHat系
出典:RedHat
商業ディストリビューションの代表格だ。最も商業的に成功しているディストリビューションがRedHat社が出している「RedHatEnterpriseLinux」になる。通称、RHEL。Linuxの商用利用としては、業界のデファクトスタンダードである。
RedHat社のディストリビューションから派生したディストリビューションは大方RPM形式でパッケージ管理を行い、「業務的であり管理者の味方」である。管理を楽にするツール提供に率先的であったり、メーカーによる独自のドライバなどもrpm形式で配布していることが多い(rpmで提供されてもそのなかで特定のディストリビューションを決め打ちしている場合も多い)。
入門者はまずRedHat系をたしなむ方が仕事につながりやすいだろう。
Debian系
出典:Debian
こちらも非常に種類が多くて、人気だ。
Debianはパッケージ管理が非常に優秀なディストリビューションである。パッケージはdeb形式を採用し管理の為のフロントエンドapt系のコマンドを使用する。aptによりパッケージ依存関係を迅速かつ的確に解決してくれる。
設定ファイル場所や記述などはRedHat系とは異なる。本家Debianの組織力はLinuxコミュニティーのなかでも屈指である。またDebian自体の歴史も古いため多くの派生ディストリビューションが存在している。
Slackware系
出典:Slackware
最も歴史があるSlackwareをベースとしたディストリビューションがSlackware系となる。
なによりも「シンプル」というのが特長だ。上のRedHat系、Debian系などのディストリビューションと違いパッケージ管理においてパッケージ間の依存関係の解決をおこなわない。
パッケージは「configure」「make」「make install」で出来あがったバイナリをtar形式にアーカイブするだけで、あとはパッケージインストール時にログを残し、削除するときはログをたよりにインストールしたものを削除するだけである。起動スクリプトも基本的には一枚岩となっておりUnixを彷彿させる作りをしている。
派生ディストリビューション自体はそう多くはないがSlackwareは最古のディストリビューションであり、カスタマイズしやすいため熱心なファンが存在している。
その他ソースベース
冒頭で「自分専用のLinuxディストリビューションを構築することも十分に可能となっている」と触れたが、LinuxやGNUのソフトウェアはオープンソースでありGPL(そういうライセンスがある)で公開している関係上、ソースコードがインターネット上に公開されている。
その気になればソースコードを全てコンパイル、バイナリを生成しパッケージ管理を自分で行い、運用することが可能となっている。ただし、それをするにはLinuxOSをコンパイルする環境をとりそろえる必要があることが難点といえる。
LinuxOSをコンパイルするためのLinuxOSが必要になるのである。LFSなどがこれにあたる。そのほかソースベースなディストリビューションとしてGentooLinuxなどが代表的である。最小限のLiveCD環境を使用し最小限のコアシステムをインストールし環境を作りあげてゆくことになる。
Linuxディストリビューションざっくり比較
それでは人気どころのLinuxディストリビューションをどんどん並べて特長を比較してみよう。細かいところには触れていないので、また正直人によっても感想が違うため、気になるOSはVirtualBoxにでもつっこんで使ってみることをオススメする。
下記のページなどを参考にしてほしい。
RedHatEnterpriseLinux(Redhat系)
出典:RedHat
業界のデファクトスタンダードであり、最も成功した商業ディストリビューションだ。ライセンス料は主に技術的なサポートや長期的で的確なセキュリティーフィックスなどの対価となっている。
非常に高価な品物であり、一般の方はクローンであるCentOSを使用することが一般的である。最新の7系では起動シーケンスは従来の「SysVInit」ではなく「SystemD」を採用している。
パッケージ管理はrpmとフロントエンドのyumを採用し、依存関係を解決しながらソフトウェアをインストールできるようになっている。サポート期間は約10年ほどと非常にながく開発も安定性重視となっている。
お金があったら、これだろう!
CentOS(Redhat系)
出典:CentOS
LinuxはGPLのもとオープンソースとなっている商業であれ、個人利用であれソースコードはなにかしらの形で配布されているのである。
RedHatEnterpriseLinuxも例外ではない、そのため商標などを徹底的に除去し、リビルドすることでRedHatEnterpriseLinuxのクローンを作成することができるのである。そのクローンの代表的な存在としてCentOSがある。
クローンなため特徴はほぼRedHatEnterpriseLinuxと変化がなく、極端にとがった部分はない「デファクトスタンダードを知りたい」「保守しやすい環境がほしい」といった場合CentOSは有力な候補となる。
開発当初RedHatは関与しなかったが、現在ではある程度の提携関係にある。しかしRedHatEnterpriseLinuxをあくまで追従する形なのでセキュリティーフィックスが若干遅れるなどのラグが存在することに注意が必要だろう。
しかし、基本的に商用で無料で使いたければ、これを選ぶべきか。
Fedora(Redhat系)
出典:Fedora
RedHat社が支援するコミュニティーベースのディストリビューションであり、RedHatLinuxが商用化する段階でコミュニティーベースとして分岐、現在も存続する先進的ディストリビューションである。
リリースのぺースが非常に早く、ライフサイクルが短い、RedHat社が関与する将来デファクトスタンダードになるであろう技術は、真っ先にFedoraに導入され、実証をえた後に十分に成熟したものがRedHatEnterpriseLinuxへと反映される。
いわばRedHat社の実験場ともいえるだろう。最新の技術に真っ先に触れてみたいのならばFedoraを導入するとよいだろう。
現在パッケージ管理のフロントエンドは「dnf」なっており「yum」から切り替わっているyumがPython2で記述されているのにたいしてdnfはPython3でリメイクされている。現在のselinuxやSystemDなどはFedoraに真っ先に導入されRedHatEnterpriseLinuxに反映された技術の代表である。
Debian(Debian系)
出典:Debian
Linuxの世界でも最も組織的でありフリーであることを尊重しているディストリビューションである。
組織規模も最大級であり、パッケージ管理ツールが非常に優秀である。特に依存関係の解決を初期段階から導入し、現在も脈々とつたわっている、歴史自体も非常に古くほぼ最古のSlackwareと肩をならべる。
パッケージ形式はdeb形式を採用、フロントエンドとしてaptを使用している。Debパッケージは少々複雑な作りをしているが、その分管理が堅実なものとなっている。設定ファイルの位置などがRedHatと違いがあるが、インターネット上でも情報は多くあるので、問題にはならないだろう。Debianなりの理由もあるので、最終的には慣れの問題である。
日本国内ではサーバとしてのシェアはRedHatEnterpriseLinuxほどではないにしろ、メジャーなディストリビューションである。開発の方向性は保守的で、組織内でよく議論されたうえで開発がすすめられるので安心して使用できるディストリビューションである。
Ubuntu(Debian系)
出典:Ubuntu
今回紹介するディストリビューションのなかでは最もユーザフレンドリーなディストリビューションである。「他者への思いやり」がスローガンとなっている。Debianの開発版を元に開発され、デスクトップとして非常に人気のあるディストリビューションである。
通常版とロングサポート版、デスクトップ用途とサーバ用途をある程度わけて開発しているのも特徴といえる。カノニカル社の支援のもとに開発され、ロードマップが明確である。パッケージ形式や設定ファイルなどがDebianとある程度共通しているものの開発の方針は先進的かつ独自的な部分が多々みうけられる。
コミュニティーのサポート体制もしっかりとしているのでLinuxをデスクトップとして使用してみたいという入門者はUbuntuに触れてみるというのも選択肢の一つだ。
Slackware(Slackware系)
出典:Slackware
Linux史上最古のディストリビューションとして現在も存在している老舗ディストリビューションだ。
「シンプルで見通しがよい」のが特徴であり、起動スクリプトもモノリシック(monolithic)、パッケージもバイナリをtarでアーカイブしただけで、パッケージ依存関係などはユーザにゆだねられる。作りも古きよきUnixLikeSystemといった風貌である。
これ以上にないほど簡素かつ堅実な作りをしているので、古株のユーザに手になじむ作りをしているだろう。Slackwareになれると必然的にスクリプトを読んだり、パッケージを一から自分で作成したり、プレーンなカーネルを自力でコンパイルするなど、Linuxを操作管理するための基礎が身につく。
現在サードパーティーのソフトウェアのパッケージを半自動でコンパイルする「sbopkg」やベースシステムのパッケージを管理するための「slackpkg」などのコマンドも開発されている。しかし過去から現在にいたるまでユーザに管理をゆだねるという方針は変っておらず、パッケージの依存関係は解決してくれないので、自分の知力を尽すことになる。
とはいえ一昔まえとくらべると使用しやすくなっているので、一度触れたが挫折したという方ももう一度触れてみてほしいディストリビューションである。
GentooLinux(その他ソースベース)
出典:GentooLinux
数あるディストリビューションのなかでも最も難易度が高いディストリビューションといえる。ローリングリリースという形式をとっており随時新しいパッケージが導入されるようになっている。そのためバージョンという概念が存在しない。
公式ハンドブックを片手に一からベースシステムを手動でインストールすることになる。パッケージ管理はソースコードから半自動でコンパイルするようになっている。
その際依存関係も解決してくれるが、パッケージ管理システムのフロントエンドである「emage」コマンドを使用してコンパイルする際、多数のフラグを調節し自分好みの環境を構築できるようになっている。例えば一切Qt系列のライブラリをインストールしないでほしいというオーダーにもこたえてくれる。
しかしそのフラグの数が非常に多く、依存関係もそのフラグをもとに解決、導入していないものは全て一からコンパイルするため、使い方をあやまると、時間がかかる上に思い通り稼動しないという事故も発生する。
しかしハンドブックを丁寧に読み下し管理下に置くとユーザの我侭に的確にこたえてくれるので実に構築しがいのあるディストリビューションとなっている。
ArchLinux(その他ソースベース)
出典:ArchLinux
「シンプル」を念頭において開発されているディストリビューションである。そのシンプルさはユーザフレンドリーというよりは開発者側からみたシンプルさであり、余計なGUIフロントエンドや過度な独自化を避けることを意味している。
こちらもローリングリリースとなっている。しかし「Pacman」というパッケージ管理システムが存在し、パッケージはコンパイル済のバイナリパッケージが提供され依存関係も適切に解決してくれる。
GentooLinuxと決定的に違うのは「バイナリパッケージが提供される」という点である。これによりユーザは迅速に自分好みの環境を構築することが可能となっている。
コアな部分でシンプルさと使いやすさを両立しており、パワーユーザに人気のディストリビューションである。
LinuxFromScratch(LFS) (その他ソースベース)
「自分で全てを管理したい!!」というユーザのいきつく果ては「LinuxFromScratch」である。その名のとおりベースシステムからなにから全てを自分でコンパイルし環境を構築するのである。
その性質上Linuxにひととおり慣れてから、コアな部分を学ぶための学習用途にも使用される「システムとして最低限なにがあれば実用的に機能するのか?」が学べる教科書としての役割もはたす。
実用としての使用というよりは学習用途としての使用が多いだろう。しかしLinuxFromScratchを一通りこなすと自分でディストリビューションを作成するための基礎技術が身につくので「自分でディストリビューションを作成してみたい」という方にはお勧めしたいものの一つとなっている。
目的別
目的別の用途を確認してみたければ、下記ページをご参考にしていただければと思う。
まとめ
このページではLinuxのディストリビューション特長や比較となる情報をざっくりまとめてみた。
いずれか気になるものがあれば、まずはVirtualBoxやVMなどの仮想環境でトライしていただき、使い勝手を試してみよう。
誤:モノシリック
正:モノリシック
モノリスのような、という意味なので。
いつもご愛読いただきありがとうございます。
ご指摘頂きました通り「モノシリック」→「モノリシック」が正しい記述となります。該当の箇所につきましては修正させて頂きました。
(念の為に確認したところ、だいぶ歴史のある誤記のようですね…)
今後とも、ご愛読のほどよろしくお願いいたします。