Linuxは,「高性能な基本ソフト」と簡潔に説明されることがある。しかし,これではLinuxの実像が浮かび上がってこない。Linuxを形成している各種フリーソフト群や,オープンソースによる開発形態,ディストリビューションが果たした役割を理解することがLinux活用の基礎になる。実践的な使い方の理解に取り組む前に,まずLinuxの実態をつかもう。

 Linuxに興味を持ち,手元のパソコンにインストールしてみたものの,なじめずに利用をあきらめてしまった――。このような経験を持つ方が少なくないと思う。本誌やLinux関連書籍を参照するなどして,特定の作業はできるようになったものの,もう1歩踏み込んだ使い方をしようとすると,Linuxの「壁」にぶつかってしまうことが多いようだ。

 大半のパソコン・ユーザーが使い慣れているのは,Windows98/NT/2000やMacintoshである。こうしたユーザーがLinuxを使いこなす上で障害になるのは,LinuxがUNIXから引き継いだ機能や操作環境であることがほとんどだ。

 例えば,Linuxパソコンを使うためにはまず「ログイン」しなければならないし,コマンド実行は一般的に「シェル」から行わなければならない。CD-ROMの内容を見るにも「マウント」する必要がある。また,ファイルやディレクトリの「パーミッション(許可属性)」を理解することも不可欠である(図1)。Linuxを使いこなすためには,これらの事柄の意味を理解した上で,具体的な操作方法を知る必要があるわけだ。

図1 Linuxを使いこなすために,LinuxがUNIXから引き継いだ機能や操作環境を理解しよう

 こう書くとLinuxはかなり難しく,簡単には使えないOSと思われるかも知れない。確かに知らなければならない事柄は少なくない。最近ではインストールが簡単になった分,Linuxを導入するだけならさほど難しくなくなったが,使いこなすには依然としてWindows環境とは異なる知識が求められる。ただし,個別の手順やコマンド操作は,Webページやオンライン・マニュアルなどで調べられるので,必ずしも覚え込む必要はない*1。本当に理解しなければならないのは,どうしてそのような手順やコマンド操作が必要なのかを理解することである。そうしたLinuxのマナー,言い替えればUNIXの基本知識を知ることが,Linux活用の近道になる。LinuxがUNIXから引き継いだ機能や操作環境の理解に取り組む前に,Linuxの実態をつかもう。

Linuxの実用環境を構成する3つのソフトウエア

 ここまでLinuxをOSの意味で使ってきたが,これは本来正しい使い方ではない。厳密に言うと,LinuxはOSの基本機能だけを実装したソフトウエアである「カーネル」のことを指す。

 ただし,カーネルだけでは,その上でアプリケーション・ソフトを動作させることができない。カーネルにさまざまなライブラリやソフトウエアを組み合わせることで初めて,OSとして機能するようになる。そのため現在では,カーネルだけではなく各種ライブラリや周辺ソフトウエアを含む,OSを形成するソフトウエア群のことをLinuxと呼ぶことが多い。以下ではカーネルを意味する場合は「Linuxカーネル」,OSを意味する場合は「Linux OS」と表記する。

 では,Linux OSを構成するソフトウエア群とは一体何だろうか。Linux OSは,(1)Linuxカーネル,(2)glibcと呼ぶCライブラリ,(3)GNUソフトウエア,の3つに大別できる(図2)。

図2 Linux OSは,Linuxカーネル,glibcと呼ぶCライブラリ,GNUソフトウエア,の3つに大別できる
ここでは機能面を考慮してglibcを明示したが,glibcもGNUソフトウエアの一つである。
●Linuxカーネル

 Linuxカーネルは,OSとして不可欠な基本機能を提供する。基本機能とは,システムの初期化や,主メモリー管理,プロセス管理,ファイル・システム,そして各種デバイスの制御,などである。まさにパソコンとその上で動作するアプリケーション・ソフトを制御するための中核になるソフトである。

 Linuxカーネルの開発は日々進められており,頻繁にバージョンが更新されている。現時点でよく使われているのは,バージョン2.2系列のものである。2.2系列に次ぐバージョンとして開発が進められているのがバージョン2.4だ。カーネルのバージョンは,2.2.16というようにドットで区切った3組の数字で表現される。最初の数字はメジャー番号,2番目の数字はマイナー番号を示す。マイナー番号が偶数の場合,そのバージョンは安定版と呼ばれる。システムとして実際に利用されるのが,この安定版だ。例えば2.2.16は,2000年8月8日時点での最新の安定版である。最後の16というのはリリース番号であり,不具合の修正など比較的細かな変更が加えられたときに改訂(アップグレード)される。マイナー番号が奇数の場合は開発版と呼ばれ,次期安定版の先行開発版を意味する。8月8日時点での最新開発版はバージョン2.3.51であり,これはバージョン2.4の先行開発版である。

●glibc

 glibcは,正式にはGNU Cライブラリと呼ばれる。その名の通り,C言語で記述されたライブラリであり,Linuxカーネルやさまざまなソフトが,このライブラリで提供される機能を実行時に利用する*2。glibcが提供する具体的な機能は,標準入出力や文字列操作,数値演算などである。

 現時点では,glibcのバージョン2.1が多くのLinux OSで利用されている。1999年中には,libc5と呼ぶCライブラリがLinux OSで利用されることが多かった。このlibc5は,glibcのバージョン1.xを基にして,Linuxに合わせて手を加えたものである。glibc2が登場すると同時に,これをそのままLinux OSと組み合わせて使うようになった*3。ただしglibc2.1までは,このライブラリで日本語(マルチバイト文字)を扱うために専用のライブラリ(wcsmbsライブラリ)やパッチを別途用意して,glibcに組み込む必要がある。現時点での日本語版のLinux OSは専用ライブラリやパッチを組み込んだglibcを利用している。今後登場するglibc2.2では,専用ライブラリやパッチを組み込まなくても日本語が扱えるようになる見込みだ。

●GNUソフトウエア

 GNUソフトウエアは,GNUプロジェクトが開発し,GNU GPL(General Public Lisence)というライセンスで提供されているフリーのソフトウエア群である。GNUプロジェクトは,UNIXライクなOSの開発を目的に,必要なソフト群を開発して提供している。これらのソフト群と,Linuxカーネルとglibcを組み合わせることにより,OSとして利用できるわけだ。実はglibcもGNUプロジェクトによって開発されたGNUソフトウエアである。

 Linux OSで利用されているGNUソフトウエアはglibcをはじめとして,シェルのBash,CやC++などのコンパイラであるGCC(GNU Compiler Collection),make,デバッガのgdbなどのソフト開発ツール,cpやdir,ls,find,grepなどの外部コマンドなど多岐にわたる。エディタのEmacsや画像処理ソフトのGIMPもGNUソフトウエアである。