目次


Linux通へのステップバイステップ: 第1回 ちょっぴりLinuxが語れるようになる基礎知識

Comments

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

Linuxを利用するためには、最初に「ディストリビューション」という言葉を正確に抑えておきましょう。一般にLinuxを導入する場合、必ずディストリビューションを入手することになるからです。

英語での意味は、以下のとおりです。

distribute:配布する

distribution:配布物

distributor:配布者

つまりLinuxディストリビューションとはOS配布物であり、ディストリビューターはメーカー/プロジェクトとなります。

Linuxディストリビューションとは、Linuxカーネルに各種ソフトウェアを集め、システムとしての一通りの機能を持ったソフトウェアの集合です(図1)。「Linux」とはそもそもカーネル単体の名称なのですが、現在ではカーネルを含めたシステム全体を指す言葉としても用いられることが普通です。

図1. Linuxディストリビューション
図1. Linuxディストリビューション
図1. Linuxディストリビューション

カーネル

カーネルとは、ハードウェアの管理、プログラムの実行管理、ファイルシステムなど、OSの基本サービスを提供するプログラムのことです。LinuxカーネルはGPLに従って配布され、誰もが入手/改造/再配布できるようになっています。2007年3月時点でLinuxカーネルの最新バージョンは、2.6.20.3であり、Linuxカーネルのソースは、kernel.orgから入手できます。

Linuxカーネルは、1991年、当時フィンランドの学生だったリーナス・トーバルズ(Linus Torvalds)氏(現在、The LinuxFoundationに所属)がi386のタスクスイッチ*の勉強のために作り始めたプログラムに端を発しています。彼はMINIX*を参考にしたOSの基本となるプログラムソースを、「ハッカーが楽しむためのもの」としてネットニュース*に公開しました。以来、多くの人々の協力によって開発が進められ、POSIX*準拠を目指すOSとして広く利用されています。

カーネルバージョンの意味が変わった

ディストリビューションのスペックが紹介されるとき、最初に目につくのがカーネルのバージョンです。ソフトウェア開発では、新機能をどんどん追加する更新頻度の高い開発版と、機能のバグフィックスなどだけを主に行う安定版が用意されることが多くあります。Linuxカーネルの開発も、そのように行われています。

これまで安定版と開発版はマイナーバージョン番号によって区別でき、開発版は奇数、安定版は偶数をつける決まりになっていました(図2)。

図2. バージョンとその意味
図2. バージョンとその意味
図2. バージョンとその意味

しかし、2005年3月の2.6.11以降、「2.6.x.y」のような、さらなるメンテナンスナンバーが追加され、「2.6.x」に対して「2.6.x.y」は安全な修正のみを反映させることになりました(図3)。

図3 Linuxカーネルのバージョン管理

従来の管理方法に照らし合わせると、「y」のナンバーがないバージョンのみが開発版となり、「y」のナンバーがあるものが安定版ということになるのでしょう。しかし、これまでのような開発版と安定版をある程度の期間並行して開発する状態ではなく、機能取り込みとメンテナンスのサイクルが極端に縮まった状態の管理方法に変わったので、従来の意味での開発版はなくなった状態です。

2.4 or 2.6?

現在、主要なディストリビューションでは、2.6系か2.4系のカーネルが搭載されています。2.6系は、2.4系のチューニングといった面が強く、過去のリリースと比べて安定した状態でリリースされたためもあってか、各ディストリビューションとも迅速に移行が進んでいます。

しかし、2.4系が搭載されているからといって、一概に古いとは限りません。主要な変更点が高負荷時の性能向上のため、負荷が少ない環境での利用、個人利用などでは2.4系でも大差はありません。また、2.6系でサポートされたハードウェアも、ハードウェアサポート部分を2.6系からバックポート*していることもあるので、2.4系でもきちんとメンテナンスされ、2.6系とほぼ変わりなく使える場合もあります。リリース日やメンテナンスアップデートの頻度などを目安とするといいでしょう。

glibcとそのバージョン

カーネルと同様にバージョン番号を目にするのが、glibc(GNU C library)です。

glibcは各アプリケーションでよく使われる機能を持ったライブラリであり、ほとんどのLinuxアプリケーションはglibcに依存します。glibcの細かなバージョンによる目立った機能差はないので、一般ユーザーがバージョンによる内容の違いを逐一チェックする必要はないですが、各種アプリケーションが依存するため、ソフトウェア管理において注意が必要な要素と覚えておきましょう。

ソフトウェア管理において、

利用しているライブラリが変われば、アプリケーションをコンパイルし直す

というのは前提です。ただし、変更が小さく、アプリケーション側でその影響を受けない場合は、コンパイルし直さなくても構いません。

つまり、glibcが変われば、多くのアプリケーションはコンパイルし直すことになります。以前は仕様変更が大きく、互換性のなさがLinuxディストリビューションの欠点とまで言われていましたが、現在は変更も落ち着き、バージョンの違いにシビアになる必要はなくなってきています。また、このあたりの調整/検証は通常ディストリビューターが行ってくれるので、一般利用者がglibcのアップデートで特別な作業をすることはあまりありません。商用アプリケーションなどでソースが公開されておらずバイナリを取得して利用している環境や、各自でソースからコンパイルしたアプリケーションを利用している環境では、glibcのバージョンアップがあった場合に注意しておきましょう。

X Window Systemの変更

GUIの中核部分となるのはX Window Systemです。Linuxディストリビューションでは、旧来XFree86が使われていたが、機能実装にかかわる開発メンバーの対立やXFree86のライセンス変更の問題があったため、X.OrgFoundationが設立されて、現在はX.Orgのものが主流です。

もともとX.Orgは、UNIXを管理するThe OpenGroup内の、X Window Systemの規格開発を行う団体で、以前から存在しています。そのX.Orgと幾つかのベンダーによってX.OrgFoundationが設立され、X Window Systemの開発メインストリームはX.Org Foundationに移行しています。主要な協賛企業は、UNIXベンダーのHP、サン・マイクロシステムズ、IBMのほか、PCXサーバベンダーのWHQなどになります。

X.Org Foundationからの最初のリリースとして、2004年4月にライセンスの問題のないXFree86 4.4RC2およびX.OrgX11R6.6をベースに、X Window System Version 11 Release 6.7(X11R6.7)がリリースされました。「X11R6」という表記は規格名でもあって混乱しやすいので、X.OrgのX11R6.xもしくは、単にXorg6.xと呼ばれることが多いです。2007年3月時点での最新版は、X11R7.2となっています。

デスクトップ環境

多くのディストリビューションには、デスクトップ環境としてKDEもしくはGNOMEが搭載されています。デスクトップ環境とは、ウィンドウ操作などを実現するウィンドウマネージャやアプリケーションを共通の開発基盤で構成することによって、共通のインタフェースやドラッグ&ドロップなどの機能を提供するものです(図4)。なお、ウィンドウマネージャは任意のものを選べます。デスクトップ環境は必須ではありませんが、KDEもしくはGNOMEを導入しておくとGUI上での操作が楽になります。

図4. デスクトップ環境
図4. デスクトップ環境
図4. デスクトップ環境

バージョン表記の注意

各アプリケーションの開発は、さまざまな個人、コミュニティー、企業で進められていますが、そこでのバージョン表記と、ディストリビューションに取り込まれたバイナリパッケージのバージョン表記とで意味が異なることがあるので注意してください。具体的には、図5のような関係になることが通例です。セキュリティ対策やバグはマージしてメンテナンスバージョンをアップしていくが、機能追加はしない、一部だけ機能追加といった形です。例えば、DebianGNU/Linuxの安定版では、リリース時の各パッケージのメジャー/マイナーバージョンを基準とし、メンテナンスバージョンを上げていきます。そのため、セキュリティ対策でオリジナルバージョンが上がっていても、メジャー/マイナーバージョンは変わらず、内容は実質的に同じでもバージョンが異なるということになります。ありがちなのが、セキュリティ勧告などで「対象がバージョンx.x以前」となっていた場合、バージョンナンバーだけを見て「セキュリティ対策がなされていないぞ」という誤解です。DebianGNU/LinuxやRed Hat/Fedora Coreは、セキュリティ対策が迅速でアップデート情報もきちんと出しているので、内容も確認する習慣をつけておきましょう。

図5 バージョン管理

このページで出てきた専門用語

タスクスイッチ
複数アプリケーションが同時に動作するように見せるマルチタスクを実現するために、プログラムの実行を切り替えること。またその機能のこと。
MINIX
Andrew S. Tannenbaum教授が開発した学習・研究目的のUNIX互換OS。C言語で書かれたソースコード付きの書籍の形で、1987年から販売されました。
ネットニュース
電子掲示板システム。テーマごとにニュースグループがあり、インターネットの初期には主流の意見交換の場でした。利用するにはネットニュースを配信しているサーバにニュースリーダー(メールクライアントの機能としても実装されることが多い)と呼ばれるソフトウェアで接続します。
POSIX
IEEEによって定められた、UNIXベースのOSが備えるべき最低限の仕様のセット。Portable Operating System Interfacefor UNIXの頭文字をとったもので、「ポジックス」と読みます。
バックポート
上位バージョンに実装された機能の一部を、下位バージョンに実装すること。通常はバージョンが大きくなるにつれて機能が追加されていきますが、安定版、開発版と分岐して開発しているプロダクトではよくあることです。

ダウンロード可能なリソース


関連トピック


コメント

コメントを登録するにはサインインあるいは登録してください。

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Linux
ArticleID=246053
ArticleTitle=Linux通へのステップバイステップ: 第1回 ちょっぴりLinuxが語れるようになる基礎知識
publish-date=04272007