DOSの歴史セミナ

Altair☆'s Pageに戻る 初版: 1996年 9月15日
改訂第4版: 1997年 5月10日
第4.13版: 2000年 9月 5日
by Altair☆

15年以上の長きに渡って、PCのOperating Systemとして君臨して来たDOS。その歴史を、私なりに、まとめてみました。



86-DOS - Seattle Computer Products

1980年、Seattle Computer ProductsのTim Patersonは、16 bit CPU i8086 / i8088ための最初のOSとして86-DOSを書き上げた。この86-DOSには、当時広く普及していたDigital Researchの8 bit CPU i8080 / Z80用のOS CP/Mからのapplicationの移植が容易になるよう、FCB (file control blocks)やsystem functionの構造は、CP/Mのものが踏襲された。

一方、当時、Microsoftは、BASICやFORTRANなど8 bit CPUで動作する言語処理系のsoftware makerであり、OSを持っていなかった。しかし、匿名の顧客から言語処理系だけでなくOSの注文も受けたMicrosoftは、Seattle Computer Productsに86-DOSをカスタマイズするよう依頼した。

Tim Patersonは、翌年になるまでMicrosoftの匿名顧客がIBMであることを知らなかった。それを知った後も、Tim Patersonは、1982年まで、Seattle Computer Productsに籍を置いたままMicrosoftと協力し、IBMの要求に応じた仕様を作り込んだ[1]。その後、Tim Patersonは、IBM PC互換BIOSメーカとして有名なPhoenix Technologiesで活躍している。

1981年7月、MicrosoftはSeattle Computer Productsの86-DOSの全ての権利を買い取った。


PC DOS 1.0

1981年8月10日、IBMはTim PatersonのOSをPersonal Computer DOSとしてrelease。

この時点でPC DOSは俗称。IBMが正式にPC DOSという呼び方をしたのは、PC DOS 6.1から。それまでの略称は単にDOS。正しい名称は、Personal Computer DOS。でも面倒なので、ここではPC DOSと書く。

特長は、 である。この版では、まだ、fileの日時管理と、CONFIG.SYSによるカスタマイズはサポートしていない。

IBM Personal Computer 5150は市場で、The PCと呼ばれた。もちろん、この時代に広く使われていた他のマシン、Apple IIやTRS-80と同様にROM BASICも搭載。IBMは、PC-DOSだけでなく、CP/M-86、Softech's p-systemも用意した。

P-Systemは、UCSDで開発された。P-codeマシンと呼ばれる仮想マシン上で走るので移植性に優れ、AppleIIやPC-8001などで広く利用されていた。しかしIBM PC版の出荷が遅れたため、普及することなく衰退してしまった。


PC DOS 1.1

1982年3月。DOS 1.0からの変更点は、

1D1はsingle sidedの意味。2D2はdouble sidedの意味。数字の後のDはdouble dencity。1970年代後半のmicro computerのfloppy diskには、記録にFM変調が使われていた。それが1S (Sはsingle dencityの意味)。Double dencityとは、記録にMFM変調を使うことで記録密度を高めているfloppy diskという意味。

この頃には、早くも互換機が出回り始めた。IBM PC compatibleとは言わずLotus 1-2-3 compatibleという広告を良く見かけた。DOSが使えるかどうかではなく、Lotus 1-2-3が走るかどうかがusersにとって重要なポイント。

Lotus 1-2-3の前提条件として必要なのがPC DOSであり、PC DOSを走らせるためには、IBM PCか その互換機が必要という図式である。VisiCalcでApple IIが、マリオでファミコンが、ソニックでセガが普及したのと同じ。人はパンのみにて生きるに非ず。PCはhardwareのみにて使えるものに非ず。(^_^)


ZDOS 1.25

これよりも前のバージョンのDOSはIBMだけが販売していたが、1.25は初めてIBM以外から販売された。日本では馴染みが無いかも知れないが、Zenithというメーカから出た。Zenithから出たからZDOS。MicrosoftがIBM以外にOEMしたと日本でも経済紙や専門紙の新聞紙面が賑わった。

1.1の次が1.2ではなく1.25なのは、IBMとTim Patersonのバージョン番号管理方法が異なっており、1.1=1.24ということなのだそうな。(^.^;

技術的な話になってしまうが、この版で、FAT file systemのend-of-directory (00h) markの定義が追加された(PC DOSでは、2.0以降でこの仕様変更が反映されている)。


DOS 2.x

1983年3月。unixを意識した様々な拡張がなされた。

  • 9 sectors / track format
    (DOS 1.xは、8 sectors / track)
  • 階層構造directory
  • file handle
  • pipe
  • I/O redirection
  • print spooling
  • volume label
  • CONFIG.SYS

MS-DOSという名前が初めて登場したのも、このバージョンから。

1982年に発売されたNECのPC-9801は、TK-80 (1976年)以来の秋葉原でのサポートの長い実績と、N88-BASICを使えばそれまでのZ80ベースのBASICマシンPC-8801のsoftware資産が使える利点で、日本国内の市場には受け入れられた。PC-9801は単なるBASICマシンであったが、Microsoftと提携したASCIIがMS-DOSの普及に努め、PC-9801にもMS-DOSが普及した。MS-DOSマシンとしてのPC-9801は、1980年代の日本市場を寡占した。

この時点になっても、不思議なことに、日本IBMはIBM PCやPCjrを日本市場で販売しなかった。日本国内ではComputer Landが米国IBM PC代理店となっていた。

1984年。日本IBMは、JXを、PCjr互換モードと5550互換の日本語モードの日米バイリンガルPCとして市場投入。JXは営業的に失敗したが、後のDOS/Vに様々な意味で影響を与えている。JXのバイリンガル環境は、英語モード用カートリッジと日本語モード用カートリッジを取り替えるというhardwareの切り換えで実現されていた。それをsoftwareだけで実現したのが後に登場するDOS/Vなのである。


DOS 3.0

1984年夏。PC/ATが登場。2HC (1.2MB; HCはhigh capacityの意) disketteをサポート。普及しているPCの多くが512KBのメモリを搭載していた時期。HDDが利用され始めたのも、この頃。HDDと言っても、せいぜい8MBくらい。

INT 21h Functionレベルでは、extended error reportingや、file or record lockingなどの重要な機能が拡張された。

この年にAppleはMacintoshを発売している。Macintoshの原型とも言えるLisaの発売は、この1年前。一足先にAppleはmouseとGUI (Graphical User Interface)の時代を迎えていたわけである[2]


DOS 3.1

1985年春。networkとfile sharigのサポート。
↑様々なvendorからOEM供給され広く流布された版 … なのに、このセミナでは、たった1行。(^^;


DOS 3.2

1985年末。3.5 inch floppyサポート。Microsoftが、Microsoftブランドで販売した最初の版。それまではOEM供給のみ。


DOS 3.3

1987年。NLSサポート。

開発主体がMicrosoftからIBMに移る。DOS 3.3と4.0は、IBM PS/2やIBM SAAの匂いがぷんぷんすると感じるのは私だけだろうか。NEC PC-9801用のMS DOS 3.3は、NLSサポートが無く、実際にはPC DOS 3.2レベル。

IBMはATバスの代わりにMicro Channelバスを使用したPS/2 (日本市場ではPS/55)を発売。IBMが、互換機締め出しを図るclosedな経営路線を採り始めたのも、この時期。互換機メーカはそれに対抗しEISAバスを開発。PS/2の登場に伴い、IBMはPC seriesを凍結(ATバスが無くなったわけでは無い。PS/2 model 25とmodel 30は、ATバス)。Personal Computer DOSの呼称も無くなり、IBM DOSになった。

CP/M市場をDOSに奪われたDigital Researchは、DOS 3.31互換のDR-DOS 4をrelease。


IBM DOS 4.0

1988年。32 MBを超えるHDD patitionのサポート。この時代、PCのメモリはentry modelでも640 KB。MBオーダのRAM実装が一般的になった。俗にint 15方式と呼ばれる方法でのextended Memoryサポートがなされた。DOS shellも、この版から。

OS/2を意識したIFS (installable file system)や拡張属性、large buffer (CONFIG.SYSのBUFFERS=で指示されるdisk bufferをEMS上に大量に確保するオプション)などの実験的な拡張もなさた。しかし、これらは後にDOS 5.0で廃止される。

PS/55 (PS/2をbaseに日本語表示用の特殊なvideo cardを搭載したもの)向けに日本語DOS J4.0 (通称 JDOS)が販売されていた。フリーウェアとして公開されたChgModeは、hardwareをresetすることなく日米環境の切り換えを実現。その実現手段こそ違うが、機能的には後に登場するDOS/Vのchevコマンドの原型とも言えよう。


DOS/V

DOS 4.0の末期になると、2〜4MBのRAMの実装と50MB〜120MBクラスのHDDが一般的。PS/2 (DOS 3.3〜)発表と同時にclosedな路線を採ったIBMも、open路線に方針を戻した。

NIFTY-Serve FIBM forum (現在のFPCU系forum)日経mix IBM会議の参加者、users団体PCT帝塚山マイコンクラブなどの外国製PC利用者たちの要望に応え、1990年、日本IBMからDOS J4.05/Vがreleaseされた。これらのnetworkerやusers団体の主要メンバが秋葉原の喫茶店古炉奈に集ったのも、この時代である。

我々の期待通り、DOS/Vの登場が、PC-9801 seriesによるNECの1社寡占という不健全な市場環境を突き崩し、競争原理を市場に呼び戻し、今に至っている。

しかし、今、本当に市場競争原理は健全に機能しているのだろうか? OSだけでなく、様々なapplicationでMicrosoftが大きなシェアを伸ばしている。OSを選択する時、UNIX系OSやOS/2を選択する知識を持つusersは限られている。Windows 95にするか、それともWindows NTにするか? どちらを選んでもMicrosfot製品である。Microsoft環境だけが多くのusersやそれをpre-installして出荷するhardware makerに何の疑問もなく受け入れられている現状は、健全な市場競争とは私には思えないのだが…。


DOS 5.0

DOS 4で追加されたIFSやLarge Bufferは廃止。Windows 3.0サポートのためのExtended MemoryはXMS memory driverで管理。UMBサポート。

このUMB利用によりコンベンショナル・メモリを広げる考えかたも、実は、DR DOS 5QEMMで、DOS 5.0登場の半年以上前に実現されていた。決して新しい考え方ではなかった。しかし、MS-DOS、IBM DOS自身がネイティブにそれをサポートする恩恵を我々usersは喜んで迎え入れた。

DOS 5のもうひとつ重要な拡張は、ハンディキャッパへの配慮(例えば、片手が不自由な人のための特殊なキーボード配列)が強化さたことである。

IBM DOS J4.05〜4.07/Vの後継としてIBM DOS J5.0/Vも登場。NEC天下で価格競争の無かった日本市場に、海外からの廉価なPC/AT互換機がどんどん輸入されるようになった。

DOS/Vの日米バイリンガル環境の普及により、日本国内でも海外のsoftwareも手軽に入手できるようになった。Hardwareだけでなく、海外からの優れたsoftwareも低価格化した。

一方、IBM DOS/Vに遅れて登場したMS-DOS 5.0J/Vでは、そのβ段階で、海外のDOSには無い日本市場独特の機能を盛り込もうとしたため、かえって一部の海外のsoftwareの利用が不自由になってしまう問題がありusersからの反発が多く、network上でも騒ぎになった。結局は、ほぼusersの意向が反映された形で正式出荷された。

DOS/Vは、boot時にCONFIG.SYSとAUTOEXEC.BATを実行しないと、日本語処理に必要なfont driverとdisplay driverがloadされず英語しか表示できない。しかし、CONFIG.SYSとAUTOEXEC.BATを実行させない時、MS-DOS/Vはcode pageのdefaultが932 (日本語)である。つまり、例えば、DOS loadingの際にF5キーを押してCONFIG.SYSとAUTOEXEC.BATを実行させないモードで起動したりすると、日本語を表示できないにも拘らず日本語code pageになってしまい、DOS commandのmessageが化けたりする仕様的なbugがある。このbugは、Windows 95 (日本語版)になっても修正されていない。(PC DOS/Vでは、このような問題は生じない)。


DR DOS 6.0

Digital Research[9]は互換DOSとしてDR DOSを独自に開発し販売していた。DR DOS 6.0には、MS-DOSやPC DOSとの差別化を図るため便利なユーティリティを豊富にバンドルした。日本市場には、DR DOS 6.0/Vも投入。この豊富なオマケ欲しさにDR DOS 6.0/Vを秋葉原で入手した電脳暴走族諸兄も少なくあるまい。

このころ、sub note PCが本格的に普及し始めていた。しかし、そのHDD容量は20〜60MB程度。当時普及し始めたWindows 3.0を快適に使うには不自由な容量であった。DR DOS 6.0には、個々のdisk I/Oを積極的に圧縮/解凍しながら行うことで、見かけ上1.5〜2.5倍の容量のHDDがあるのと同等の効果を得られるようなユーティリティDISKMAX (Super Storeのサブセット)もバンドルされた。

当時の私が重宝したDR DOS 6.0の特筆すべき機能は、TaskMaxと言う複数taskのswapping機能である。MS/PC DOS 5.0のDOS Shellにもtask swapping機能があったが、それと違い、TaskMaxは、多くのtaskを起動することができ、そのtask間でのcut & pasteもOK。HDDもmomoryも狭い当時のsub noteで使うには、Windows 3.0は重過ぎたのである。

Digital Reseachは、互換DOSとしてDR-DOS以外にFlexOSを発売していた(初版は1985年)。これは、multi taskingを実現したもので、FAやレストランのオーダリングPOSターミナルなどに広く使われている。

後に、Digital ReseachはNovellに買収された。Novellは、Novell DOS 7を発表。DR DOS 6.0のTaskMaxは、後継のNovall DOS 7に於て更に本格的なmulti task機能に発展。Novellが得意とするnetwork機能も充実したDOSとなった。しかし、Novellは、ほどなくDOSの開発部隊を解散。この技術や経営は後にCalderaに引き継がれOpenDOSとなったが、現在では、名前がまた元のDrDos (後述)に戻っている。


DOS 6, PC DOS 7

起動時の処理方法の変更とおまけが増えただけ。DOSそのものに新規性は殆どない。

新聞報道等で頻繁に使われた表現を借りれば、「MicrosoftとIBMの蜜月時代が終わり」、MicrosoftとIBMから似て非なる物が同時に市場に出回った。おかげで利用者は混乱し、雑誌のライター稼業は儲かったのだが、素直には喜べない心境であった。

MS-DOS 6.0のドライブ圧縮プログラムDouble Spaceは、その手法が知的財産権の侵害と訴えられ敗訴。その後、アルゴリズムが変更され、6.22で完成を見た。このため、MS-DOS 6.0〜6.22のそれぞれのDouble Spaceには相互の互換性が無い。

ちなみに、PC DOS 6.1〜7.0、PC DOS 2000のドライブ圧縮プログラムには、Stackerが採用されている。

1995年。IBMはPC DOS 7.0VM/CMSOS/2環境で人気の高いREXXというscript言語やIPF(対話式生産性向上)ビューアを搭載。更に日本市場向けのPC DOS J7.0/Vでは、V-TextをサポートするDOS/V Extension 2.0のフルセットをバンドル。DOS最後の集大成とも呼べるのかも知れない。

ちなみに、MS-DOS 7と言う場合、それはWindows 95のことを指し、PC DOS 7.0とは別物である。実際にMS-DOS 7という商品があるわけではない。Windows 95が、時としてMS-DOS 7と呼ばれるのは、単純な理由で、DOS functionのget version (AH=30h; INT 21H)に対し、7.00という値が返ってくるからである。(ちなみに、Windows 95 OSR2では7.10と返ってくる)。

IBMは、既にPC DOSの今後の新規versionの開発はしないと発表しているが、PC DOSにも添付されているIBM Anti Virusのhome page[3]は今でも頻繁に更新され、新しいvirus情報を提供しているようだ。


FreeDOS / OpenDOS

もうDOSの時代も終わりかな?なんて思っていたら、source codeを公開した互換DOS FreeDOS [5]が、その名の通りfreeで登場。たかがDOS、されどDOS。DOSは、まだまだ育ち続けている。

既にFree BSDLinuxなどのFreeなOSが普及しているが、これらのOSの下にvirtual DOS machineを実現するのに今まで欠けていたのは、freeなDOSが無かったことである。FreeDOS、期待せずにいられようか?

もうひとつアキバ系の我々が期待しても良さそうだったのは、OpenDOSであった[7]。Digital Researchが開発したCP/Mと前述のDR DOSのライセンスはNovellに渡り、さらにCaldera Thin Clientsへと渡った。Caldera Thin Clientsは、multi taskを実現したNovell DOS 7を更に改良し、Embeded OSとしてsource codeと共に公開。それがOpenDOSである。

ややこしいことに、後に、名前は元の『DR-DOS』に似た『DrDos』に戻された。Caldera Thin Clientsは、1999年にLineoに買収され、Lineo DrDos[6]として現在も提供され続けている。しかし、あまりopenなものとは言えなくなっている。


むすび

DOS用の新たなapplicationは今でも市場に登場し続けている。

1997年3月、WebBoy[8]というDOS用Web Browserを発表。

同年9月、Vz Editorの発売元としてお馴染みのVillage CenterもInternet accessのためのDOS用softwareを発表[10]

1998年、System Design誌はOpen DOS特集を発行。皮肉にもこの特集号の発売に時期を前後して、Open DOSは改名してしまった。

一方、IBMは、同年6月にPC-DOS 2000をアナウンス。DOS/V 6.3〜7.0にも西暦2000年問題を解決するためのfixが配布されていたが、これは、その最終的なもののようで、『時の記念日』に発売。欧州統合通貨のユーロ記号にも対応。ユーロ対応部分を除き、PC DOS 7.0ユーザは無償でアップデートできる。

FreeDOSや、Lineoに引き継がれたDrDosは、LinuxのDosEmu用イメージも用意され、Linuxの普及に伴い、一部のLinuxユーザがまた使い始めている。

DOSも、まだまだ元気だ。


関連資料

[1]
Terry Dettmann, Jim Kyle; DOS Programmer's Reference - 2nd Edition, (QUE CORPORATION), 1989, ISBN:0-88022-458-4
[2]
ASCII; PCレトロタイムズ, http://www.ascii.co.jp/service/pcretro/, 1997
[3]
IBM; IBM Anti-Virus Home Page
[5]
The FreeDOS Project
[6]
Lineo
[7]
前田 剛; Maeda's Page Vector別館
[8]
日本IBM; WebBoy for DOS Version 3.0, 1997/3
[9]
Altair☆; Digital Researchの歴史, 1997/5
[10]
Villege Center; Vz Goodies Series

Copyright (c) 1995-2002 by Altair☆ <NBG01720@nifty.ne.jp>
All rights reserved. 不許複製、無断転載厳禁