ドス

MS-DOS 6のブート画面とコマンドラインインターフェース、およびそのディレクトリ構造の例
FreeDOSのブート画面とコマンドラインインターフェース。バージョン情報とディレクトリ構造の例が表示されています。

DOS/ dɒs // dɔːs / ) IBM PC互換機用のディスクベースのオペレーティングシステムのファミリーです。[ 1 ] DOSファミリーは主にIBM PC DOSと、そのブランド変更版であるMicrosoftMS-DOSで構成され、どちらも1981年に導入されました。その後、他のメーカーから互換システムが発売されました。DR -DOS(1988年)、ROM-DOS(1989年)、PTS-DOS(1993年)、FreeDOS(1994年)などです。1981年から1995年の間、MS-DOSはIBM PC互換機市場を独占していました。

DOSという名称はMS-DOSとその互換オペレーティングシステムを指すようになったが、実際にはプラットフォームに依存しないディスクオペレーティングシステムの略称であり[ 2 ]、 IBM PCよりも古くから使用されている。1966年のメインフレームDOS/360に始まり、数十ものオペレーティングシステムでもこの略称が使用されている。他にはApple DOSApple ProDOSAtari DOSCommodore DOSTRSDOSAmigaDOSなどがある。

歴史

起源

Apple IIZ-80 ソフトカード上のDigital ResearchApple CP/M

IBM PC DOS(および別売のMS-DOS)とその前身である86-DOSはIntel 8086 16ビットプロセッサ上で動作しました。86-DOSは、 Digital ResearchCP/M ( 8ビットIntel 8080およびZilog Z80マイクロコンピュータ向けの主流ディスクオペレーティングシステム)に類似するように開発され、CP/MアプリケーションのMS-DOSへの移植を容易にしました。

IBMパーソナルコンピュータ(IBM 5150 PC)

IBMがIntel 8088マイクロプロセッサを搭載したIBM PCを発表した際、オペレーティングシステムが必要でした。会長のジョン・オペルは、ユナイテッド・ウェイ全国理事会の執行委員会メンバーであるメアリー・マクスウェル・ゲイツと話し合い、ゲイツは息子のビル・ゲイツに8088互換のCP/Mの開発を依頼しました。[ 3 ]その後、IBMはデジタル・リサーチ社に派遣され、交渉が行われました。しかし、CP/Mの使用に関する当初の交渉は決裂しました。デジタル・リサーチ社はCP/Mをロイヤルティベースで販売することを希望したのに対し、IBMは単一ライセンスを希望し、名称を「PC DOS」に変更することを希望しました。デジタル・リサーチ社の創設者ゲイリー・キルドールはこれを拒否し、IBMは撤退しました。[ 4 ] [ 5 ]

シミュレーションされたSCP 86-DOSセッション

IBMは再びビル・ゲイツにアプローチした。ゲイツは次にシアトル・コンピュータ・プロダクツにアプローチした。そこでプログラマーのティム・パターソンは、 S-100バス用のSCPの新しい16ビットIntel 8086 CPUカードをテストするための社内製品として、 CP/M-80の派生版を開発していた。このシステムは当初QDOS (Quick and Dirty Operating System)と名付けられ、 86-DOSとして市販された。マイクロソフトは86-DOSを、伝えられるところによると5万ドルで購入した。これが1981年に発表されたMicrosoft Disk Operating System、MS-DOSとなった。1年以内にマイクロソフトは70社を超える他の企業にMS-DOSのライセンスを供与し、[ 6 ]各社は自社のハードウェアにオペレーティングシステムを供給し、時にはゼニス・データ・システムズZ-DOSのように独自の名前で供給した。[ 7 ]マイクロソフトは後にIBM派生版を除いてMS-DOS名の使用を義務付けた。 IBMはIBM PC向けに自社版PC DOSの開発を続けた。デジタル・リサーチ社は、CP/Mに類似したオペレーティングシステム(IBMがCP/Mに使用したのと同じ名称で)がIBMによって販売されていることを知り、法的措置を取ると警告した。IBMはこれに対し、PCユーザーにPC DOSか、キルドールの8086版であるCP/M-86のいずれかを選択させるという合意を提示した。しかし、CP/MはPC DOSよりも200ドル高価で、販売は低調だった。CP/Mは衰退し、MS-DOSとPC DOSがPCおよびPC互換機向けのオペレーティングシステムとして販売されるようになった。[ 4 ]

マイクロソフトは当初、MS-DOSをOEM(相手先ブランド製造業者)のみに販売していました。その主な理由は、初期のPCのすべてがIBM PCと100%互換だったわけではないことでした。DOSは、システム固有のデバイスドライバコード( IO.SYS)とDOSカーネル(MSDOS.SYS )が分離した構造になっていました。マイクロソフトはOEMアダプテーションキット(OAK)を提供し、OEMがデバイスドライバコードを自社のシステムに合わせてカスタマイズできるようにしました。1990年代初頭までに、ほとんどのPCがIBM PC標準に準拠するようになったため、マイクロソフトはMS-DOS 5.0からMS-DOSの小売版の販売を開始しました。

1980年代半ば、マイクロソフトはマルチタスク版のDOSを開発した。[ 8 ] [ 9 ]このバージョンのDOSはICL向けに開発され、ヨーロッパの複数の企業にライセンス供与されたため、一般的に「ヨーロッパ版MS-DOS 4」と呼ばれている。このバージョンのDOSは、プリエンプティブマルチタスク、共有メモリ、デバイスヘルパーサービス、およびNew Executable (「NE」)形式の実行ファイルをサポートする。これらの機能はDOSの後の版では採用されなかったが、 OS/2 1.0カーネルの基礎として活用された。このバージョンのDOSは、IBMがDOS 3.3をベースに開発し、広くリリースされたPC DOS 4.0とは異なる。

IBM パーソナルコンピュータ用Digital Research CP/M-86バージョン 1.0

Digital Research 社は CP/M-86 で失った市場を取り戻そうと、当初はConcurrent DOSFlexOSDOS Plus (いずれも MS-DOS と CP/M-86 ソフトウェアの両方と互換性あり) で、後にMultiuser DOS (MS-DOS と CP/M-86 ソフトウェアの両方と互換性あり) とDR DOS (MS-DOS ソフトウェアと互換性あり) で試みました。 Digital Research 社はNovell 社に買収され、 DR DOS はPalmDOSNovell DOSになりました。その後、 Caldera ( OpenDOSおよびDR-DOS 7.02 / 7.03という名前で)、LineoDeviceLogics の傘下になりました。

ゴードン・レットウィンは1995年に、「DOSは、私たちが最初に開発した当時、IBMを満足させて私たちの言語を買ってもらうための、一度きりの使い捨て製品だった」と記している。[ 10 ]マイクロソフトは、 Xenix導入までの暫定的な解決策になると予想していた。同社はMS-DOSを時間をかけて改良し、モトローラ68000ザイログZ-8000LSI-11でも動作するシングルユーザー版Xenix (XEDOS)とほとんど区別がつかないようにする計画だった。Xenixは1983年にBYTE誌で「未来のマルチユーザー版MS-DOS」と評されたXenixと上位互換性を持つ予定だった。 [ 11 ] [ 12 ]

OS/2 1.0 は、MS-DOS に似たテキスト モード インターフェイスを備えていました。

しかし、IBMはDOSを置き換えるつもりはなかった。[ 13 ] AT&TがUnixの販売を開始した後、MicrosoftとIBMは代替としてOS/2の開発を開始した。 [ 10 ]両社はその後、DOSの後継オペレーティングシステムであるOS/2とWindowsをめぐって意見の相違が続いた。[ 14 ]その結果、両社はDOSシステムの開発を分割した。[ 15 ] MS-DOSの最後の市販バージョンはMS-DOS 6.22で、その後、MS-DOSはWindows 95、98、Meの一部となった。PC DOSの最後の市販バージョンはPC DOS 2000(PC DOS 7リビジョン1とも呼ばれる)だったが、IBMは後にOEMおよび社内使用のためにPC DOS 7.10を開発した。

FreeDOSプロジェクトは、マイクロソフトがMS-DOSの販売とサポートを終了すると発表した1994年6月26日に始まりました。ジム・ホールは、オープンソースの代替開発を提案するマニフェストを発表しました。数週間のうちに、パット・ヴィラニやティム・ノーマンを含む他のプログラマーがプロジェクトに参加しました。カーネル、COMMAND.COMコマンドラインインタープリター(シェル)、そしてコアユーティリティは、彼らが書いたコードや入手可能なコードを集めて作成されました。2006年9月3日にFreeDOS 1.0がリリースされる前に、FreeDOSの公式プレリリース版がいくつかリリースされました。FreeDOSはGNU一般公衆利用許諾書(GPL)に基づいて提供されており、ライセンス料やロイヤリティは不要です。[ 16 ] [ 17 ]

衰退

Windowsの初期のバージョンはMS-DOS上で動作した。[ 18 ] 1990年代初頭までに、Windowsのグラフィカルシェルは新しいシステムで頻繁に使用されるようになった。1995年に、Windows 95が別個のDOSライセンスを必要としないスタンドアロンのオペレーティングシステムとしてバンドルされた。Windows 95(およびその後続いたWindows 98とME)はデフォルトのOSカーネルとして引き継いだが、MS-DOSコンポーネントは互換性のために残された。Windows 95と98では、MEではなく、Windowsを起動せずにMS-DOSコンポーネントを実行できた。[ 19 ] [ 20 ] [ 21 ] Windowsを使用するためにDOSが不要になったため、大多数のユーザーは直接DOSを使用しなくなった。

継続使用

DOSボックス

2025年現在、利用可能な互換システムはFreeDOSROM-DOSPTS-DOS、RxDOS [ 22 ]REAL/32です。DellやHPなどの一部のコンピュータメーカーは、 OEMオペレーティングシステムとしてFreeDOSを搭載したコンピュータを販売しており、[ 23 ] [ 24 ] 、ハードウェアに近いため、一部の開発者やコンピュータエンジニアは依然としてそれを使用しています。

組み込みシステム

DOSはハードウェアに直接アクセスする構造のため、組み込み機器でも使用可能です。DR-DOSの最終バージョンも依然としてこの市場を対象としています。[ 25 ] ROM-DOSは、 Canon PowerShot Pro 70のオペレーティングシステムとして使用されました。[ 26 ]

エミュレーション

Linuxでは、ネイティブに近い速度で DOS プログラムを実行するLinux ネイティブ仮想マシンであるDOSEMUを実行できます。他にもDOSBoxなど、Unix およびMicrosoft Windowsの様々なバージョンで DOS を実行するためのエミュレーターが多数あります。[ 27 ] [ 28 ] DOSBox は、最新のオペレーティングシステムでレガシーゲーム (例: King's QuestDoom ) をプレイできるように設計されました。 [ 18 ] [ 27 ] DOSBox にはエミュレータに強く結び付けられた独自の DOS 実装が含まれており、実際のハードウェアでは実行できませんが、必要に応じて MS-DOS、FreeDOS、またはその他の DOS オペレーティングシステムを起動することもできます。

デザイン

MS-DOS および IBM PC DOS 関連のオペレーティングシステムは、一般にIntel x86または互換CPUを使用したマシン、主にIBM PC 互換機に関連付けられています。マシン依存バージョンの MS-DOS は、多くの非 IBM 互換のx86ベースマシン用に作成されており、 Microsoftディストリビューションを製造元の名前で再ラベルしたものから、非 IBM PC 互換のハードウェアで動作するように特別に設計されたバージョンまで様々でした。アプリケーションプログラムが直接ハードウェアにアクセスするのではなく DOS API を使用している限り、IBM PC 互換機でも非互換マシンでも実行できました。オリジナルのFreeDOSカーネルであるDOS-Cは、1990 年代初頭に Motorola 68000 シリーズの CPU 用にDOS/NTから派生しました。これらのシステムは DOS アーキテクチャに大まかに似ていますが、これらの非 x86 CPU の命令セットに互換性がないため、アプリケーションはバイナリ互換ではありませんでした。ただし、高級言語で作成されたアプリケーションは簡単に移植できます。

DOSはシングルユーザー、シングルタスクのオペレーティングシステムであり、基本的なカーネル機能は非リエントラントです。つまり、一度に1つのプログラムのみがこれらの機能を使用でき、DOS自体には複数のプログラムを同時に実行するための機能はありません。DOSカーネルは、文字入出力、ファイル管理、メモリ管理、プログラムのロードと終了など、 プログラムのための様々な機能アプリケーションプログラムインターフェース)を提供します。

DOSは、バッチファイルファイル名拡張子は )を介してシェルスクリプトを実行する機能を提供しています。バッチファイルの各行は、実行されるプログラムとして解釈されます。バッチファイルでは、 GOTO条件文などの内部コマンドも使用できます。[ 29 ].BAT

オペレーティングシステムは、文字ベースのアプリケーション開発を可能にするアプリケーションプログラミングインターフェースを提供していますが、グラフィックカードプリンターマウスなどのハードウェアのほとんどにはアクセスできません。そのため、プログラマーはハードウェアに直接アクセスする必要があり、通常、各アプリケーションは各ハードウェア周辺機器ごとに独自のデバイスドライバーセットを用意することになります。ハードウェアメーカーは、一般的なアプリケーション向けのデバイスドライバーが確実に利用できるように、仕様を公開していました。[ 30 ]

ブートシーケンス

  • PC互換コンピュータのブートストラップローダー(マスターブートレコード)は、ブートディスク最初のトラック(トラック0 )の最初のセクターであるブートセクターから開始されます。ROM BIOSはこのセクターをメモリのアドレス0000h : 7C00hにロードし、通常はオフセット+1FEhにある署名「55h AAh 」をチェックします。セクターが有効ではないと判断された場合、ROM BIOSは次の物理ディスクを試行します。有効であれば、特定のレジスタが設定されたロードアドレスにジャンプします。
  • ロードされたブートセクターがパーティション化されたメディア上にあるマスターブートレコード(MBR)である場合、メモリ内の0000h : 0600hに再配置されます[ 31 ]。そうでない場合、このステップはスキップされます。MBR コードは、このセクター内にあるパーティションテーブルをスキャンしてアクティブなパーティションを検索します (最近の MBR は、オフセット+1BEh+10h*nでビット 7 が設定されているかどうかを確認しますが、古い MBR は単に値80hをチェックします)。そして、見つかった場合は、そのボリュームのボリュームブートレコード(VBR)を保持する対応するパーティションの最初のセクターを、ROM BIOS 自体によってロードされた場合と同様の方法で、メモリの0000h : 7C00hにロードします。次に、MBR は、特定のレジスタをセットアップして、ロードされた部分に実行を渡します。
  • 0000h : 7C00hにロードされたセクターの内容が、現在では VBR を構成しています。VBR はオペレーティングシステム固有であり、正確な動作が異なる DOS バージョン間では異なるため、一般に異なる DOS バージョン間では交換できません。DOS 1.x などの非常に古いバージョンの DOS では、VBR は IO.SYS/IBMBIO.COM ファイル全体を0000h : 0600hのメモリにロードします。[ 32 ]これが機能するには、SYS コマンドを使用してこれらのセクターをディスク上に連続した順序で保存する必要があります。後の問題では、ルートディレクトリの最初の 2 つのエントリの内容を0000h : 0500hで検索して保存し、それらが VBR に記録されている正しいブートファイルを反映している場合は、VBR は IO.SYS/IBMBIO.COM ファイルの最初の 3 つの連続するセクターを0070h : 0000hのメモリにロードします。 VBRはディスクパラメータテーブル(DPT)の内容を保持することにも注意を払う必要があります。最後に、特定のレジスタが設定されたエントリポイントにジャンプすることで、ロードされた部分に制御を渡します(DOSのバージョンによってかなり異なります)。
  • 後期のDOSバージョンでは、VBRはIO.SYS/IBMBIO.COMファイルの最初の3セクターのみをメモリにロードしますが、ロードされた部分には別のブートローダーが含まれており、このブートローダーは0000h0500hに格納されているルートディレクトリ情報を使用して、残りの部分をメモリにロードします。ほとんどのバージョンでは、ファイルの内容はディスク上に連続した順序で保存する必要があります。古いバージョンのDOSでは、ファイル全体がロードされていたため、この手順は省略されます。
  • DOSシステム初期化コードは、組み込みデバイスドライバを初期化し、 MS-DOSシステムではMSDOS.SYSにあるDOSカーネルもメモリにロードします。Windows 9xでは、DOSシステム初期化コード、組み込みデバイスドライバ、DOSカーネルが1つのIO.SYSファイルにまとめられ、MSDOS.SYSはテキスト形式の設定ファイルとして使用されます。
  • 次に、 CONFIG.SYSファイルが読み込まれ、設定パラメータが解析されます。SHELL 変数シェルの場所を指定します。デフォルトではCOMMAND.COMです。
  • シェルがロードされ実行されます。
  • 起動バッチファイルAUTOEXEC.BATがシェルによって実行されます。[ 33 ] [ 34 ]

ブートセクタによってロードされるDOSシステムファイルは連続しており、最初の2つのディレクトリエントリである必要があります。[ 35 ]そのため、このファイルの削除と追加を行うと、メディアがブートできなくなる可能性があります。ただし、シェルを任意に置き換えることは可能であり、この方法を使用して専用アプリケーションの実行を高速化できます。この制限はDR DOSのどのバージョンにも適用されません。DR DOSでは、システムファイルはルートディレクトリのどこにでも配置でき、連続している必要はありません。したがって、ブートセクタがDR DOSと互換性があれば、システムファイルをディスクにコピーするだけで済みます。

PC DOSおよびDR DOS 5.0以降では、DOSシステムファイルはIO.SYSではなくIBMBIO.COMMSDOS.SYSではなくIBMDOS.COMという名前になっています。DR DOSの旧バージョンでは、DRBIOS.SYSとDRBDOS.SYSという名前が使用されていました。

MS-DOS 7.0以降、バイナリシステムファイルIO.SYSとMSDOS.SYSは単一のIO.SYSファイルに統合され、MSDOS.SYSはCONFIG.SYSやAUTOEXEC.BATと同様の設定ファイルになりました。MSDOS.SYSのBootGUIディレクティブが に設定されている場合0、ブートプロセスはWIN.COMを自動的に実行するのではなく、コマンドプロセッサ(通常はCOMMAND.COM)がロードされた状態で停止します。

ファイルシステム

DOSは、 8.3形式のファイル名をサポートするファイルシステムを使用しています。ファイル名は8文字、拡張子は3文字です。DOS 2以降では、階層ディレクトリがサポートされています。各ディレクトリ名も8.3形式ですが、DOSが内部で管理する現在のディレクトリ構造(CDS)テーブルのため、ディレクトリパスの最大長は64文字です。ドライブ名を含め、DOSがサポートする完全修飾ファイル名の最大長は80文字で、drive:\path\filename.ext という形式にNULLバイトが続きます。

DOSはファイルアロケーションテーブル(FAT)ファイルシステムを使用しています。これは当初、ドライブあたり最大4078個のクラスターをサポートするFAT12でした。DOS 3.0では、16ビットのアロケーションエントリを使用し、ドライブあたり最大65518個のクラスターをサポートするFAT16のサポートが追加されました。Compaq MS-DOS 3.31では、 32MiBのドライブ制限がなくなり、最大512MiBをサポートできるFAT16Bのサポートが追加されました。最後に、MS-DOS 7.1(Windows 9xのDOSコンポーネント)では、32ビットのアロケーションエントリを使用し、最大137GB(127GiB)以上のハードドライブをサポートできるFAT32のサポートが追加されました。

DOS 3.1以降、ファイルリダイレクタのサポートがDOSに追加されました。これは当初ネットワークのサポートに使用されていましたが、後にMSCDEXを使用したCD-ROMドライブのサポートにも使用されました。IBM PC DOS 4.0にも初期インストール可能ファイルシステム(IFS)のサポートがありましたが、これは使用されなかったため、DOS 5.0では削除されました。DOSは、CONFIG.SYSからロードされるブロックデバイス(「ディスクドライブ」デバイス)もサポートしており、DOSファイルシステムでネットワークデバイスのサポートに使用できました。

ドライブの命名規則

DOSでは、ドライブは識別文字で参照されます。標準的な方法では、「A」と「B」はフロッピードライブ用に予約されています。フロッピードライブが1台しかないシステムでは、DOSは両方のドライブ文字を割り当てます。これにより、プログラムが交互にディスク間をアクセスするため、ユーザーはディスクを交換する必要があります。これにより、フロッピーディスクからフロッピーディスクへのコピーや、あるフロッピーディスクでプログラムを実行しながら別のフロッピーディスク上のデータにアクセスするといった操作が容易になります。ハードドライブには当初、「C」と「D」という文字が割り当てられていました。DOSは、ドライブごとに1つのアクティブパーティションしかサポートできませんでした。より多くのハードドライブがサポートされるようになると、この方法は、まず各ドライブのアクティブなプライマリパーティションにドライブ文字を割り当て、次にドライブ全体を2回目のパスで拡張パーティション内の論理ドライブにドライブ文字を割り当て、3回目のパスでその他の非アクティブなプライマリパーティションに名前を付けるという方法に進化しました(そのような追加パーティションが存在し、DOSがサポートするファイルシステムが含まれている場合)。最後に、DOSは光ディスクドライブRAMディスク、その他のハードウェアにドライブ文字を割り当てます。文字の割り当ては通常、ドライバがロードされた順に行われますが、ドライバはDOSに別の文字を割り当てるように指示することができます。たとえば、ネットワークドライブのドライバは通常、アルファベットの末尾に近い文字を割り当てます。[ 36 ]

DOS アプリケーションはこれらのドライブ文字を直接使用するため ( Unix 系システムの /dev ディレクトリとは異なります)、ドライブ文字を必要とする新しいハードウェアを追加すると、アプリケーションの動作が混乱する可能性があります。一例として、既存のハード ドライブの拡張パーティションに論理ドライブが含まれている場合に、プライマリ パーティションを持つ新しいハード ドライブを追加すると、新しいドライブには、以前に拡張パーティションの論理ドライブの 1 つに割り当てられていた文字が割り当てられます。さらに、拡張パーティションに論理ドライブしかない新しいハード ドライブを追加した場合でも、RAM ディスクと光学ドライブのドライブ文字が混乱します。この問題は、Microsoft の DOS ベースの Windows 9x バージョンから、ユーザーが変更するまで既存のドライブのドライブ文字を保持する NT ラインに基づくバージョンに置き換えられるまで解消されませんでした。[ 36 ] DOS では、SUBST ドライブを定義して DOS プログラムをこの論理ドライブにインストールすることで、この問題を回避できます。これにより、アプリケーションの起動時にバッチ ジョブでこのドライブの割り当てが変更されます。Concurrent DOSの一部のバージョン、およびMultiuser DOS、System Manager、およびREAL/32では、アプリケーションの起動時に、 予約済みのドライブ文字 L: が対応するロード ドライブに自動的に割り当てられます。

予約済みのデバイス名

ファイルまたはフォルダに名前を付けたり、名前を変更したりするときに予約名を使用しようとすると、エラー メッセージが表示される

DOSには予約済みのデバイス名があり、拡張子に関わらずファイル名として使用することはできません。これは、組み込みのキャラクタデバイスによって占有されているためです。これらの制限はWindowsのいくつかのバージョンにも影響を及ぼし、場合によってはクラッシュやセキュリティ上の脆弱性を引き起こすことがあります。[ 37 ]

予約名は次のとおりです。

Windows 95およびWindows 98では、予約名(CON/CON、AUX/AUX、PRN/PRN など)の場所を入力するとオペレーティングシステムがクラッシュしますが、Microsoft はこの問題に対するセキュリティ修正を提供しています。Windows XPでは、予約名を使用しているファイルまたはフォルダの名前は、通知やエラーメッセージを表示することなく、自動的に以前の名前に戻ります。Windows Vista以降では、ファイルまたはフォルダに予約名を使用しようとすると、「指定されたデバイス名は無効です」というエラーメッセージが表示されます。

これらの名前 (NUL を除く) は、それ以来ずっと、MS-DOS、PC DOS、DR-DOS のすべてのバージョンでサポートされ続けています。[ 39 ]LSTは MS-DOS 1.25 の一部の OEM バージョンでも使用できましたが、MS-DOS 1.25 の他の OEM バージョンでは、PC DOS で導入されたように、 LPT1(最初のライン プリンタ) とCOM1(最初のシリアル通信デバイス) が既に使用されていました。 および に加えてLPT1、ヒューレットLPT2パッカードの HP Portable Plus向けOEM バージョンのMS-DOS 2.11では、の別名として も、の別名としてサポートされていました。[ 40 ] [ 41 ]また、プロッタもサポートされていました。[ 40 ] [ 41 ]その他、、、および( MS-DOS 2.11 のいくつかのバージョンではまだ名前が付けられている[ 42 ] [ 40 ] [ 41 ] ) クロックデバイスは DOS 2.0 で導入され、 とはDOS 3.3 で追加されました。[ 39 ]マルチタスクのMS-DOS 4だけがとをサポートしています。DR DOS 5.0以降およびマルチユーザー DOS は、動的なアイドル検出のためのデバイスをサポートして、電力を節約し、マルチタスクを向上します。は、DR-DOS 7.02 以降の一部のバージョンでサポートされている 4 行目のプリンター用のオプションの組み込みドライバーです。 は、MS-DOS 7.0–8.0 で リアルモードPnPマネージャーを構成します。COM1COM3LSTLPT282164ACOM2PLTCOM2LPT2LPT3CLOCK$CLOCKCOM3COM4KEYBD$SCREEN$$IDLE$LPT4CONFIG$

AUX通常、デフォルトはCOM1、、およびPRNLPT1LSTです。[ 39 ]しかし、DOSの一部のバージョンでは、これらのデフォルトを変更して、他のシリアルデバイスまたはパラレルデバイスを指すようにすることができます。[ 40 ] [ 41 ] [ 43 ]デバイスPLT(一部のHP OEMバージョンのMS-DOSにのみ存在)も再構成可能でした。[ 40 ] [ 41 ]

コロン:)で終わるファイル名は、慣例的にデバイス名を示しますが、コロンは実際には組み込みデバイスドライバの名前の一部ではありません。コロンを入力する必要がない場合もあります。例えば、 NUL:

ECHOこれは何も達成しません> NUL 

ディスクセクター内のディレクトリデータ構造を直接編集するなど、これらの予約済みデバイス名を使用してファイルやディレクトリを作成することは依然として可能です。ファイル名をスペースで始めるなどのこのような命名は、ウイルスやハッキングプログラムによって、これらの場所へのアクセス方法を知らないユーザーからファイルを隠蔽するために利用されることがありました。

メモリ管理

DOSはIntel 8088プロセッサ向けに設計されており、このプロセッサは最大1MiBのRAMにしか直接アクセスできません。[ 44 ] IBMとMicrosoftはどちらも、プログラムが利用できるメモリの最大量を640キビバイト(KiB)に設定し、残りの384KiBをビデオメモリ、一部のビデオおよびネットワーク周辺機器のアダプタの読み取り専用メモリ、およびシステムのBIOS用に予約しました。1985年までに、一部のDOSアプリケーションはすでにメモリの限界に達していましたが、マシンの仕様によっては、予約されたメモリの大部分は未使用のままでした。[ 45 ]

追加メモリへのアクセスを可能にする仕様が開発された。最初の仕様は拡張メモリ仕様(EMS) で、アドオンカード上のメモリに、予約済みの上位メモリ領域の 64 KiB ページフレームを介してアクセスできるように設計された。[ 46 ] 80386 以降のシステムでは、EMM386などの仮想 8086 モード(V86) メモリマネージャを使用して、アドオンカードを必要とせずに拡張メモリから拡張メモリを作成できた。[ 47 ] 2 番目の仕様は、 80286 以降のシステム用の拡張メモリ仕様(XMS) である。これは、拡張メモリとの間でデータのコピー、メモリの最初の 1 メガバイトのすぐ上にある65,520 バイトの上位メモリ領域[ 48 ]および上位メモリブロック領域へのアクセスを可能にした。一般的に、XMS のサポートはHIMEM.SYSまたは EMS もサポートするQEMM386MAXなどの V86 モードのメモリマネージャによって提供された。[ 49 ]

DOS 5以降、[ 50 ] DOSはCONFIG.SYSのステートメントを介してカーネルコードとディスクバッファをHMAにロードすることで、HMAを直接利用できるようになりましたDOS=HIGH。DOS 5+では、CONFIG.SYSのステートメントを介して利用可能な上位メモリブロックを使用することもできますDOS=UMB[ 51 ]

OS/2 および Windows 上の DOS

OS/2およびWindowsにおけるDOSエミュレーションは、ネイティブアプリケーションとほぼ同じ方法で動作します。すべてのドライブとサービスにアクセスでき、ホストのクリップボードサービスも利用できます。ファイルシステムなどのドライバはホストシステム内に存在するため、DOSエミュレーションはDOS API変換層のみを提供すればよく、この変換層はDOSコールをOS/2またはWindowsのシステムコールに変換します。この変換層は通常、BIOSコールの変換や、多くのDOSプログラムで一般的に使用される共通I/Oポートアクセスの仮想化も行います。

Windows 3.1および9xでは、DOS仮想マシンはWINOLDAPによって提供されます。WinOldApは、プログラムのPIFファイルとWindows起動時のシステム状態に基づいて仮想マシンを作成します。DOSグラフィックモード(文字とグラフィックの両方)をキャプチャし、ウィンドウ内で実行できます。DOSアプリケーションは、WinOldApで公開されている追加の呼び出しにアクセスすることでWindowsクリップボードを使用でき、WinOldApグラフィックを介してテキストを貼り付けることができます。

OS/2およびWindows NTでエミュレートされたDOSは、DOS 5に基づいています。デフォルトの設定(config.sysおよびautoexec.bat)はありますが、セッションごとに代替ファイルを使用することもできます。これらのファイルからドライバをロードしてホストシステムにアクセスすることも可能ですが、通常はサードパーティ製です。

OS/2 2.x以降では、DOSエミュレーションはDOSKRNLによって提供されます。これはIBMBIO.COMとIBMDOS.COMを統合したファイルであり、システムコールはOS/2ウィンドウサービスに渡されます。DOSプログラムは独自の環境で実行され、DOSユーティリティの大部分は\OS2ディレクトリ内のDOS/OS2アプリケーションによって提供されます。OS/2は、Windowsの修正版(Win-OS/2)を使用することでWindows 3.1アプリケーションを実行できます。この修正により、Windows 3.1プログラムをOS/2デスクトップ上でシームレスに実行できるようになり、DOSからWindowsを起動するのと同様にWinOS/2デスクトップを起動することもできます。

OS/2では「ドライブAからのDOS」(VMDISK)が利用可能です。これはMS-DOS 6.22やPC DOS 5.00のような本物のDOSです。DOSの起動用フロッピーディスクを作成し、OS/2からいくつかのドライバを追加して、特別なイメージを作成します。この方法で起動したDOSはシステムへのフルアクセスが可能ですが、ハードウェア用のドライバは独自に用意されます。このディスクを使用することで、OS/2ドライバが存在しないCD-ROMドライブにもアクセスできます。

1993 年以降の Windows NT ファミリのすべての 32 ビット (IA-32) エディションでは、仮想 DOS マシン(NTVDM)によって DOS エミュレーションが提供されています。64 ビット (IA-64 および x86-64) バージョンの Windows では NTVDM がサポートされていないため、16 ビット DOS アプリケーションを直接実行することはできません。これらのマシンで DOS プログラムを実行するには、DOSbox などのサードパーティ製エミュレーターを使用できます。

ユーザーインターフェース

DOSシステムはコマンドラインインターフェースを使用します。プログラムは、コマンドプロンプトにファイル名を入力することで起動します。DOSシステムにはユーティリティプログラムが含まれており、プログラムに対応しない内部コマンドも提供しています。[ 52 ]

よりユーザーフレンドリーな環境を提供するために、多くのソフトウェアメーカーがWIMPインターフェースを備えたファイル管理プログラムを開発しました。Microsoft Windowsはその顕著な例で、最終的にMicrosoft Windows 9xは自己完結型のプログラムローダーとなり、DOSに取って代わり、最も多く使用されるPC互換プログラムローダーとなりました。テキストユーザーインターフェースプログラムには、 Norton CommanderDOS NavigatorVolkov Commander、Quarterdesk DESQviewSidekickなどがありました。グラフィカルユーザーインターフェースプログラムには、Digital ResearchのGEM(元々はCP/M用に開発)やGEOSなどがありました。

最終的に、主要なDOSシステムのメーカーは独自の環境マネージャを組み込むようになりました。MS-DOS/IBM DOS 4にはDOS Shellが含まれていました。[ 53 ]翌年にリリースされたDR DOS 5.0にはGEMをベースにしたViewMAXが含まれていました。[ 54 ]

終了して居住を続ける

DOSはマルチタスクオペレーティングシステムではありませんが、プログラムをメモリ内に常駐させる「Terminate-and-Stay-resident(TSR)」機能を備えています。これらのプログラムは、システムタイマーやキーボード割り込みをフックすることで、バックグラウンドでタスクを実行したり、いつでも起動できるようにしたりすることができます。これにより、現在実行中のプログラムをプリエンプトし、プログラムごとにシンプルなマルチタスクを効果的に実装できます。DOSのPRINTコマンドは、バックグラウンド印刷スプールを実現するためにこの機能を利用しています。ポップアップ型の個人情報管理ツール(PIM)であるBorland Sidekickも、この技術を採用しています。

終了して常駐するプログラムは、デフォルトでは利用できない追加機能を提供するためにも使用されます。CEDやDOSKEYなどのプログラムは、COMMAND.COMで利用できる機能を超えたコマンドライン編集機能を提供します。Microsoft CD-ROM Extensions (MSCDEX)などのプログラムは、CD-ROMディスク上のファイルへのアクセスを提供します。

一部のTSRは、基本的なタスクスイッチングさえ実行できます。例えば、シェアウェアプログラムであるBack and Forth (1990) [ 55 ]には、現在実行中のプログラムの状態をディスクに保存し、別のプログラムをロードして切り替えるホットキーがあり、プログラム間の「前後」の切り替えを可能にします(ただし、ディスクアクセスが必要なため、処理速度は遅くなります)。しかし、Back and Forthはバックグラウンド処理を実行できませんでした。バックグラウンド処理にはDESQview(少なくとも386では)が必要でした。

ソフトウェア

アラクネウェブブラウザ

開発ツール

参照

参考文献

  1. ^マードック、エヴェレット (1988). DOS the Easy Way . EasyWay ダウンロード可能な書籍. ISBN 0-923178-00-7
  2. ^ Dictionary.com 2017年11月12日アーカイブ、Wayback Machineより
  3. ^ 「メアリー・ゲイツ、64歳、息子のマイクロソフト創業を支援」ニューヨーク・タイムズ、1994年6月11日。 2023年4月11日閲覧
  4. ^ a b Rolander, Tom . 「物語の続き:OS戦争でビル・ゲイツがゲイリー・キルドールに勝利した経緯、パート1」 . The Scoble Show (インタビュー). ロバート・スコブルによるインタビュー。 2007年11月4日時点のオリジナルよりアーカイブ。
  5. ^ボヴ、トニー (2005). 『マイクロソフトにノーと言おうNo Starch Press 9–11頁 . ISBN 1-59327-064-X
  6. ^ Freiberger, Paul (1982-08-23). 「ビル・ゲイツ、マイクロソフト、そしてIBMパーソナルコンピュータ」 InfoWorld : 22. 2015年3月18日時点のオリジナルよりアーカイブ。 2015年1月29日閲覧
  7. ^ Freiberger, Paul (1982年9月13日). 「Zenith、IBMのマイクロ市場シェアに挑む」 InfoWorld 35ページ. 2025年3月19日閲覧
  8. ^ 「OS/2がMicrosoft初の非Unix系マルチタスクオペレーティングシステムではなかったことをご存知ですか?」 2012年11月4日時点のオリジナルよりアーカイブ。
  9. ^ 「ラリー・オスターマンの伝記」2013年6月2日時点のオリジナルよりアーカイブ。
  10. ^ a b Letwin, Gordon (1995-08-17). 「OS/2に何が起こっているのか」 .ニュースグループcomp.os.os2.advocacy . Usenet: DDFvKo.G4M@lab.lwpi.com . 2013年11月6日閲覧。 
  11. ^ Morgan, Chris (1982年1月). 「IBM、オペレーティングシステム、そしてロゼッタストーンについて」 .バイト: 6. 2013年10月19日閲覧
  12. ^フィードラー、ライアン(1983年10月)。「Unixチュートリアル / パート3:マイクロコンピュータ市場におけるUnix」バイト:132。2015年1月30日閲覧
  13. ^ Howitt, Doran (1984年12月10日). 「Unixとシングルユーザー」 . InfoWorld : 28. 2018年1月29日時点のオリジナルよりアーカイブ2015年2月7日閲覧。
  14. ^ Pollack, Andrew (1991-07-27). 「Microsoft、IBMとのソフトウェア問題で対立を深める」 . The New York Times . 2010年11月2日時点のオリジナルよりアーカイブ。 2008年9月2日閲覧
  15. ^ Brinkley, Joel (1999年5月28日). 「IBM幹部、Microsoftによる価格圧力について説明」 . New York Times . 2008年12月11日時点のオリジナルよりアーカイブ。 2008年9月2日閲覧
  16. ^ Hall, Jim (2002年3月25日). 「FreeDOSプロジェクトの過去、現在、そして未来」 . 2012年5月29日時点のオリジナルよりアーカイブ2008年6月14日閲覧。
  17. ^ Hall, Jim (2006年9月23日). 「FreeDOSの歴史」 . freedos.org. 2007年5月27日時点のオリジナルよりアーカイブ。 2007年5月28日閲覧
  18. ^ a b Bannan, James (2006年10月13日). 「HOW TO: レトロDOSゲームをVistaでプレイできるようにする方法」 . 2008年8月1日時点のオリジナルよりアーカイブ2008年7月3日閲覧。
  19. ^ 「Windows 95でDOSを見つける」 Smart Computing 1996年3月. 2004年7月7日時点のオリジナルよりアーカイブ。 2008年7月12日閲覧
  20. ^ Chen, Raymond (2007年12月24日). 「Windows 95におけるMS-DOSの役割とは?」 . The Old New Thing - サイトホーム - MSDNブログ. 2014年2月5日時点のオリジナルよりアーカイブ。 2014年2月5日閲覧
  21. ^ 「MS-DOSモードでのコンピュータの再起動について」 support.microsoft.com 2007年1月19日. 2014年2月5日時点のオリジナルよりアーカイブ。 2014年2月5日閲覧
  22. ^ 「参考までに本書から現在の 7.25 までのさまざまな rxDOS ソース」。gitlab.com
  23. ^ Hall, Jim (2007年7月13日). 「Jim Hallのブログ - 2007」 . 2012年10月25日時点のオリジナルよりアーカイブ2008年6月12日閲覧。
  24. ^ 「Dell PCs featuring FreeDOS」 2008年3月19日時点のオリジナルよりアーカイブ2008年6月14日閲覧。
  25. ^ 「DR-DOS Embedded DOS」。2008年12月21日時点のオリジナルよりアーカイブ2008年9月26日閲覧。
  26. ^ 「Datalight DOS、キヤノンの新デジタルスチルカメラシリーズに採用」 Business Wire 1999年8月24日。2012年7月9日時点のオリジナルよりアーカイブ。 2008年9月26日閲覧
  27. ^ a b「DOSBox 情報」2008年5月25日時点のオリジナルよりアーカイブ2008年5月18日閲覧。
  28. ^ "DOSEMU Home" . 2007年5月5日. 2008年7月23日時点のオリジナルよりアーカイブ2008年7月3日閲覧。
  29. ^ 「バッチファイルのヘルプ」 . computerhope.com. 2008年9月7日時点のオリジナルよりアーカイブ2008年9月10日閲覧。
  30. ^ Matczynski, Michael. 「ZINGTECH - 新人ゲームプログラマーのためのガイド」 . 2008年12月19日時点のオリジナルよりアーカイブ2008年9月2日閲覧。
  31. ^ 「マスターブートレコード(MBR)とその機能」2013年5月27日時点のオリジナルよりアーカイブ。090912 dewassoc.com
  32. ^ 「DOS 1.0のリバースエンジニアリング – パート1:ブートセクター « pagetable.com」2009年5月11日時点のオリジナルよりアーカイブ。090912 ページテーブル.com
  33. ^ 「CONFIG.SYSコマンド」2009年5月2日時点のオリジナルよりアーカイブ。090913 academic.evergreen.edu
  34. ^ Kozierok, Charles (2001). 「DOS ブートプロセス」 . PC Guide . 2008年7月19日時点のオリジナルよりアーカイブ。 2008年9月2日閲覧
  35. ^ "misc.txt" . 2010年6月29日時点のオリジナルよりアーカイブ090912 arl.wustl.edu
  36. ^ a b「ドライブ文字の割り当てとプライマリパーティションと論理パーティションの選択」。The PC Guide。2001年4月17日。2012年4月17日時点のオリジナルよりアーカイブ。 2012年4月4日閲覧
  37. ^ 「Microsoft Windows MS-DOSデバイス名DoS脆弱性」 。 2011年7月25日時点のオリジナルよりアーカイブ2008年9月2日閲覧。
  38. ^ a b「DOSデバイス名の定義」 . PC Magazine . 2008年9月29日時点のオリジナルよりアーカイブ。 2008年9月2日閲覧
  39. ^ a b c「MS-DOSデバイスドライバー名をファイル名として使用することはできません」。リビジョン2.0。Microsoft 2003年5月12日。KB74496、Q74496。 2012年7月21日時点のオリジナルからのアーカイブ。
  40. ^ a b c d e Hewlett-Packard - Technical Reference Manual - Portable PLUS (1 ed.). Corvallis, OR, USA: Hewlett-Packard Company , Portable Computer Division. August 1985. 45559-90001 . 2016年11月27日閲覧
  41. ^ a b c d e Hewlett-Packard - Technical Reference Manual - Portable PLUS (PDF) (第2版). Portable Computer Division, Corvallis, OR, USA: Hewlett-Packard Company . 1986年12月 [1985年8月]. 45559-90006. 2016年11月28日時点のオリジナルよりアーカイブ(PDF) . 2016年11月27日閲覧
  42. ^ Paterson, Tim ; Microsoft (2013-12-19) [1983]. 「Microsoft DOS V1.1 および V2.0: /msdos/v20source/SKELIO.TXT、/msdos/v20source/HRDDRV.ASM」 . Computer History MuseumMicrosoft . 2014年3月26日時点のオリジナルよりアーカイブ2014年3月25日閲覧。(注: 発行者はこれが MS-DOS 1.1 と 2.0 であると主張していますが、実際はSCP MS-DOS 1.25と、 Altos MS-DOS 2.11TeleVideo PC DOS 2.11の混合です。)
  43. ^ Paul, Matthias R. (1997年10月2日). 「Caldera OpenDOS 7.01/7.02 Update Alpha 3 IBMBIO.COM README.TXT」 . 2003年10月4日時点のオリジナルよりアーカイブ。 2009年3月29日閲覧[1]
  44. ^ベイルズとミュラー、1992 年、p. 5.
  45. ^ Bailes & Mueller 1992、42–44 ページ。
  46. ^ Bailes & Mueller 1992、67–68 ページ。
  47. ^ミュラー 1998、169ページ。
  48. ^ミュラー1998、243-244頁。
  49. ^ベイルズとミュラー、1992 年、p. 79-80。
  50. ^ミュラー1998、243ページ。
  51. ^ベイルズとミュラー、1992 年、150–151 ページ。
  52. ^マードック、エヴェレット (2008). DOS the Easy Way . EasyWay ダウンロード可能書籍. pp.  7– 12. ISBN 978-0-923178-02-4
  53. ^マードック、エヴェレット (2008). DOS the Easy Way . EasyWay ダウンロード可能書籍. p. 71. ISBN 978-0-923178-02-4. 2015年3月18日時点のオリジナルよりアーカイブ。
  54. ^ Dvorak, John Charles ; Anis, Nick (1991). DvorakのDOSとPCパフォーマンスガイド. Osborne McGraw-Hill . pp.  442– 444.
  55. ^バージョン1.47は「Back and Forth 1.47」にアーカイブされています。2013年11月5日時点のオリジナルよりアーカイブ2013年8月5日閲覧。「(C) 1990 by Progressive Solutions, Inc.」と記載されています。
  56. ^ Darrow, Barbara (2002年2月1日). 「ロータス1-2-3に何が起こったのか?」オリジナルより2009年1月9日アーカイブ。 2008年7月12日閲覧

さらに読む

  • IBM Corp., IBM (1984年1月). 「IBM DOS リリース 2.10 布張りハードボード製箱」. 第1版. IBM Corp. 商品番号 6183946
  • IBM Corp., IBM, (1984年1月). 「ディスク・オペレーティング・システム・ユーザーズ・ガイド (DOS リリース 2.10)」. 第1版. Microsoft Corp. (カラー図版を含む100ページ) 商品番号: 6183947
  • IBM Corp., IBM, (1984年1月). 『ディスク・オペレーティング・システム・マニュアル (DOS リリース 2.10)』 第1版. Microsoft Corp. (3リングフォルダー入りルーズリーフ574ページ) 商品番号 6183940
  • ミューラー、スコット (1998). 『PCのアップグレードと修理(第8版)』Que Publishing . ISBN 0-7897-1295-4. 2021年11月2日閲覧
  • ベイルズ、レニー、ミューラー、ジョン (1992). 『640Kを超えるメモリ管理とマルチタスキングマグロウヒル. ISBN 0-8306-3476-2. 2021年11月2日閲覧