コンテンツにスキップ

MS-DOS

提供: Wikippe

テンプレート:Pathnav テンプレート:Infobox OS テンプレート:Wikibooks テンプレート:Lang(エムエス-ディーオーエス、エムエスドス)とは、マイクロソフトが開発・販売していたパーソナルコンピュータ向けの16ビットのオペレーティングシステム(OS)である。IBMへのOEM供給品であった テンプレート:Lang (テンプレート:Lang)を自社版として販売開始したもので、バージョン6以降は テンプレート:Lang から完全に独立して開発された。

概要

テンプレート:Langテンプレート:Lang(テンプレート:Lang)は、パーソナルコンピュータ向けの16ビットのディスク・オペレーティング・システム (DOS) で、その名前の通り主にディスクの管理を行うシングルタスクのオペレーティングシステム (OS) である。

基本的なユーザーインターフェースはキャラクタユーザインタフェース(CUI)で、コマンドラインインタプリタ COMMAND.COM の表示するコマンドプロンプトにコマンドを与えて操作を行う。一部のメーカーが独自に追加したり、後のバージョンで搭載されたグラフィカルなツールもある。テンプレート:Langを参考にした階層型のファイルシステムを持つが、ファイル名の制約などが厳しく機能は低い。

歴史的には1981年にIBMが初代IBM PC用に発売したDOSが「テンプレート:Lang」で、1982年よりマイクロソフトがIBM以外のメーカーにOEM提供を開始したものが「テンプレート:Lang」であったが、マイクロソフトは後に1981年から「テンプレート:Lang」と呼んでいる。

両社はバージョン5まではOS共同開発契約(OSクロスライセンス契約)を結んでおり互換性が保たれた。当時は8ビット市場ではCP/M事実上の標準であったが、16ビット市場ではテンプレート:Langならびにテンプレート:Langが主流となった。

特にテンプレート:Langインテルx86マイクロプロセッサを搭載した各社・各機種のパーソナルコンピュータに移植され、世界的にはPC/AT互換機、日本では日本電気(NEC)のPC-9800シリーズ富士通FMRシリーズ東芝ダイナブックなど各社独自仕様のアーキテクチャに移殖された。後にはAXのベース、更には組み込み機器などに、広く普及し主流となった。

しかしテンプレート:Langテンプレート:Lang)を搭載しているPCであっても、アーキテクチャが異なる機種間ではアプリケーションソフトウェアの互換性はほとんど無かった。テンプレート:Langは画面描画に関わるAPIを持たないため、グラフィックメモリを操作して画面描画を行うアプリケーションはハードウェアを直接操作せざるを得ず機種依存となったためである。

日本ではソフトウェアのみで日本語表示を可能としたテンプレート:Langが発売され、漢字テンプレート:Lang機能を持たないPC/AT互換機が普及した。

バージョン6からはIBMとマイクロソフトのOS共同開発契約が終了し、後にテンプレート:Langテンプレート:Langの単体販売やサポートも終了したため、現在はオープンソースを含めた互換DOSの他、テンプレート:Langのコマンドプロンプト環境などのDOS互換環境が存在する。

テンプレート:Langは1995年時点で全世界で1億本を出荷した[1]

歴史

開発の経緯

テンプレート:Main 1980年7月頃、IBMは後にIBM PCとなるパーソナルコンピュータの開発に着手した。しかし、IBMの主力商品である汎用コンピュータに比べるとごく少数のスタッフとわずかな予算しか与えられなかった。プロジェクトリーダーのフィリップ・ドン・エストリッジは、可及的速やかに商品化にこぎ着けるためにソフトウェアは自社開発せずすべて外部から調達する方針を立てた。

当時のマイクロソフトはテンプレート:Langインタプリタアセンブラならびに各種言語のコンパイラ等を開発しており、それらの製品のほとんどが当時のパーソナルコンピュータ市場におけるデファクトスタンダードOSであるデジタルリサーチのCP/M上で動作するものであった。

IBMはマイクロソフトに対し当初はテンプレート:Langなどの言語製品の開発を依頼していた。OSについても8086対応版のCP/Mをマイクロソフトに開発してもらおうとした。しかし彼らはCP/Mのソースの権利を持っていなかった為、ビル・ゲイツのアドバイスに従ってデジタルリサーチ社と交渉することにした。しかしデジタルリサーチとの交渉はうまくいかず、結局マイクロソフト自身がOSを開発する事となった。

とは言うもののマイクロソフトにはOSの開発経験は無かったため、同じ頃CP/Mが8086に移植されない事に業を煮やして独自に移植作業を行っていたシアトル・コンピュータ・プロダクツ社のテンプレート:Langを開発者込みで買収しIBM PC用に改修した[2]

各メーカーへのOEM供給

IBMは当初は「テンプレート:Lang」名称でIBMのみへの供給を主張し、マイクロソフトはIBM以外のメーカーへのOEM供給を主張した結果、「IBM用はテンプレート:Lang名称。マイクロソフトによる各メーカーへのOEM供給も認めて普及を図る」という役割分担となったと言われる(この役割分担は後のテンプレート:Langでも同様となる)。

リスクを軽減化するために買い取りを避けIBM PCの出荷台数に対して使用料を支払うというライセンス契約をしたこと、そしてマイクロソフトから各メーカーへの自由なOEM供給を認めた事が後のマイクロソフトの躍進の原動力と言え、また見方を変えれば、最終的に「軒先を貸して母屋を取られた」IBMの大失策であるとも言えるが、テンプレート:Lang(およびテンプレート:Lang)の普及(デファクトスタンダード化)を決定づけたとも言える。

マイクロソフトからのOEM版の最初は1982年のバージョン1.25でゼニス・データ・システムズ社のテンプレート:Langと言われる。供給先メーカも名称も複数あったと言われる。1983年のバージョン2.0より「テンプレート:Lang」名称に一本化された。ただし複数のバージョン1も後に「テンプレート:Lang 1.0」などと総称される場合が多い。「テンプレート:Langエンサイクロペディア」によると、IBM以外の各メーカーへのOEM供給版に自社の商標(MS)をつけ「テンプレート:Lang」名称としたのは、OEM先メーカーが独自の名前をつけたため混乱を避けるために整理したものとされている。

その後も富士通テンプレート:Langテンプレート:Langや各種の制御機器など、内部的にテンプレート:LangがOEM提供されている場合には「テンプレート:Lang」の名称はユーザーに見えない場合が多い。

DOSの限界と終息

DOSは標準でグラフィカルユーザインターフェースマルチタスク機能や仮想記憶を持たず、80386などの32ビット環境でも「高速な8086」としか使用できなかったため、DOSの拡張や次世代OSが待望された。

1985年には[[DOSエクステンダー|テンプレート:Langエクステンダー]]であるテンプレート:Langや、DOS上で稼働する「オペレーティング環境」としてテンプレート:Langが登場した。更に1987年には本格的なDOSの後継OSとしてIBMとマイクロソフトから テンプレート:Lang 1.0 が登場した。テンプレート:Langテンプレート:Langと同様に、IBMからはテンプレート:Lang IBM版が、IBM以外のメーカーへのOEM版としてはテンプレート:Lang マイクロソフト版が提供されたが、性能やDOS互換環境の問題もあり広く普及しなかったためDOSは継続して使われた。

1990年に日本ではテンプレート:Langバージョン4からテンプレート:Langが生まれ、マイクロソフトもバージョン5からテンプレート:Langを採用して単体での直販も開始したため、日本市場でもPC/AT互換機が普及した。

1993年のバージョン6からは、IBMとマイクロソフトのOS共同開発契約(OSクロスライセンス契約)が終了したため以後はIBMまたはマイクロソフトの単独開発となり、基本部分の互換性は保たれているが付属ユーティリティの相違などが広がった。マイクロソフトはこのテンプレート:Langを単体販売の最終バージョンとし、1995年のテンプレート:Lang以降は単体のDOSも不要となった(技術的にはDOSは内部的に存在しているが、製品としてバンドルされている)。IBMはDOSの改良を続けたが、1998年のテンプレート:Langが最終バージョンであり2002年にはサポートも終了した。

機能

テンプレート:Langと名付けられているように、マイクロソフトのパーソナルコンピュータ向けのDOS(ディスク・オペレーティング・システム)であり、主にディスクの管理を行うシングルタスクOSであった。マルチタスク機能・メモリ保護機能などはOS内部には持っていなかった。またグラフィック画面やサウンドの操作・ネットワーク機能などは、テンプレート:Langテンプレート:Langのほかアプリケーションが直接I/Oを操作するかデバイスドライバなどで提供されていた。

ファイル管理

ファイルの管理は、テンプレート:Langクラスタにより構成される。

ファイル名は8.3形式、つまり、8バイトまでのベース名と3バイトまでの拡張子の合計最大11バイト(拡張子の前の「.」を数えれば12バイト)で表す。アルファベットの大文字小文字は区別しない(全て大文字と見なされる)。

さらにバージョン2以降では、ディレクトリファイル属性の与奪が使用できた。

起動順序

起動順序はバージョンによって若干違うが、概ね以下の通りである。

  1. コンピュータのテンプレート:Lang [[Basic Input/Output System|テンプレート:Lang]]やディスクのマスターブートレコードからディスクのセクタ0にあるブートセクタを読み込んで実行。
  2. ディスクからIO.SYSMSDOS.SYSがメモリ中にロードされる。
  3. IO.SYSを起動し、その後MSDOS.SYSに制御を移行する。
  4. CONFIG.SYSが起動ドライブのルートディレクトリにあれば、そこに記述されたデバイスドライバを読み込む。
  5. バッチ処理のためのコマンドインタプリタでもある標準シェルCOMMAND.COMを起動する。
  6. AUTOEXEC.BATが起動ドライブのルートディレクトリにあれば、その内容を実行し、環境変数の設定や起動時に実行すべきコマンド等の呼び出し、場合によってはアプリケーションの起動なども行う。

COMMAND.COMでは、各ドライブをA:から最大Z:(これは環境変数LASTDRIVEで変更可)までのドライブレターで管理し、内部コマンドではファイル・ディレクトリ一覧の参照、ファイルとディレクトリの作成・コピー・名前変更、コンピュータの時刻や環境変数およびパスの設定参照などができるほか、外部コマンドやアプリケーションなどの実行形式のファイルの起動が行えた。またテンプレート:Lang以降ではテンプレート:Langを意識した入出力のリダイレクト機能やパイプ機能なども利用できたが、テンプレート:Lang上のパイプやリダイレクトはいずれもテンポラリファイルを介した擬似的な実装に留まっていた。

実行ファイル

テンプレート:Langにおける実行ファイルの形式は、現在のテンプレート:Lang系環境で言うシェルスクリプトに類似したコマンドのバッチ処理を記述するバッチファイル(拡張子はBAT)と、CPUが直接実行するバイナリファイルに大別することができる。

このうちバイナリファイルには、単一のセグメントを使うCOM形式、複数のセグメントが使用される場合のEXE形式、さらにデバイスドライバとしてSYS形式が存在し、それぞれ同名の拡張子を持つ。

COM形式の実行ファイルは、バイナリ読み込み時に設定されるコード・データ・エクストラ・スタックの各セグメントレジスタの値が同一アドレスに設定され、プログラム内部でセグメントレジスタを操作しない場合は単一セグメント、最大64KBのメモリ空間を操作する。CP/M 80用に書かれた8080用のアセンブリ言語のソースコードを8086へコンバートした場合を想定したメモリモデルであるが、COM形式のバイナリであってもプログラム側で適切にセグメントレジスタを操作することで64KB以上の空間へのアクセスが可能である。

このうち.SYS形式のバイナリは、原則的に起動時に一度だけ実行されるCONFIG.SYSに記述する以外の方法では直接読み込むことができない。ただし、NECのPC-9800シリーズ版の一部からADDDRV.EXEと登録を記述したファイルの組み合わせにより登録しDELDRV.EXEで外せるようになった(キャラクタデバイスのみであり、CONFIG.SYSで一度登録したデバイスドライバは外せない。IBM PC用では何種類かサードパーティで同様のプログラムが作成されている)。

システムコール

システムコールは、ソフトウェア割り込みにより呼び出されるが、8080やZ80などの8ビットのコンピュータではメジャーな存在だったCP/Mとの互換性、特に8080用にアセンブリ言語で書かれたソースコードを8086にコンバートして用いる場合を想定し、テンプレート:Langでも利用可能としてCP/M 80からの移行を促した。

メモリ管理

テンプレート:Langにおいて、DOS自身のカーネルを含むプログラムの実行に確保できるメモリ空間(ユーザーメモリ、コンベンショナル・メモリ)は、8086のアドレス空間の最大1MBである。ほとんどのコンピュータでは、この空間にテンプレート:LangメモリマップドI/Oテンプレート:Langなどの空間も存在するため、バンク切替えや様々なメモリ拡張手段などを用いずに一時にアクセス可能なメモリ空間は最大でも640KB(IBM PC互換機およびPC-9800シリーズ等)から768KB(PC-H98やFMRシリーズ・テンプレート:Langなど)程度であった。

ただし、テンプレート:LangディスクドライブやディスクキャッシュなどはバンクメモリEMSプロテクトメモリ80286/386以降)等のコンベンショナルメモリ以外の領域・手段の利用が一般化していたため、「貴重な」コンベンショナルメモリがこれらの領域によって圧迫されることはなかった。

日本語入力用のFEPなどの常駐型のデバイスドライバを使用すると一度に使用できるユーザーメモリはさらに減少するため、ユーザーはEMSやXMSHMAUMBなどの拡張メモリの管理機能を利用して、辞書や常駐部やテンプレート:Langシステムの一部をそれらへ配置し、コンベンショナルメモリの圧迫を少しでも避けることが重視されるようになった。

これらのメモリへの配分設定はCONFIG.SYSAUTOEXEC.BATを記述することで行い、事実上ユーザーに一任されていた。

バージョン3まではこれらの設定を行うためにはサードパーティー製のメモリドライバ等を使用する必要があったが、バージョン5では標準機能としてOSに組み込みメモリドライバやデバイスドライバも付属するようになった。また、これらの環境設定を半自動的に行う設定アプリケーションも添付された。

メモリドライバや各種デバイスドライバには組み込み用のバッチやスクリプト、設定アプリケーション等が整備され、「とりあえず動く」という状態を作るだけであればエンドユーザーがこれらを直接操作する必要はほぼ無かったが、千差万別なユーザーの環境にこれらが対応することもまた困難であり、ひとたびイレギュラーが発生した場合それらのお仕着せの環境に頼り切ったユーザーには事態収拾のハードルが高かったのも事実である。また「とりあえず」に飽き足らず無駄を省き最適な設定をするためには知見と試行錯誤が要求されるある種の職人芸的な資質が要求されたため、これらの事情が「テンプレート:Langの環境設定は非人間的で困難なものであった」とする後世の評価を招く原因ともなった。

[[Windows 9x系|テンプレート:Lang 9x系]]のOSは製品としては「DOSを必要としない、テンプレート:Langという単体のOS」と称しているが、内部的には従来のテンプレート:Langと同様テンプレート:Langモジュールから起動してプロテクトモードで稼働しGUIや擬似マルチタスクを提供する構造(一種のDOSエクステンダー)をしていた。ただし、テンプレート:Langが使用するテンプレート:Langシステムコールはごく一部に限られ、テンプレート:Langなどによりファイル管理方法が拡張されている。なお、テンプレート:Lang 95・98などのテンプレート:Lang本体を起動していないテンプレート:Langモードの場合はテンプレート:Lang上のロングファイルネームでも8文字+拡張子3文字のショートファイルネーム形式のファイル名で表示された。

バージョン

バージョン一覧

テンプレート:Langテンプレート:Langの主要なバージョンの一覧は以下の通り。

バージョン 出荷開始 IBM マイクロソフト 備考
1 1981年 テンプレート:Lang 1.0 (テンプレート:Lang) 1.25 1981年 IBM PC用にテンプレート:Langが登場。1982年 マイクロソフトがIBM以外に1.25以降のOEM供給を開始(名称は供給先により異なる)。
2 1983年 テンプレート:Lang 2.0 テンプレート:Lang 2.0 テンプレート:Lang用に登場、階層ディレクトリなど。マイクロソフト版の名称が「テンプレート:Lang」に一本化され、日本でも PC-8801、PC-9801用の日本語テンプレート:Langを供給。
3 1984年 テンプレート:Lang 3.0 テンプレート:Lang 3.0 PC/AT用に登場、テンプレート:Langなど。広く普及し事実上の標準に。同時期にテンプレート:Lang 4も出荷。
4 1988年 テンプレート:Lang 4.0 テンプレート:Lang 4.0 IBM版が名称変更。[[DOSシェル|テンプレート:Langシェル]]など。IBM版4.05より日本でテンプレート:Langテンプレート:Lang J4.05/V)も登場。
5 1991年 テンプレート:Lang 5.0 テンプレート:Lang 5.0 メモリ管理機能強化。IBMとマイクロソフトのテンプレート:Lang共同開発の最終版。マイクロソフト版は初めて単体の直接販売が開始される。日本ではマイクロソフト版テンプレート:Langテンプレート:Lang 5.0/V)も登場し、各社PC/AT互換機に広く採用される。同時期にテンプレート:Lang 6.0 出荷。
6 1993年 テンプレート:Lang 6.1
テンプレート:Lang 6.3
テンプレート:Lang 6.0
テンプレート:Lang 6.2
IBM版が名称再変更。テンプレート:Langテンプレート:Langは付属ユーティリティの違いが拡大。テンプレート:Langは単体販売の最終版。同時期にテンプレート:Lang テンプレート:Langテンプレート:Lang) 7出荷。
7 1995年 (なし) テンプレート:Lang 7.0
テンプレート:Lang 7.1
テンプレート:Lang 95/98/98SEの内部バージョン。テンプレート:Lang 7 とは全く別物。7.1はテンプレート:Lang 95 OSR2 以降で、テンプレート:Langに対応した。
1995年 テンプレート:Lang 7 (なし) IBM版のみ。スクリプト言語のテンプレート:Langをサポート。テンプレート:Lang 7 とは全く別物。
8 2000年 (なし) テンプレート:Lang 8 テンプレート:Langの内部バージョン。テンプレート:Langの最終版。
2000 1998年 [[PC DOS 2000|テンプレート:Lang 2000]] (なし) ユーロ記号、2000年問題対応など。テンプレート:Langの最終版、2002年サポート終了。

バージョン1

CP/M程度の機能しか持たない、基本的なディスクオペレーティングシステム。ファイルシステムは後のバージョンで実装された階層構造を持っておらず、ディレクトリが利用できない。CP/Mとの大きな違いは、汎用化の為に入出力デバイスの機種依存が無くなっている点であった。その為、ハードウェアにテンプレート:Langとして内蔵されたテンプレート:Langを通して入出力を行うようになっていた。なお、この仕組みは互換テンプレート:Langを利用したPC互換機を生み出す要因ともなった。

このバージョンが使われていた頃は、8086またはその互換プロセッサ(8088等)を利用したパーソナルコンピュータ市場もそれほど大きくなかった為、出荷本数の大半はIBM PCにバンドルされた分だった。

  • バージョン1.0(1981年8月)- IBM PC(初代)出荷と同時にリリース。64KBのメモリ空間のうち約12KB(そのうちシェルが5KB)を占有した。また、160KBの5.25インチフロッピーディスク (1D) をサポートしていた。テンプレート:Langのみ。
  • バージョン1.1(1982年5月)- 360KB 5.25インチフロッピーディスク (2D) サポートの他、一部のバグフィクス。テンプレート:Langのみ。
  • バージョン1.25(1982年5月)- マイクロソフト版が、8086プロセッサを利用したパーソナルコンピュータ、更にはIBM PC互換機向けに、IBM以外のメーカーへのOEM提供を開始(テンプレート:Langなど複数)。

バージョン2

IBM PC/XTの仕様に合わせ、HDDや360KB 5.25インチフロッピーディスク (2D) をサポートしている。階層構造ディレクトリ、CONFIG.SYSによるデバイスドライバの追加機能、テンプレート:Langライクなパイプ等の機能が追加された。アセンブラのテンプレート:Langが付属していた。

マイクロソフト版はこのバージョンより名称が「テンプレート:Lang」に一本化され、日本ではPC-8801用16ビットテンプレート:Langボードに付属して販売された他、PC-9800シリーズ用にも販売された。

  • バージョン2.0(1983年3月)- PC/XT 出荷と同時にリリースされた。
  • バージョン2.01
  • バージョン2.1(1983年10月)- IBM PCjr 向け。
  • バージョン2.11(1984年3月)- 多言語市場を意識し、文字セットや日付表示のローカライズをサポート。
  • バージョン2.25(1985年10月)- 東アジア市場向けに2バイト言語に対応を図った「アジアバージョン」。理由不明だが、日本市場においてはバージョン2.11の名称で流通した(MSDOS.SYS内部に2.25の表記あり)。各社独自に拡張され、x86プロセッサを搭載したパーソナルコンピュータ向けに広く利用された他、当時マイクロソフトの代理店であったアスキーの市場戦略の関係で、市販ソフトウェアにサブセット版のバンドルが許されていた。

バージョン3

当初 IBM PC/AT 用に発売。主としてネットワーク対応と大容量HD対応の為の16ビットテンプレート:Langが追加された。もっとも、管理できるセクタ数が65535個であったため32MB以上のパーティションを切ることは出来なかった。本来80286プロセッサを搭載したPC/AT向けだったが、互換性確保目的で80286のプロテクトモードを利用した新機軸は敢えて盛り込まれなかったためサードパーティー製の各種ユーティリティによって機能拡張するユーザが多かった。

ベンダーによる独自拡張などで方言が多くバージョン番号の体系も大きく乱れている。必要十分なスペックと安定性が評価され、またバージョン4以降の仕様変更の影響を避けるために一部ではかなりの長期間にわたって愛用されていた。

  • バージョン3.0(1984年8月)- PC/ATの発売と同時にリリースされた。1.2MB 5.25インチフロッピーディスク (2HD) 及び32MBまでのHDをサポート。HDの論理ボリュームはひとつのみ。
  • バージョン3.1(1984年11月)- 3.0のバグフィックス版。ネットワーク機能としてトークンリングに対応した。但し、性能が低く専らノベルテンプレート:Langなどのテンプレート:Langが一般的に用いられた。日本では NEC PC-9800 シリーズ、富士通 FMRシリーズ及びテンプレート:Lang(尚FMR・テンプレート:Langシリーズ用の3.1の後期バージョンでは米国版の3.2/3.3の機能の一部が取り入れられていた)、シャープ MZシリーズなどに独自拡張したバージョンが用いられた。また、NECのPC-98LT、テンプレート:Lang98、富士通のテンプレート:Langにはテンプレート:Langで内蔵されていた。
  • バージョン3.20(1986年1月)- 720KB 3.5インチフロッピーディスク (2DD) をサポート。
  • バージョン3.21 - 3.20のアジアバージョン。2バイトコードに対応し、日本ではAXなどに採用された。
  • バージョン3.3(テンプレート:Lang版)(1987年4月)- IBM主導で開発された。1.44MB 3.5インチディスク (2HD) をサポート。多言語対応の為、コードページが採用された。
  • バージョン3.3(OEM版)(1987年8月)- HDにおいて複数の論理ドライブを扱えるようになった。
  • バージョン3.3(NEC版)- 3.21を元に独自拡張。いわゆる「エプソンチェック」が掛けられるようになった。
  • バージョン3.3A(NEC版)- 3.3を元に独自拡張している。
  • バージョン3.3B(NEC版)
  • バージョン3.3C(NEC版)
  • バージョン3.3D(NEC版)- バージョン5.0(NEC版)と同時発売。見かけ上のセクタサイズを1KB若しくは2KBとすることで最大128Mのパーティションを管理することが出来た。

バージョン4(1986年)

バージョン3.20から派生し、8086上で限定的な擬似マルチタスク環境を実現したもの。MSが開発したが不十分であるとしてIBMには採用されず、テンプレート:仮リンクにネットワークOSとしてOEMされた他、僅かの用途に留まり絶滅亜種になってしまった。非同期I/O対応やバックグラウンドタスク規約など資産の一部は [[Microsoft Windows 2.0|テンプレート:Lang 2.x]] に流用され、また80286プロテクトモードを前提に並行開発されていたもの(当初バージョン5と呼ばれていた)はIBM主導で大幅に改訂され、世に出た時にはテンプレート:Langバージョン1.0になっていた。

バージョン4

IBM主導で開発されたバージョン。テンプレート:Lang色が濃くなり、IFSやラージバッファ等の追加のみならず管理セクタ数が増やされた事に伴いHDは理論上最大2GBの領域を扱うことができるようになった(実際にはテンプレート:Langの制限があった)他、添付ユーティリティを利用すると最大512MBのパーティションまで作成可能になったが、その反面余りに多くの変更がファイルシステムに加えられたため非互換性の問題も生じてしまった。

情報が全部公開されていなかったものの、2バイトコードによるユニバーサルランゲージ対応が内部的に完了したのも本バージョンからである。従来のバンクメモリに代るEMSの標準サポートによって扱えるメモリ領域が1MB以上に拡張された。

互換OSのテンプレート:Langで好評を博していた「テンプレート:Lang」に類似のグラフィカルユーザインタフェース環境、「DOSシェル」が添付された。これはマウスオペレーションやグラフィカルなメニューによる直感的な操作が行えるもので、依然シングルタスクながらも複数のアプリケーションを重複起動して切替動作させることができ(いわゆるタスクスイッチャ)、GUIもキャラクタベースによる簡易なものとグラフィック画面とテキスト画面を組み合わせたもの(表示が美しく、ポインタの動作もスムーズになる)とを選択できた。DOSシェルのデザインはIBM テンプレート:Lang テンプレート:Langに準拠していた。

本バージョンには性急な複雑化に伴う非常に多くのバグが存在し、またOS自体が消費するメモリが過大だったため、メーカーによってテンプレート:Lang 3.30 を拡張した テンプレート:Lang 3.31 を採用するなどして4.0を採用しないところが有った。コンベンショナルメモリの空き容量が日本語処理アプリケーションの稼動に直接影響する日本では、大手メーカーであるNEC、富士通などが3.3系の拡張版のみを販売していたためユーザー数はそれほど多くはなかった。テンプレート:LangからはPC-9801互換機用としてリリースされていた。

バージョン5

再びマイクロソフト主導で開発された。バージョン4で付加された中途半端なユーティリティの多くが削除された一方、80386、80486等に備わる仮想86モードの活用と [[Microsoft Windows 3.x|テンプレート:Lang 3.0]] との親和性を主眼にほぼ全面的に再コードされたため、パソコン通信等を介した約1年にわたる大規模なベータテストを経て市販開始された。IBMの製品へのバンドルに限定せず、巷に溢れるPC/AT互換機へのフル対応を初めからうたいインストーラ込みで発売された最初のテンプレート:Langテンプレート:Langテンプレート:Lang)でもある。

メモリ消費は少ないものの大容量ドライブが扱えないバージョン3、その逆で大容量ドライブが使えるがメモリ消費が大きいバージョン4というジレンマを抱えていたが、限りあるメモリ領域の消費を抑える機能を追加することでそれまでの問題を払拭するに至った。このバージョンによりDOSはほぼ完成を見たが8086~80286とその互換CPU上の動作には制約が強まり、結局のところ巧妙なアップグレード戦略の下でハードウエアの買い替え需要が喚起された。

XMSによってDOS本体の一部をHMAに、デバイスドライバやアプリケーションの一部をUMBに待避させることが可能で、コンベンショナルメモリを大きく取れるようになった。またタスクスイッチ規約が明確に定義され、DOSシェルの機能拡張(テンプレート:Lang 3.0 のサブセット化)が図られた。各種テンプレート:Lang対応も進められ、コマンドにヘルプが付されるなど利便性も向上した。

テキストエディタは、過去のバージョンに標準添付されていたラインエディタEDLIN」に加えスクリーンエディタが添付された(PC/AT互換機用・テンプレート:Lang版は「EDIT」だったが、NEC版は「SEDIT」(編集可能な容量に制限がかけられている[3]。バージョン3.3Dにも付属)、富士通版(FMRシリーズ、テンプレート:Lang用)は「EDIAS」とそれぞれ各社ばらばらだった)。開発環境として、コマンドラインエディタに加え独自に拡張された構造化テンプレート:Langコンパイラテンプレート:Langが標準添付されていた。

それまで未公開だったファンクションの多くがユーザに解放されたためカスタマイズやデバイスドライバ開発が更に容易になり、日本ではPC/AT互換機をベースに独自の拡張を行っていたAX陣営や東芝 (J-3100)もこの頃よりテンプレート:Langへのシフトを進めるようになった。また、世界のデファクトスタンダードであるPC/AT互換機のハードウェアでそのまま日本語版OSを使えるようになった為に日本国外のメーカーが積極的に日本市場へ参入し始め、NECの独擅場であった日本市場は大きく変貌することとなった。

バージョン6

ディスク最適化ディスク圧縮機能(後述)、コンピュータウイルス検出・除去など、テンプレート:Langアクセスに必要なテンプレート:Langの付属等付加機能の充実が主。テンプレート:Lang単体としての最終版。

デジタルリサーチからテンプレート:Lang互換の テンプレート:Lang 6.0 が発売された。大きな特徴は補助ユーティリティの大幅な増強である。その為、IBMおよびマイクロソフトでも基本仕様はほとんど変えずに補助ユーティリティを追加する事でバージョン6を発売することになった。IBMは6.1、それに続くマイクロソフトは6.2と、先に出た競合相手よりバージョン番号はそれぞれ0.1だけ大きい。

起動時に特定のキーを押すとCONFIG.SYSAUTOEXEC.BATの一部の行を実行したり、全てバイパスする機能があった。

同時期に発売された [[Microsoft Windows 3.x|テンプレート:Lang 3.1]] の普及促進のため、販売戦略的にテンプレート:Langシェルは廃止された(別途サプリメンタルディスクを入手する必要があった。NEC版には従来どおり付属)。テキストエディタも共通のEDITとなった(NEC版のみSEDITが付属したが、こちらはメガソフト社のテンプレート:Langのサブセット版[3])。

バージョン7(マイクロソフト版)

テンプレート:Lang 95/98/98SE に搭載されているバージョン。ファイルシステムでは長いファイル名がサポートされたのが最大の特徴。従来のMSDOS.SYSIO.SYSにその機能を統合されて設定ファイルとなり、IO.SYSが起動する標準シェルがCOMMAND.COMではなくWIN.COMであるなどテンプレート:Langを極力見せない工夫がされていた。しかし、テンプレート:Lang起動中にテキストモードのカーソルが見える。テンプレート:Lang 95のテンプレート:Lang以降ではテンプレート:Langにも対応しているバージョン7.1である。また、テンプレート:Lang 95/98はテンプレート:Langを起動せずにテンプレート:Langモードで再起動することができた。

バージョン7(IBM版)

1995年リリース。IBM版のみ。開発環境として「テンプレート:Lang」を標準添付。ディスク圧縮ユーティリティは「テンプレート:Lang」から「テンプレート:Lang4.0」に変更された。テンプレート:Lang 7(マイクロソフト版)とは異なりGUIとの融合はされなかったが、発売開始当時インターネットの普及が進んでいたためテンプレート:Langウェブブラウザテンプレート:Lang」が発売された。

バージョン8(マイクロソフト版)

テンプレート:Langに搭載されているバージョン。IO.SYSHIMEM.SYSおよびEMM386.EXEの機能を統合した最終版であり、もはやテンプレート:Langブートローダでしかなくテンプレート:Langモードでの起動も廃止された。テンプレート:Langテンプレート:Lang以降で起動ディスクを作成するとこのテンプレート:Langが書き込まれる。

テンプレート:Lang 2000(IBM版)

テンプレート:Lang 7.0/V をベースに、ユーロ記号の表示や西暦2000年問題に対応したもの。VERコマンドではPC DOS Version 7.0 Revision 1と表示される。日本語版は製品名に「/V」が付いていないが、「テンプレート:Lang」部分を含んでいる。これがテンプレート:Lang(テンプレート:Lang)およびテンプレート:Lang全体の事実上の最終バージョンとなる(互換OSは除く)。2002年にはサポートが終了した。

テンプレート:Langとの互換性を持つオペレーティングシステム

テンプレート:Langとバイナリ互換性を持つオペレーティングシステム

またPC-9800シリーズ全盛期には、ゲームソフトの組み込み用として下位互換(テンプレート:Lang系のサブセットのみ互換)の「テンプレート:Lang」などがあった。アリスソフトの「テンプレート:Lang」は、もともとゲームソフト本体はテンプレート:Langをインストールしたハードディスクドライブ上で動かすことを前提としあくまでもフロッピー単体でも起動するようサポート用に作られたものであったため、バッチファイルを動かす機能も有していた。

テンプレート:Langの影響を受けつつもバイナリ互換性の無いオペレーティングシステム

脚注

テンプレート:脚注ヘルプ

  1. 日経産業新聞』1995年6月22日付
  2. このやり方を進言したのは当時同社役員でもあった西和彦と言われている
  3. 3.0 3.1 藤山哲人「PC-9801開発現場の8つの秘密」、『月刊アスキー別冊 蘇るPC-9801伝説 永久保存版 第2弾』、アスキー、2007年4月9日初版、138ページ

関連項目

外部リンク

テンプレート:Wikibooks テンプレート:Windows テンプレート:オペレーティングシステム