• ベストアンサー

なぜPC-98系MS-DOSでは、初期から中期まで、Unixとは異なりディレクトリが活用されなかったのか

いまさらながらにPC-98実機を収集し(286~486)、プログラムを組んだり いろいろ遊んでますが、一つ気になったことが。 例示したほうが早いでしょう。桐Ver. 4、一太郎Ver.4.3、一太郎Ver.5、 花子Ver.2、大元の日電版DOS3.3C/3.3D/5.0A/6.2、EPSON版DOS3.3/6.2など。 また、各種ゲーム、日本語FEP(VJE-β v3.00/WXII+ v2.65)のフロッピー。 これらのマスターFDの中身を見ますと、ディレクトリを作成して 分類活用しているものは相対的にかなり少なくて、ルートディレクトリに ベターッと置かれています。インストールコマンドなどから呼び出す際に、 パスを意識せずにコーディングできるからなのかは不明ですが、 結局DOS末期までこのスタイルが主流だったように思いますが、 いかがでしょうか? 手元にWin3.1のPC/AT互換機用のリテール版CD-ROMがありますが、 これもルートにベターッと置いてあり、ファイルシークに時間がかかってしまいます。 これって、Unixのようにディレクトリを活用すれば検索効率はあがるが、 逆にディレクトリエントリの増大によりFDの容量が圧迫されるとか、 その辺の背景があったんでしょうか? 95年のタイムスタンプの日電版DOS6.2やEPSON版DOS6.2も\DOSディレクトリ以下に ダーッとありますので、もうちょっとウマい分類はできなかったのかな~と 思うんですが、いかがでしょうか。当時の時代背景をご存知の方、 ご教示ください。

質問者が選んだベストアンサー

  • ベストアンサー
  • ultraCS
  • ベストアンサー率44% (3956/8947)
回答No.1

MS-DOSにおいては、環境文字列は127文字までしか使えませんでした。ですから、サーチパス(PATH変数として定義される)の制限も127文字まででした。あまり深いパスにコマンドを配置したり、幾つかのパスに配置すると、それだけでPATH変数を使い切ってしまう恐れがあったのです。これは、SHELL(通常は、COMMAND.COMなどシェルプログラムへのPATHを与える)などでも同様です。なお、環境変数を編集するためのバッファも127文字しかありませんでした。これが長じてバッファオーバーランのセキュリティホールにつながります。 また、コマンドラインも同様(こちらは80文字だったかも)のバッファで制御され、初期にはBourneやCornシェルのようなコマンド入力を支援するシェルもありませんでしたKI-ShellのようなCornShell互換はかなり早い時期からPDS等で出ていましたが、正式にはDOSKEY登場まで待つことになります。ですから、ディレクトリをコマンドラインに記載することも困難でした。 こういった理由でプログラムを深いところや、いろいろなところに配置できなかったのです。 Win3.1はカーネル自体はDOSカーネル(MSDOS.SYSなど)ですから、環境変数の制限はDOSと同じです。

その他の回答 (1)

  • bardfish
  • ベストアンサー率28% (5029/17766)
回答No.2

簡単に言うとメインメモリ640KBの壁とファイルシステムの制限ですかね。 ファイル名も8.3文字しか扱えないし、FD程度の容量だとディレクトリを多用するとファイルエントリーが食いつぶされるしアクセスが遅くなりますからね。 それに1行で入力できる文字数も128文字とか256文字という制限もあります。

関連するQ&A