1.3 ディストリビューション
Linux Essentials Online Text | 2021/07/14

ディストリビューションの誕生

Linuxはカーネルを中心として様々なモジュールやシェル、プログラム組み合わせることで構成されたOSです。

カーネルはOSの中核をなす基本ソフトウェアですが、ハードウェアの認識や各プログラム処理の管理を行うだけですので、カーネルだけがインストールされてもコンピュータは動きません。OSとして動作させるには、それぞれの使用用途に合わせてカーネルモジュールや各種応用ソフトウェアをインストールする必要があります。簡素なOSとして動作させるたけでも、数多くのコマンド類やinit、シェル、基本ライブラリ、ファイル操作用プログラム群が必要です。

皆さんが良く使うWindowsやMacOSのような使い方をしたい場合は、Free Software Foundationの GNUプロジェクトが開発したツール郡や、ネットワーク機能を使用するための「TCP/IP ネットワーク」、グラフィカルな画面を使用するための「X Window System」なども必要となり、それぞれ必要なソフトウェアを用意します。

ただし、これらのソフトウェアはソースコードで提供されているため、インストールにはコンパイル(ソースコードをプログラム実行形式に変換する作業)が必要です。カーネルモジュールを使用する場合は、カーネルをリコンパイルしなければなりません。何を言っているかよくわからないかも知れませんが、要はLinuxのインストール作業は非常に困難であり、一部のスキルが高いユーザしか使うことできないOSだった、ということです。

そこで様々な組織やコミュニティは、パソコンとして使用するであろう様々なソフトウェアやユーティリティのソースコードを集めてパッケージ化し、さらにインストールのサポートを行うソフトウェア含んだ「セット」を作りました。このようなセットの事を「ディストリビューション」と呼びます。
ディストリビューションが配布された事により、高度なインストール技術を持たなくても、実用に足るLinux環境を簡単に構築する事が可能になり、Linux利用者が増加していきました。

ディストリビューションは、自由に配付、利用の出来るソフトウェアだけを集め、ディストリビューション自体も無料で提供されるものと、利用に料金が発生する商用ソフトウェアを含んだ有料のディストリビューションに分けられます。有償、無償に関わらず、インターネットを介して提供されることがほとんどです。

【一言メモ】
ディストリビューションがどのようなものか、を理解しておきましょう。

パッケージ管理と様々なディストリビューション

ディストリビューションを提供する組織には様々な方針があります。
例えば、動作確認を徹底的に行い、多少古くてもトラブルが少ない安定したOSを提供しようとする組織がある一方で、できるだけ最新の機能や技術を提供しようとする組織があったり、独自のパッケージを追加するなどして独自性を謳う組織もあります。どのようなアプリケーションを集めて「セット」を作るかは、その組織が掲げる理念やポリシーによって異なります。この違いがディストリビューションの違いとなり、現在ではたくさんのディストリビューションが存在します。

ディストリビューションを語る上で重要な仕組みとしてパッケージがあります。パッケージとは、Linux上でプログラムを簡単にインストールできるようにした仕組みのことで、言ってみれば「インストーラ」です。Linuxにおいては、パッケージなしではインストールが難しいことの他に、次のような問題があります。

● パッケージの依存
 複雑なソフトウェアには、複数のソフトウェアが必要な場合があります。例えばソフトウェアAを動かすために、ソフトウェアBのインストールが必要な場合があります。この時、ソフトウェアAとソフトウェアBは「依存関係にある」と言います。また、依存関係は1対1に限りません。ソフトウェアBが、ソフトウェアCにも必要となる場合もあります。
 Linuxでソフトウェアをインストールする場合は、依存するソフトウェアを確認して一緒にインストールします。アンインストールする場合も同じで、依存するソフトウェアも一緒に削除します。ただし、削除しようとするソフトウェアが、他のソフトウェアと依存関係がある場合は、そのソフトウェアを残して削除します。

● 頻繁な更新
 開発が盛んなソフトウェアは頻繁に更新があります。ソフトウェアを更新するときは、現在稼働している古いソフトウェアをきれいに削除してから、新しいソフトウェアをインストールします。依存関係にあるソフトウェアもこれに合わせてアップデートされることもあるため、一つづつ確認しながらアンインストールとインストールを繰り返します。
 中には、毎日更新されるソフトウェアや、十数のソフトウェアと依存関係にあるソフトウェアなどもあり、場合によっては、この作業だけで多くの時間を費やさなければならなくなります。

パッケージはこれらの困難な課題を解決するために作られた仕組みで、インストールされたファイルの管理やそのプログラムのバージョンを管理します。また、プログラムの依存関係も管理するので、とあるパッケージをインストールしようとすると自動的にそのパッケージが依存しているパッケージを判別し、追加する必要があればそれらのパッケージも自動でインストールしたり、アップデートしたりします。

パッケージの管理に大きく貢献した企業がRedHatです。RedHatは自社ディストリビューションのためにRPM(RedHat Packaging Manager)という仕組みを開発しました。現在では、パッケージ管理にこのRPMを用いるディストリビューションと、UbuntuやDebianなどで使用されているDEB形式のパッケージ管理を採用しているディストリビューションがあります。

RedHat 系ディストリビューション

rpm (Red Hat Package Manager) という形式によるパッケージを管理されているディストリビューション群です。

RedHat Enterprise Linux

RedHat, Incによって開発、販売される商用ディストリビューションの代表格。
その頭文字をとって「RHEL」と略されます。
有償サポートがある点で信頼性が高く、企業向けとして使用されます。
自社開発したソフトウェアをオープンソースとして提供したり、開発コミュニティを支援するなど、Linuxに多大な貢献を行っています。

CentOS

The CentOS Projectが提供する、RHELから商用パッケージや商標を含むものを除いたRed Hat Linuxのクローン。
無償版RedHatとも言える。
企業で採用しているところもある。デファクトスタンダードで、保守しやすいサーバOS。Linuxサーバ技術習得のために使用する人も多い。

Scientfic Linux

CentOS同様にRHELから商用パッケージや商標を含むものを除いたRed Hat Linuxのクローン。
フェルミ研究所が研究所や大学のための開発したもので、科学・物理学系で利用されるパッケージが含まれているのが特徴。
一時期、CentOSの更新が止まったためCentOSの代替となることが期待されていたが、この問題が解消したことで目的がなくなり、開発が停止した。

fedora

Redhatが支援するコミュニティ「Fedora Project」ベースの個人向けディストリビューション。無償。
最新の技術をいち早く取り入れていることが特徴で、そのノウハウをRed Hatにフィードバックしています。
1年でサポートが切れるため、頻繁なバージョンアップが必要。Linuxの動向を追従したい人に向いています。なお、ローリングリリース(※)を採用しており、リリース間隔は半年。
※ ローリングリリースとはソフトウェア開発においてソフトウェアシステムを断続的(頻繁に)に更新していくリリースモデルを指します。

SUSE Linux Enterprise Server

ドイツを本拠地に置く、SUSE社の老舗ディストリビューション。
ヨーロッパで広く普及していて、日本ではRHELに次いでシェアがある。金融などのミッションクリティカルシステムや高可用性を求められる場面での稼働実績が高い。
パッケージ形式はRPMだが、Zypperというコマンドを使用する。また、「YaST」という管理ツールを持っているのが特徴で、コマンドラインを使わなくてもGUIで大部分のシステム設定やパッケージ管理を一言管理できる。製品版は10年間のサポートが付く。

Debian 系ディストリビューション

deb 形式によるパッケージ管理。rpm 形式よりも強力なパッケージ管理でソフトウェア同士の依存関係も詳しく管理している。インストールやアップデートを行う上での使用感はrpmとほぼ変わりはない。

Debian GNU/Linux

Debian Project」によって提供されるコミュニティベースのディストリビューションで、ベンダーからの支援を受けることなく開発される、古くから存在するディストリビューションの一つ。debian系Linuxのベースとなるディストリビューション。 「フリーソフトウェアである事」を理念としており、GNUソフトウェアを積極的に採用している。

Ubuntu

Ubuntuプロジェクトが、カノニカル社から支援を受けて開発している、Debianから派生したディストリビューション。「誰にでも使いやすい最新かつ安定したOS」が開発目標で、インストールの容易さと使いやすさが特徴。デスクトップ環境においてはLinuxの知識がなくてもWindows並みに使用することができる。 デスクトップ版とサーバ版があるが、リポジトリは共通で利用において差はない。使いやすいということで、クラウドサービス環境でサーバOSとして採用するケースも多い。通常版と長期サポート版(LTS:Long Term Support)がある。

Linux Mint

Linux Mintは「洗練」「最新」「快適」なデスクトップ環境を提供することを目的としたUbuntuをベースとしたディストリビューション。リポジトリもUbuntuと共有している。独自のテーマを提供し、「mintTools」というツールを用いることで誰にでも簡単で使いやすいシステムを目指している。

Raspbian

Raspberry Piに最適化されたDebianベースのディストリビューション。SDメモリーカードにセットアップして使用する。aptを使って様々なパッケージをインストールすることが可能だが、ハードウェアの機能制約から、教育用、小規模開発者向けであると言えます。
※2020年5月より、「RaspberryPi OS」に名称変更されている。

その他のディストリビューション

Arch Linux

Arch Linuxは、「シンプリシティ(簡素さ)」「ミニマリズム(無駄のない)」「エレガンス(上品さ)」をコンセプトとして開発されたディストリビューション。これらのコンセプトは設計者目線の話であり、簡単にインストールできるとは言えない。上級者向けのディストリビューション。ローリングリリースに対応しているという点も特徴の一つ。

Android

Androidは、Google社が開発したモバイル用OS。Linuxカーネルとオープンソースソフトウェアがベース。スマートフォンやタブレットなどのタッチスクリーンデバイス向けにデザインされたもので、テレビ用の「Android TV」や自動車用の「Android Auto」、スマートウォッチなどのウェアラブルデバイス用の「Wear OS」などに派生。世界一のシェアを持つモバイルオペレーティングシステムといえます。

【一言メモ】
ディストリビューションの名前と特徴を組み合わせて覚えておきましょう。
名前を聞いて、どちらのRedhat系、Debian系どちらの系列かがわかると尚良いです。
記述問題に出題される可能性もあるので、スペルも正確に書けるようにしましょう。

組み込みLinux

Linuxは様々な場所に使われています。皆さんの家庭にあるインターネットルータや、無線アクセスポイント、HDDレコーダや家庭用ゲーム機、カーナビや、テレビ、冷蔵庫や洗濯機などの家電などにもLinux(UNIX系OS)が組み込まれています。共通して言えるのは、いずれもいわゆる「パソコン」の形をなしていないハードウェアだという点です。さらに言えば、パソコンを動かすために必要なリソースを持たないハードウェアであるという点です。

このようなWindowsやMacOSが動かないような低スペックのハードウェアでLinuxが使われることが多いのは、組み込みハードウェアに対する移植性に適しているためです。具体的には、ローコスト、低消費電力対応、様々なアーキテクチャへの対応、豊富なミドルウェア(通信プロトコル等)のサポート等が挙げられます。


つまり、Linuxは前述したような、パソコンに満たないような小さなリソースを使って動かすには、非常に都合が良いのです。このように、いわゆるパソコンではない「組み込みシステム」に特化したLinuxシステムのことを「組み込みLinux」と呼びます。先に紹介した「Android」も組み込みLinuxの一つといえます。

クラウドにおけるLinux

クラウドや仮想化時代が全盛を迎え、企業は初期投資、運用費、リプレースに費用がかかるオンプレミスから、使いたいときに使いたい分だけ使えるクラウド、仮想化サービスにシフトするようになりました。

クラウドは非常に安価に、また簡単にサーバを用意できる環境を作りました。これにより、ライセンス料が発生しないLinuxのサーバ利用は増え、クラウドサービス上では、LinuxOSが市場シェアの大きな割合を占めています。特に、いち早くAWSへの適用改良を行った「Ubuntu」は、RedhatやCentOSを抜いて、クラウドサービスにおけるLinuxOSシェア第一位となっています。

おまけ:メンテナンスサイクルとLTS

ローリングリリースは別として、どのディストリビューションにもメンテナンスサイクルが存在し、その間隔はディストリビューションを開発する組織のポリシーによって異なります。ferodaは1年、Ubuntuは9か月としています。

一方で、Linuxをインストールするためのサーバ等のハードウェアの耐用年数は約5年ですから、企業は一度システムを構築したら5年は同じシステムを使用したいわけです。

企業にとって、ユーザにサービスとして製品を提供する場合、原則としてサポートが終了している製品を使用することはできませんから、LinuxOSのサポート期間とハードウェアのサポート期間が大きく乖離するのは問題で、頻繁に新バージョンがリリースされるディストリビューションはビジネスにはマッチしませんでした。

そこで各ディストリビューターは、長期にわたりサポートされるLTS(Long-term Supprt)版を用意し、長期にわたるパッケージメンテナンスを保証することにより、ビジネスにも使用しやすくしました。ディストリビューターにより異なりますが、5年~10年程度の間隔で様々なプランが用意されています。

【一言メモ】
ローリングリリースや「LTS」という言葉、意味は覚えておきましょう。
また、どのディストリビューションで採用されているかを確認しておくとよいです。

PAGE TOP