最近,一部のパソコン好きの間で,OS(オペレーティング・システム)を自作するというのが流行っているらしい。いや,これからちょっとしたブームが起きる予感がする。もちろん職場で使うパソコンではなく,自宅などで個人的に使うパソコンに導入するOSのことである。

 パソコンの「自作」なら多くの人が経験をお持ちではないだろう。実際,筆者も10年くらい前に,自宅で使うパソコンを自作した経験が1度だけある。まぁ自作といっても,ボードの回路から自分で設計するのではなく,既製のパーツを買ってきて組み立てるだけだが,それでも,“オリジナルのマシン”を作るメリットは十分にあった。

 自分の好みのグラフィック・ボードや,性能が高いマザー・ボードやCPU,カッコいいデザインのケースなどを組み合わせると,比較的低コストで高性能なマシンを作ることができた。自己満足のところが大きいが,パソコンの各種ハードウエアに関する知識も身に付いた。SEやプログラマなど,IT系の仕事に就いている人にとって,自作経験は“仕事に役に立つ知識”の足しにはなるだろう。

 ただし,結局のところ,できあがったパソコンに導入するのは,出来合いのOS「Windows」がほとんど。OSがどう起動されて,どう動くかといったことはどうでもいい。いったんパソコンを組み立てれば,あとはOSをインストールするだけである。

 パソコンのパーツを組み立てるだけなら,OSやハードウエアに関する深い知識がなくてもできる。でも,ハードウエアがプログラムによってどう使われているのか,といった内部に関しては,ブラックボックスになってしまう。趣味の域なら十分だろうが,「もっとスキルを高めたい」という向上心豊かなプログラマを満足させるものではない。

 単なるパーツの知識じゃなくてOSの仕組みをもっと知りたい。概念的には分かるが,いまいち内部に踏み込めない。この悩みを解決するのに手っ取り早い方法が,OSの自作だ。

 OSは,コンピュータで動くプログラムのベースとなるソフトウエアである。コンピュータを構成するメモリーやデバイスなどのハードウエアを上位のアプリケーション・プログラムから隠し,しかも,多数のプログラムがあたかも同時に動いているように時分割でハードウエア資源を割り当てる。ハードウエアを効率よく配分するという役割もある。プログラマはOSの内部を知らなくても、ライブラリやシステム・コールを使うことでハードウエアやOSの機能を簡単に利用できる。逆に言えば,OSを自作すれば,OSの仕組みだけではなく,ハードウエアの仕組みも深く理解できるようになる。


タダで使えるものは使おう

 簡単なOSなら,がんばれば他人が書いたソースを用いずにスクラッチから作ることもできるかもしれないが,それはあまりにも非現実的である。日常的に使えるOSにはなり得ない。そもそも,アプリケーション・プログラムまで自作する必要がある。

 そこでお勧めなのがLinuxのソース・コードを使うという方法である。ご存知の通り,LinuxはOSの核となるカーネルのソース・コードが公開されている。これをベースにして,自分なりのOSを作るのである。もちろん,無償で入手できる。

 Linuxというと,「Red Hat Linux」や「Fedora Core」,「Turbolinux」のように,さまざまなソフトがパッケージされた,いわゆる「ディストリビューション」を思い浮かべる人が多いかもしれない。これらはCD-ROMやDVD-ROMなどから簡単にインストールできるのに加え,立派なGUIも入っており,Windowsを使ってきたユーザーにもさほど違和感がない。

 これらのディストリビューションをそのまま使わずに,自分で作るのである。ソース・コードをスクラッチで作るわけではないが,既製のパーツを使ってオリジナルのパソコンを作ることを「自作」というのと同じ。Linuxカーネルのソースは単なるパーツの1部でしかない。いろいろなソフトを組み合わせて,自分だけのOSを作ることは,十分「OSを自作する」といえる。

 もっとも,カーネルのソースを使うからといっても,普通に使えるOSとして動かせるようにするのは,実際には大変な作業をともなう。知識も必要とするし,パソコンを自作するよりもかなり面倒である。OSとして仕上げるためには,カーネルだけではなく,起動プログラム,各種のコマンドなどをそれそれ入手して導入しなければならないし,さまざまな設定ファイルも自分で作らなければならない。

  そういうときは,どうすればいいか。ネットで情報を探したり,掲示板などで聞いたりするのも一つの手だろう。でも,もっと簡単なのは,やはり解説書を探すことではないだろうか。例えば,今月発売されたばかりの「自分で作るLinuxOS」は,Linuxを自作するために必要になるソフトウエアのソース・プログラムや設定ファイルを1枚のCD-ROMにまとめている。何が必要かを調べたり,自分で入手する必要がない。OSを自作してみようと思っている人は,まずこうした解説書を読むのが良いだろう。

 OSやプログラムの動作原理を詳しく知りたい,起動の仕組みを詳しく知りたい,自分だけのOSを作りたいと思っている個人やプログラマなどに,「OS自作」をお勧めしたい。まずは,セカンド・マシンに「世界に一つしかない自分Linux」を導入してみたらいかがだろうか。