ホームページに戻る

Linuxリンク集12

Linuxのディストリビューションに関するリンク集です。

概要

ディストリビューションって何?

Linuxは、カーネルとしてはkernel.orgでオープンソースで配布・開発されているが、ここにあるのはOSの中核であるカーネルのみ。

GNU/LinuxとしてのLinuxシステムを構築するためには、他のプロジェクトで配布されているソフトウェア一式と組み合わせる必要がある。

そのため、この組み合わせ作業をしている会社やコミュニティなどを「ディストリビューター」と呼び、その配布物を「ディストリビューション」と呼ぶ。

Linuxをきちんと使うためには、このディストリビューションをインストールする必要がある。

ディストリビューションの構築にはたくさんの開発・メンテナンス作業が必要となる。

GNUプロジェクトは、Linuxと言うソフトウェアはカーネルだけを指しており、LinuxをOSとして使う場合、GNUコンポーネント一式をそのまま使うことから、呼び名として「GNU/Linux」と呼ぶべきだ、と言う主張をしている。特に、Debian GNU/Linuxのように、コミュニティ寄りのディストリビューションは、GNU/Linuxと言う呼び名を採用しているものもある。

昔はSlackwareのようにtarballパッケージでインストールしていたが、パッケージの管理作業が面倒なことから、現在はRPMやDebのような「パッケージ管理システム」でディストリビューションを作るのが一般的だ。

GNU/Linuxがどのようなソフトウェアコンポーネントで成り立っているのかを見るには、LFSBLFSを見ると良いだろう。

何でこんなにたくさんディストリビューションがあるの?

Linuxは、WindowsやMacと違い、どこかの特定の一企業が配布やライセンスに対する主導権を持っているわけではない。

そのため、「誰もが自分のLinuxを作って配布することが出来る」と言うポリシーのようなものがある。

だが、簡単にディストリビューションが個人で作れるわけではない。たくさんのパッケージをメンテナンスする必要がある。

そのバランスから、さまざまな開発母体を持ったディストリビューションが存在する。

Linuxディストリビューション一覧

Debian GNU/Linux

コミュニティによるディストリビューションとしては最大規模。

システムとしては安定志向で、そのためにリリースが遅れがちになり、ソフトウェアのバージョンが古いこともあるが、メンテナンスされているパッケージの数が多い。

パッケージ開発システムとして、Debianにより開発されたDeb/Dpkg/Aptを採用している。

特定のデスクトップ環境にも依存せず、さまざまなデスクトップ環境を試すことが出来る。

保守的だが、リリースバージョンごとにパッケージのメンテナンスをきちんとしているため、サーバー用途にもおすすめだ。機能追加の更新は極力行わず、セキュリティとバグの修正だけを、リリースバージョンごとに更新している。コマンド一発でそれがアップデートされるのは、たくさんのコミュニティのパッケージメンテナーのおかげだ。

組織的にはボランティアによる民主主義のモデルを採用している。また、独自のフリーソフトウェア・ガイドラインを設けていて、極力フリーではないパッケージは標準では採用していない。対応されているCPUアーキテクチャも多く、システムも柔軟に構築出来る。

Debian

Red Hat Linux/Fedora

Red Hatと言う会社が主に開発しているディストリビューション。

旧Red Hat Linuxと言うものは無くなり、代わりにFedoraと言う最新式のコミュニティベースのディストリビューションをRed Hatが母体となって開発し、それを有料サポートのついたRed Hat Enterprise Linux(RHEL)に統合し、安定化させてサポートで儲ける、と言う体制を取っている。

RHELのコード自体はオープンソースで公開されているため、CentOSと言うクローン版もある。企業サーバーにはRHELやCentOSがおすすめだ。

Fedoraは、動くか動かないか分からない不安定版・実験版であると同時に、コミュニティ開発による最新式の技術を取り入れた、Linuxの「最新開発版」であると言える。

Red Hatが昔独自に開発した、RPMと言うパッケージ管理システムを採用。このRPMによって、ディストリビューションはパッケージ管理システムを使って開発するのが主流になった。また、依存関係の解決も容易になり、Linuxを使うのが一部の「オタク」だけではなくなり、ディストリビューションのパッケージを誰でも簡単にインストール出来るようになった。

Fedora

Ubuntu

Debianをベースに、初心者向けで、出来るだけ最新のパッケージと使いやすいデスクトップ環境を取り入れたディストリビューションとして有名。

Linuxディストリビューションとしても、一番使いやすくて初心者向けとして有名で、ユーザーが多い。

Unityと言う独自のデスクトップを採用しているが、フレーバーと言うディストリビューションの公式派生を持っていて、KDEやGNOME、XfceやMATEを使うことも出来る。

Debianの派生のため、比較的たくさんのパッケージをメンテナンスしている。また、Canonicalと言う母体の会社によって、十分にリーダーシップが発揮されていることから、Red Hatとともにオープンソース業界をリードしていく役割を担っている。

Ubuntu

openSUSE

昔は、ドイツのSuSEと言う会社が作っていた。Novellと言う会社に買収され、さらにそれも買収されて、今では良く分からない会社が作っている。

先進的なKDEの開発で有名だが、NovellがXimianと言うGNOMEの会社を買収したことから、GNOMEにも力を入れていた。

最近では、ローリングリリース版(特定のバージョンでリリースするのではなく、常に最新のパッケージにアップデートされる)とバージョンリリース版の両方をリリースしている。

Red Hatのライバル会社で、SUSE Linux Enterpriseと言う企業向け商用サポート版をリリースしている。

openSUSEはFedoraのような実験版と言う側面は薄くて、企業が開発していることもあり、信頼性の高い製品になっている。

openSUSE

Gentoo Linux

独自のPortageと言うパッケージ管理システムを搭載したディストリビューション。

「Gentooとは選択である」と言う標語を掲げている通り、ディストリビューションがお仕着せで「これは標準だが、これは標準ではない」と言うしきたりを決めるのを無くし、ユーザーが独自に自分のディストリビューションを構築する「メタ・ディストリビューション」と言う標語を掲げている。

僕の一番好きなディストリビューション。

インストールにはインストーラーは無く、全て手動でディストリビューションを構築するが、Gentoo Handbookと言う「Gentooの教科書」にインストールやシステムの構築方法のことがたくさん書いてあって、勉強になる。

パッケージ管理はソースベースで、BSDのportsに近い。そのため、たくさんのCPUアーキテクチャに対応出来る。逆に、LibreOfficeのような巨大パッケージには「コンパイルをいちいちするのが時間がかかる」と言う難点もある。バイナリパッケージが提供されているものもあるが、GentooでPortageを使うなら、USEフラグ(コンパイルする時にどのような機能を有効・無効にするかと言うフラグ)をいろいろ設定して、独自コンパイルして使いたいものだ。

Gentoo Linux

Arch Linux

ローリングリリースとシンプル性を両立させたディストリビューション。

今までのLinuxが「バージョンごとにリリースする」と言うバージョン制リリースを取っていたのとは逆に、「いつでも最新にアップデートされる」と言うローリングリリースと言うモデルを採用した。

また、Pacmanと言う独自のパッケージ管理システムを採用。そして、「設定ファイルはそのままにし、余計な設定ツールの提供や独自の開発は行わず、それぞれが自分の力で手動設定をする」と言う、ある意味では初心者お断りのようなシンプルなパッケージ管理ポリシーを採用した。

これはとても優れているモデルで、Gentoo Linuxのようなソースベースのパッケージ管理ではなくても、バイナリで、シンプルで、自分で設定することが出来る。ある意味、Linux本来の姿に戻ったような感じである。そして、余計なツールをごてごてに用意するRed HatやDebian/Ubuntuのやり方とは一線を画し、とても良い上級者向けのシステムとなっている。

だが、インストーラーもなく、手動でインストールするには、経験と知識が必要だ。初心者は、Manjaroと言う、インストーラーと標準デスクトップ環境のインストールが提供されている派生版があるので、それを使うと良いだろう。

Arch Linux

その他

その他にも、たくさんのディストリビューションがある。DistroWatchと言うサイトが参考になる。

余談

GPL

GPLは、二次的著作物における自由なライセンスの継承的な許諾を可能にする。

これは、要は、最初にGPLで許諾されたソフトウェアが、派生版になってもGPLで許諾される(されなければならない)ことを意味している。

どういうことかと言うと、最初に自由な利用を許諾し、自由に派生版を作れるだけではなく、派生版も自由な利用を許諾され(されなければならない)、そこからでも自由な派生版を作ることが出来る。

ある意味やくざのようなライセンスだが、ストールマンのUNIXの独占化による反省として考えられている。

Arch Linuxでは、「プログラマの自由を守るのではなく、コードの自由を守る」と言う表現をしている。

僕としては、開発者一人の自分勝手な自由を守るのではなく、社会全体の万人の自由を守るライセンスだと言えると思う。

ただ、「GPLはストールマンのジョークだ」と言うことを言う人間も居る。

Linuxの代替物

Linuxには、代替として利用出来るソフトウェアがいろいろある。

LinuxカーネルがGPLなのが嫌ならば、FreeBSDやNetBSDのカーネルを使うのが良いだろう。現に、AppleのMac OS X/DarwinやSONYのPlayStationなどでは、FreeBSDのカーネルが使われている。特に、ZFSのような次世代のファイルシステムがLinuxカーネルではGPLと違反するため、ZFSのために*BSDを使う人間が多い。

また、GNUのツールやライブラリが嫌ならば、これも*BSDのツールを使えば良い。GoogleのAndroidなどでは、GNU libcではなく、NetBSDのlibcを搭載している。

それから、GCCの代替物としては、BSDライセンスのLLVM/Clangが開発中だ。すでに、FreeBSDなどで使われている。

ライセンスとは関係ないが、X11の古びた巨大なウィンドウシステムは、waylandと言うシンプルなシステムを開発している。

そういうわけで、けっこう、GNUやGPL系の技術やライセンスではないソフトウェア環境は、次第に整いつつある。

OpenBSDなどでは、標準でGNUやGPLに依存するソフトウェアは、GNU infoだけとなっている。

OpenBSDはセキュリティに強いことで有名で、BSDのコードを入念にチェックして書き直している。初期状態でのセキュリティホールは、プロジェクト発足から長い間2件しか見つかっていない。軍や医療などの分野で基幹システムを作るなら、OpenBSDを使うと良いだろう。

結構Linuxを開発するのは、難しいように見えて難しくは無い。日本がディストリビューションを独自に作るのは、きっと簡単に可能だと思う。