MicrosoftのNTFSよりも以前のファイルシステムはFATです。現在でもFAT32などは使用されています。FATとはファイルの配置テーブル(File Allocation Table)ですが、当時の主流OSのCP/Mは全く違うファイルシステムを使用していました。ファイルの配置情報はディレクトリエントリの中に収納されていて、ファイルが大きくなるとディレクトリエントリを増やして対処していました。このFATというアイデアはもともとNECのPC-8801用のN88-DISK BASICのアイデアをMicrosoftが真似したもので、本来の起源は日本のしかもNECにあります。IBM-PCの爆発的なヒットで世界的にFATが普及したため忘れられていますが、MS-DOS/PC-DOSは起源ではないわけです。
なんてことはないのだ §
古川享さんがTwitterでPC-8031という言葉に反応した人と言って書いたリンクを辿ってびっくり。
「Microsoft が NEC N88-DISK BAISC で採用されていた FAT を真似た」という誤解に気付いたという文章ですが、そのような誤解ができてしまうあたりに、歴史的な「常識」レベルの話がどこかで欠落しているように思えます。
私が把握している事実関係は以下の通り。
- FATファイルシステムはNEC PC-8801で採用される前に既にNEC PC-8001で採用されている
- PC-8001に搭載されたBASICはOSを持たないスタンドアロンBASICで、ファイルシステムを含めてもともとMicrosoft製
- Microsoft製スタンドアロンBASICは既に各社のPCに搭載されており、PC-8001は比較的後発の部類に入る
ちなみにPC-8001時代に、私は自前のOSを作成し、そこでFATファイルシステムは自分で実装しましたから間違いありません。その時点でFATが新しいという印象はまるでありませんから。
余談・ディスクを取り出す前のおまじない §
- CP/M CTRL+C
- PC-8001 remove
- PC-8801 何も無し
うちのDOSは、PC-8001でありながらremove不要でした。だから厳密には(たぶん)以下の通り。
- CP/M CTRL+C
- N-BASIC remove
- N88-BASIC 何も無し
余談2 §
そのDOSでは、ディスクユニットのCPUで実行するインテリジェント・ファイルシステムも試作したけれど性能が出ないので、放置してしまいました。8255経由で結合されたディスク・サブシステムは良いアーキテクチャではなかった、ということですね。実際、その後のNEC製品には継承されていません。ちなみに、相当無茶なテクニックも試行していましたが、それでも若干ローカルのファイルシステムより速くなる程度でした。まあ、狭いZ80のメモリ空間で、メモリの節約になるというメリットのためだけでも作れば良かったのかもしれませんが。