3年8カ月ぶりのメジャーバージョンの新版となる「Red Hat Enteprise Linux 7」(RHEL 7)が米国では6月10日、国内では7月10日に発表された。リリースに際し、開発・提供元の米Red Hat社は、この新版が「エンタープライズOSを再定義したもの」(Redefining the Enterprise Operating System)とのメッセージを発信している。

 RHEL 7もOSの中核としてLinuxカーネルを採用しているという点では、従来通りに「Linuxディストリビューション」であり、この点では連続性を維持している。しかし、誕生から20年を超えたLinuxの歴史において、「エンタープライズOSを再定義した」といえるほど大きな変更が、カーネルとユーザースペースに大別されるLinuxの処理のいずれにも加えられている。まずは、その“大きな変更”について説明する。

SVR4を踏襲したsystemd前史

 Linuxが誕生した1991年当時、PCサーバーのベースとなるパソコンの性能は、現代の一般的なPCと比べると、かなり貧弱だった。CPUの動作周波数はMHz(メガヘルツ)に、システムで利用できる物理メモリーはMB(メガバイト)にやっと到達した程度で、そのCPUもシステムに1つしか搭載できなかった。

 Linuxの生みの親であるLinus Torvalds氏は、UNIXの一種であるMinixなどを参考にして、PC上で動作するUNIXによく似たOSをゼロから作成した。それをインターネット上で公開したことにより、試した人たちの中に協力者が見つかって、急ピッチで開発が進むようになったことは、広く知られている。

 Linuxのお手本となったUNIXは、米AT&T社のベル研究所に端を発し、発展の過程でBSD系とSystem V系の2つに分かれた。このうち、System V系の「System V Release 4」(SVR4)は、Linuxの誕生に先立つこと3年前の1988年にリリースされ、商用UNIXとして各種製品に採用されるなど大きな成功を収めた。

 そしてこのSVR4で採用されたいくつかの仕組みが、その後のさまざまなUNIXにおいて標準機能として搭載されるようになった。例えばSVR4では、OSが立ち上がった際に最初に起動するユーザープロセス(サービスやデーモン、アプリケーションと呼ばれる)の「init」(SysV init)にプロセスID(PID)として「1」を割り当て、そのプロセスが設定に従って他のユーザープロセスを起動する仕組みになっている(図1)。Linuxでも当然のようにinitが踏襲され、誕生から20年超の長きにわたって、利用され続けてきた。

図1●SVR4に採用された、OSが立ち上がった際に各種ユーザープロセスを起動する仕組み
図1●SVR4に採用された、OSが立ち上がった際に各種ユーザープロセスを起動する仕組み
[画像のクリックで拡大表示]