今回から3回にわたり,自分Linuxのルート・ファイル・システムを完成させて,ハード・ディスク上から起動できることを試してみる(図1)。まず,以前に説明を持ち越した「(5)初期化プロセスの実行」から簡単に解説しよう。

図1●自分Linux作成作業の流れ
図1●自分Linux作成作業の流れ
今回は,自分Linuxのルート・ファイル・システムを完成させる。

初期化プロセスの実行方法

 初期化プロセスを理解するためには,まずUNIX系OSの2つの流れを知っておく必要がある。「System V」(「システムファイブ」と読む)系と「BSD」系という2種類である。それぞれの生い立ちは,別掲記事「System VとBSDの成り立ち」を見てほしい。

 現在では,両者に機能面での大きな差はないが,設定ファイルの記法などに違いが見られる。特に,OS起動時に実行される「init」というプロセス(初期化プロセス)の動作や設定に大きな違いが存在する。

 BSD系のinitは,「シングル・ユーザー・モード」と「マルチユーザー・モード」という2つの動作モードしか持たない。そして,/etc/rcという単一のスクリプトを実行してシステムの初期化処理を行う。そのため,初期化時の各種設定は,/etc/rcスクリプト内(あるいはそこから呼び出されるスクリプト)に記述しなければならない*1

 一方,System V系のinitでは,動作モードを拡張した「ラン・レベル」という概念を利用する。よってBSD系よりも多くの動作モードでOSを稼働できる。各ラン・レベルでどのような初期化処理を実行するかは,/etc/inittabファイルに設定される。ただし,同ファイル内に設定を直接記述するのではなく,各デーモンの起動や停止などに処理を細分化した設定ファイル(またはスクリプト)を用意することが多い*2

 L i n u x カーネルそのものは,System V系列にもBSD系列にも属さない独自のUNIX互換OSである。ただし一概には言えないが,現状では,System V系のinitを採用するLinuxディストリビューションが一般的だ。例えば,Vine LinuxやFedora Coreなどは,0から6までの7種類のラン・レベルを持ち,System V類似の設定ファイルを持つ*3

 以上のことから,自分L i n u x もSystem V系のinitを採用する。

System VとBSDの成り立ち

 そもそもUNIXは,1969年に米AT&T社(の子会社)が開発したOSである。ところが当時のAT&Tは,独占禁止法により公衆電気通信事業以外の産業への参入が制限されていた。そのためUNIXを販売できず,無償で配布することを決めた。

 これによりUNIXは急速に普及することになる。参入制限という障害のために無償配布を決めたAT&Tであったが,UNIXへの機能追加やバグ修正には消極的だった。その結果,ユーザー・グループによる情報交換や機能追加,改良などが活発化した。

 特にカリフォルニア大学バークレー校での活動が活発で,ここでの成果はやがて「BSD(Berkeley Software Distribution)」の名で配布されるようになる。BSDは,デマンド・ページング方式の仮想記憶機構やTCP/IPスタックを備えるなど高機能かつ高性能であり,またたく間に支持を集めた。BSD系のOSとしては現在,FreeBSDやNetBSD,OpenBSDなどのほか,Mac OS Xがある。

 一方,1984年にAT&Tが分割されたことで,同社もコンピュータ産業に参入できるようになった。そこで,それまでに同社が開発してきたUNIXの各版を統合した上で,機能拡張を施したものを「UNIX System V」として販売し始めた。A T & T はその後,BSDの機能を大幅に取り込んだ「SystemV release 4」(SVR4)をリリースし,このSVR4が多くの有償UNIX(AIXやSolarisなど)のベースになった。