トップQs
タイムライン
チャット
視点
DOS API
ウィキペディアから
Remove ads
DOS APIは86-DOSを起源とするAPIで、MS-DOS/PC DOSや他のDOS互換のオペレーティングシステムで使われている。DOS APIのほとんどの呼び出しは、INT 21hを使用して呼び出される。AH プロセッサレジスタのサブファンクション番号と他のレジスタの他のパラメータを指定してINT 21hを呼び出すことによって、さまざまなDOSサービスを呼び出せる。これには、キーボード入力、ビデオ出力、ディスクファイルアクセス、プログラム実行、メモリ割り当て、その他さまざまなアクティビティの処理が含まれる。1980年代後半には、DOSエクステンダとDPMIを併用することで、プログラムを16ビットまたは32ビットの保護モードで実行してもDOS APIにアクセスできるようになった。
DOS APIの歴史
86-DOSおよびMS-DOS 1.0の元のDOS APIは、CP/Mと機能的に互換性があるように設計されている。ファイルアクセスにはファイルコントロールブロック (FCB)が利用された。DOS APIは、ファイルハンドルを使用したファイルアクセス、階層ディレクトリ、およびデバイスのI/O制御など、いくつかのUNIXの概念によってMS-DOS 2.0で大幅に拡張された[1]。DOS 3.1では、ネットワークリダイレクタのサポートが追加された。MS-DOS 3.31では、32 MBを超えるハードディスクをサポートするようにINT 25h/26h機能が強化された。MS-DOS 5は、上位メモリブロック(UMB)を使用するためのサポートを追加した。MS-DOS 5以降は、DOSの連続したスタンドアロンリリースのDOS APIは変更されていない。
DOS APIとWindows
Windows 9xでは、プロテクトモードのシステムとGUIシェルをロードするブートローダとしてDOSが使用されていた。DOSは通常VDMからアクセスされていたが、WindowsをロードせずにリアルモードMS-DOS 7.0としてブートすることも可能であった。ロングファイルネーム(LFN)はVDMでのみ利用可能であったが、DOS APIは拡張国際化サポートとLFNサポートで拡張された。Windows 95 OSR2では、DOSは7.1に更新されてFAT32サポートが追加され、DOS APIに機能追加された。Windows 98およびWindows MEもMS-DOS 7.1 APIを実装しているが、Windows MEはMS-DOS 8.0として報告する。
Windows XPやWindows VistaなどのWindows NT系のシステムはMS-DOSを利用していない。そのため、NTVDMを利用してDOS APIを処理している。NTVDMは、仮想8086モードでDOSプログラムを実行する。NTVDMはDOS 5.0 APIをサポートする。Linux用のDOSEMUも同様の方法を利用している。
Remove ads
DOSで使用される割込みベクタ
以下は、DOS API関数を呼び出すための割り込みベクタのリストである。
DOS INT 21hサービス
要約
視点
以下は、DOS APIのプライマリソフトウェア割り込みベクタを介して提供される機能のリストである。
Remove ads
ネイティブサポートのあるオペレーティングシステム
- MS-DOS - 最も普及している実装
- PC DOS - MS-DOSのIBM OEMバージョン
- DR-DOS - Novell DOS、PalmDOS、OpenDOSなどを含むDigital Research DOSファミリー
- PTS-DOS - PhysTechSoftおよびParagon DOSクローン、S/DOSを含む
- ROM-DOS - Datalight ROM DOSバージョン
- FreeDOS - フリーのオープンソースDOSクローン
- ReactOS(IA-32およびx86-64バージョン)
- Windows 95 - MS-DOS 7.0が含まれている
- Windows 98 - MS-DOS 7.1が含まれている
- Windows 98 SE - MS-DOS 7.1が含まれている
- Windows ME - MS-DOS 8.0を含む
- Windows NT(64ビット版を除くすべてのバージョン)
Remove ads
その他のエミュレータ
- Windows NT用NTVDM
- Linux用のDOSEMU
- DOSBox
脚注
関連項目
出典
外部リンク
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads