こんにちは、川合です。
小柳さんやI.Tak.さん、マウス周りの障害を突き止めてくれてありが
とうございます。そのうちデバッグしたいと思います。
さて今の僕はすっかりKHBIOSで頭がいっぱいになっています。その辺
を今までのいきさつもセットで簡単に紹介しましょう。
KHBIOSの最初のターゲットはもちろんコンパクトフラッシュです。も
ちろん最初のターゲットをFDDやHDDなどにしてもいいんですが、これら
はKHBIOSなしでもブートできますので、いまいちありがたみがないでし
ょう。リムーバブルデバイスで、高速アクセス可能で、しかもドライブ
が安い(ノートPCの場合)ということで、コンパクトフラッシュを最初
のターゲットにしました。
コンパクトフラッシュにOSをインストールするとしても、結局はディ
スクイメージになります。ユーザにとってはただ容量が大きくなっただ
けで、FDと雰囲気は同じです。・・・しかし問題が一つあります。
FDは1440KBというサイズだと決め付けることができましたが、コンパ
クトフラッシュはそうはいきません。8MBかもしれないし、16MBかもし
れないし、32MBかもしれないし、64MBかもしれないし・・・なのです。
この場合、配布するディスクイメージの種類をたくさん用意するという
方法はありますが、それは配布するほうもダウンロードするほうも面倒
で混乱します。
また今のOSASKはディスクを300KBくらいしか使っていないのに1440KB
のファイルを提供していますが、これも無駄です。64MBのコンパクトフ
ラッシュ用のディスクイメージは64MBです。もちろんアップロード時に
は圧縮されていますが、インストール時には一時的に展開する必要があ
るでしょうから、HDDに空きがないとインストールできない、なんてこ
とも起こり得ます。
これらの問題を解決しようと思い、ディスクイメージの末尾の空き部
分を削って、実際のメディアへの転送時に空き部分をメディアのサイズ
に合わせて書き込む仕組みを作ろうとしています。そしてこの仕組みに
FAT16を対応させて、ついでに単純化したのがFAT16-512です。
しかしFAT16-512でいろいろ実験しているうちに、やはりフォーマッ
ト最大サイズ32MBという上限はかなり厳しいと感じるようになりました
。ということで、クラスタサイズ512バイトという制限を無くして、さ
らにあちこちにアラインを入れて、512B、4KB、32KBに対応したSF16と
いうフォーマットにしました。これなら最大サイズは、32MB、256MB、
2GBになり、これならそう悪くはないと思います。
SF16では、IPL/BPB&FAT&ルートディレクトリ&リザーブの合計が
320KBに固定で、FATの位置やルートディレクトリの位置なども決め打ち
できるので、OSは楽です。
それで、今やっていることは、SF16のコンパクトフラッシュを実際に
作ってみて、それがWinやデジタルカメラで読み書きできるか、それを
試そうとしています。今はそのフォーマット用のプログラムを作ってい
ます。実験がうまくいったら、SF16をドキュメントしようと思っていま
す。
もちろん他のフォーマットもサポートしますが、とりあえず最初はこ
のSF16のみをサポートしたいと思っています。SF16だと、簡単にインス
トールサイズがコントロールできますが、普通のFAT16だとこういう利
点は保障されません。それでもSF16はFAT16と十分な互換性を有してお
り、多くのFAT16対応OSやFAT16対応機器で読み書きできると思われます
。
以前街の名無しさんが[OSASK 5957]でなんでFAT16-512なのか、FAT16
なんてそれほどよいフォーマットとは思えないという主旨の事を言われ
ました。それはもちろんそのとおりで、だからもっとよいフォーマット
に統一するべきなのですが、とりあえず、取っ掛かりとしてはSF16(つ
まりFAT16-512の拡張版)は悪くないと僕は思っています。
いきなり最初からなんでもOKということにしてしまうと、汎用インス
トーラが作れません(インストーラといっても、ただSF16のディスクイ
メージを引き伸ばして書き込んでいるだけですが)。今のOSのように個
別のOSが個別のインストーラをもつとなると、ユーザの管理は煩雑にな
り、インストーラを動かすためのOSがまた必要とかいうことになり、あ
まりよろしくないと僕は思っています。今までディスクイメージレベル
で容易にドライブサイズを可変できるものは、そうなかったと思うので
SF16はそれなりに役に立つフォーマットだと思います。
インストールに限らず、バックアップなどでもSF16は役に立つはずで
す。最初は32MBのコンパクトフラッシュに入れていたけど、これを64MB
とか2GBのコンパクトフラッシュにコピーできるとか、CD-Rに書き込む
とか、そういう時に役に立つでしょう。逆にHDDで2GBの区画があるんだ
けど、前のほうの16MBしか使っていなくて、だからバックアップも16MB
で済む(ディスクイメージが16MBになります)ということもできます。
もちろん普通のFAT16だって、コピー先を普通にフォーマットしてフ
ァイル単位でコピーすればいいという考え方もありますが、これだとデ
ィスクのどの部分にファイルのどの部分があるのかという配置は狂いま
す(今のOSASKのようにシステムファイル位置を決め打ちしてタイプの
OSでは、これは非常に迷惑です)。バックアップの際にリード側はFAT
をたどらなければいけなくなるのでシークも発生し(まあデフラグされ
たようなきれいな配置ならこの限りではありませんが)、コピープログ
ラムはファイルシステムを解釈しながら読み書きするので複雑になりま
す。・・・ということで、FAT16よりはSF16のほうがいいと僕は思って
います。
もしSF16のテストが順調に行ったら、うちのコンパクトフラッシュは
全てSF16にしてしまうつもりですし、HDDのFAT16の部分もSF16にしてし
まおうと思っています。
それでは。
--
川合 秀実(KAWAI Hidemi)
OSASK計画代表 / システム設計開発担当
E-mail:kawai !Atmark! imasy.org
Homepage http://www.imasy.org/~kawai/