rvtl64を使った 64bit版 1FD Linux (2010/07/06)

rvtl64 を使った x86-64 (amd64) 用の1枚のフロッピーディスク (FD) で起動する 64bit Linuxです。前の1FDLinux 32bit版のrvtl を使いましたが、今回は 64bit版のrvtl Linux-2.6.34 を x86-64 (amd64) 用に 64bit でコンパイルしたカーネルを1枚の FD で動作させます。カーネルのコンパイルに使用した .config を ここ におきます。カーネルのコンパイルになれた方は好きなように変更して下さい。コンパイルされた bzImage は 1,222KB になりました。最近、カーネルの圧縮方法がGZIP形式だけでなく、BZIP2、LZMA、LZOから選択できるようになっています。今回は圧縮率に優れた LZMA を使いました。 1.44MB のFD に127KBほどの空きができました。 rvtlにとっては結構大きな空き領域です。改造する方法はこのページの後半部分を参考にしてください。

rvtl64 は Linux 上で動作する Tiny Basic インタプリタの64bit版ですが、32bit版 と同様、init プロセスとして使うことができます。 Linux カーネルはまず /sbin/init を起動します。 ここでは、/sbin/init を /bin/rvtl へのシンボリックリンクにして、カーネル起動後に直接 rvtl64 を起動します。rvtl64 はプロセスID が 1 の場合(initプロセス) には /etc/init.vtl を読み込んで実行します。

ダウンロードとFDへの書き込み

rvtl64_1fd.img (1,440KB) をダウンロードします。

Linux を使っている場合は以下のように展開後、dd を使って FD に書き込みます。

dd of=/dev/fd0 if=rvtl64_1fd.img

Windows の場合は、RawWrite for windowsで FD に書き込みます。 rvtl64_1fd.img の場所を 「Image file」のテキストボックスで指定して 「Write」ボタンを押すだけです。

VirtualBox のフロッピー用のイメージとしても使用できます。フロッピードライイブのイメージに rvtl64_1fd.img を指定して起動します。このページのスクリーンショットは VirtualBox を使って取得しています。

実行

FD から起動するとスクリーンに以下のように表示されます。起動画面の下半分に Linux のコマンドと rvtl のコマンドとの対応が表示されます。RETURN キーを押すと指定可能な画面モードが表示されます。

使用可能なフレームバッファの解像度と色数が表示されます。使用可能なフレームバッファは環境によって異なりますが、640x480x16 や 1024x768x32 など表示可能な色(depth) は16ビットまたは32ビットを指定してください。モード番号の前のアルファベットを入力して指定することもできます。今回のスクリーンショットは 640x480x32 を指定しています。

Linuxのカーネルから直接起動(プロセスIDが1)された場合、rvtl は /etc/init.vtl というファイルが存在すると、それをロードします。今回のFDイメージの /etc/init.vtl では次のようにしています。

|mo none /proc proc
/
|ca /proc/filesystems
/
|ca /proc/mounts
/
, /bin/ws
/
|cd /vtl
,="/bin/rvtl menu.vtl runq.vtl"

まず最初に proc ファイルシステムをマウントして、/proc 以下のファイルからシステムの情報を取得できるように用意します。/proc/filesystems と /proc/mounts を表示した後、/bin/ws で画面に表示できる行数と桁数を表示、最後に子プロセスとして /bin/rvtl がmenu.vtlを実行してメニューを表示します。

数字キーを入力してメニューを選択します。「1」はフレームバッファのデモが 実行されます。

5分ほどすると、元の画面を格子状に復帰して終了します。

経過時間を表示して、メニュー選択に戻ります。

メニューで「9」を選択すると、rvtl64 を対話モードで実行します。/vtl ディレクトリには他にもサンプルが入っています。「~」でメニューに戻ります。

最近はUbuntuを使うようになって、自分でカーネルをコンパイルしなくなってしまいました。たまにコンパイルすると機能が増えていることに気付かされます。