コンピュータソフト
1FD Linux 作成キット
川俣 吉広
最高(50点)
2002年7月13日
フロッピー1枚だけで動く Linux を作るキット。ろくにソフトは動かず、限られた目的にしか使えないが、ハードディスクを使わなくて済むので、長時間マシンを動かしておきたい用途には消費電力や安定性の上で絶好なほか、肥大化した Linux パッケージを通じては理解できない Linux のしくみを勉強できる。
このキットで作られる Linux がどういう原理になっているかというと、カーネルを読み込んだ直後に RAM ディスクを作ることのできるしくみを利用して、あらかじめパッケージングして圧縮しておいたディスクイメージを RAM ディスク上に読み込み、そこからシステムを動かす。
カーネルもいまではかなり大きいので、本来ならカーネルだけでもフロッピーディスク1枚に収めるのは困難なのであるが、いまではカーネルのイメージを圧縮しておいて起動時に展開することが可能となっているため、キットに付属しているカーネルイメージは 300KB くらいしかない。
また、ダイナミックリンクライブラリがあるので、各プログラムの共通部分を一つのライブラリにしておける。その共通ライブラリも、新しいものは 900KB 以上あるので、キットに付属しているライブラリは一世代前の Libc 5 である。それでも 600KB 近くあるのだが、RAM ディスクに展開するまえは圧縮しておけるので、フロッピーに格納する時点ではそこまでスペースは取らない。
ほかに、デバイスドライバや、デバイスドライバを読み込むためのスクリプト、そのスクリプトを動かすための必要最小限のコマンドなどを入れると、たちまちディスクは一杯になる。残念ながら、このキットからそのままフロッピーのシステムディスクを作成して動かすと、一部のネットワークデバイスを認識するだけであとは何もできない Linux が立ち上がるだけである。このキットがキットたるゆえんだ。
だからこそ逆に、いじりがいがある。
私の場合、ハードディスクが接続できなくなった古い VAIO ノートを利用して、USB カメラサーバを作ることにした。高価なウェブカメラだと、カメラ自体がサーバ機能をもっており、ブラウザで接続すると WWW のページでカメラの画像が表示されたり、細かい設定までできるようになっている。しかし、格安で売っている USB カメラだと、パソコンに接続することしかできない。数千円くらいで売っている USB カメラを、壊れかけたノートパソコンと接続することで数万円もするウェブカメラのように使えたら、非常に得をした気分になれそうだったからだ。
ここではあまり書かないが、かなり苦労した。USB をサポートするカーネルに入れ替えたり、必要なソフトを古いライブラリでビルドしていったり、各種コマンドを一つのバイナリにまとめた busybox というパッケージを利用したりして、なんとか一枚のフロッピーに入れることができた。はっきりいって、労力に見合った結果が得られたとは言いがたいが、ひさしぶりに非常に有意義な時間を過ごせたと思う。それに、Linux についての理解が深まったことはなによりだった。
このキットを使うにあたっては、まず最低限、フロッピーディスクドライブが接続された Linux マシンが一台必要となる。なぜなら、キットで Linux システムを作成するためには、ループバックデバイスのついた Linux システムと mke2fs を使ってドライブイメージを作るからである。
はっきりいって私は、こんなに簡単に Linux システムを作ることができるとは思わなかった。ドライブイメージを作ってフロッピーに書き込むためのソフトは、このキットの中核いやそのものなのだが、実は一本のシェルスクリプトに過ぎない。
一時期、フロッピーで動かす Linux が流行ったことがあったようで、私はそのときはふうんとしか思わなかったのであるが、ここまで面白いものだとは思わなかった。多分、割合多くの Linux 好きが手を出したと思うので、いまさらこのキットを紹介するのもなんなのだが、やったことのない人はぜひ一度やってみてはいかがだろうか。きっと Linux への親近感が沸いてくるはずだ。Linux をモノにするには不可欠だろう。
フロッピーの Linux を体験したあとでは、肥大化してしまった有名ディストリビューションを批判したくなるかといえば、そんなことは全然なくて、逆にひどく尊敬したくなるだろう。うまくきれいにまとめたものだと思うようになるに違いない。
このキットに取り立てて欠点と呼べるものはないが、あえて言うなら無駄なコマンドやライブラリが入っていることだ。libc6 がないと動かないようビルドされた mke2fs 自体が混入している。ついでにこいつしか使わないいくつかのライブラリも含まれているので、合計 150KB ほどのゴミが入っていることになる。
それから、libc5 で動くコマンド群をそれなりに新しいディストリビューションでビルドするのには、それなりの工夫が必要だ。libc6 に入れ替えるか、それとも古いディストリビューションを使うかしたほうがいい。libc6 も初期版なら 100KB くらい増える程度で済む。フロッピーのシステムではそれすら厳しいのだが、工夫次第でなんとでもなる。
このキットで作られる Linux がどういう原理になっているかというと、カーネルを読み込んだ直後に RAM ディスクを作ることのできるしくみを利用して、あらかじめパッケージングして圧縮しておいたディスクイメージを RAM ディスク上に読み込み、そこからシステムを動かす。
カーネルもいまではかなり大きいので、本来ならカーネルだけでもフロッピーディスク1枚に収めるのは困難なのであるが、いまではカーネルのイメージを圧縮しておいて起動時に展開することが可能となっているため、キットに付属しているカーネルイメージは 300KB くらいしかない。
また、ダイナミックリンクライブラリがあるので、各プログラムの共通部分を一つのライブラリにしておける。その共通ライブラリも、新しいものは 900KB 以上あるので、キットに付属しているライブラリは一世代前の Libc 5 である。それでも 600KB 近くあるのだが、RAM ディスクに展開するまえは圧縮しておけるので、フロッピーに格納する時点ではそこまでスペースは取らない。
ほかに、デバイスドライバや、デバイスドライバを読み込むためのスクリプト、そのスクリプトを動かすための必要最小限のコマンドなどを入れると、たちまちディスクは一杯になる。残念ながら、このキットからそのままフロッピーのシステムディスクを作成して動かすと、一部のネットワークデバイスを認識するだけであとは何もできない Linux が立ち上がるだけである。このキットがキットたるゆえんだ。
だからこそ逆に、いじりがいがある。
私の場合、ハードディスクが接続できなくなった古い VAIO ノートを利用して、USB カメラサーバを作ることにした。高価なウェブカメラだと、カメラ自体がサーバ機能をもっており、ブラウザで接続すると WWW のページでカメラの画像が表示されたり、細かい設定までできるようになっている。しかし、格安で売っている USB カメラだと、パソコンに接続することしかできない。数千円くらいで売っている USB カメラを、壊れかけたノートパソコンと接続することで数万円もするウェブカメラのように使えたら、非常に得をした気分になれそうだったからだ。
ここではあまり書かないが、かなり苦労した。USB をサポートするカーネルに入れ替えたり、必要なソフトを古いライブラリでビルドしていったり、各種コマンドを一つのバイナリにまとめた busybox というパッケージを利用したりして、なんとか一枚のフロッピーに入れることができた。はっきりいって、労力に見合った結果が得られたとは言いがたいが、ひさしぶりに非常に有意義な時間を過ごせたと思う。それに、Linux についての理解が深まったことはなによりだった。
このキットを使うにあたっては、まず最低限、フロッピーディスクドライブが接続された Linux マシンが一台必要となる。なぜなら、キットで Linux システムを作成するためには、ループバックデバイスのついた Linux システムと mke2fs を使ってドライブイメージを作るからである。
はっきりいって私は、こんなに簡単に Linux システムを作ることができるとは思わなかった。ドライブイメージを作ってフロッピーに書き込むためのソフトは、このキットの中核いやそのものなのだが、実は一本のシェルスクリプトに過ぎない。
一時期、フロッピーで動かす Linux が流行ったことがあったようで、私はそのときはふうんとしか思わなかったのであるが、ここまで面白いものだとは思わなかった。多分、割合多くの Linux 好きが手を出したと思うので、いまさらこのキットを紹介するのもなんなのだが、やったことのない人はぜひ一度やってみてはいかがだろうか。きっと Linux への親近感が沸いてくるはずだ。Linux をモノにするには不可欠だろう。
フロッピーの Linux を体験したあとでは、肥大化してしまった有名ディストリビューションを批判したくなるかといえば、そんなことは全然なくて、逆にひどく尊敬したくなるだろう。うまくきれいにまとめたものだと思うようになるに違いない。
このキットに取り立てて欠点と呼べるものはないが、あえて言うなら無駄なコマンドやライブラリが入っていることだ。libc6 がないと動かないようビルドされた mke2fs 自体が混入している。ついでにこいつしか使わないいくつかのライブラリも含まれているので、合計 150KB ほどのゴミが入っていることになる。
それから、libc5 で動くコマンド群をそれなりに新しいディストリビューションでビルドするのには、それなりの工夫が必要だ。libc6 に入れ替えるか、それとも古いディストリビューションを使うかしたほうがいい。libc6 も初期版なら 100KB くらい増える程度で済む。フロッピーのシステムではそれすら厳しいのだが、工夫次第でなんとでもなる。
[参考]
http://www.on.rim.or.jp/~kaw/
fdlinux/
(最終更新日: 2015年8月30日 by ひっちぃ)