• 未踏のマルチタスク

GitHubで、MS-DOS 4.0のソースコードが公開された。これに付随して、EU圏の一部メーカーがOEMしたMultitask版MS-DOSに関係するファイルも公開されている。このMultitask版MS-DOSは、一部のOEMメーカーにMS-DOS 4.x(写真01)としてライセンスされた。MS-DOS 4.xは、2種類存在したのである。

ソースコードが公開されているのは、Multitask版MS-DOSとは別にIBMが中心になって開発したPC DOS 4.0である。これはIBM PC用のPC DOS 1.0から続く普通のPC DOS/MS-DOSである。ただし、DOSSHELLなど一部のツールはこれに含まれていない。

  • 写真01: Multitask版MS-DOSは、AltキーでSession Manager(sm.exe)が起動し、複数のプログラムを同時に起動できる。写真は、FDISK.EXEとCommand.comを同時起動したことろ。DIRコマンドの出力にPIFファイルが存在するのが見える

IBMとMicrosoftは、PC DOSを共同開発していたが、IBMは、これをMicrosoftのソフトウェアであるとした。どうも、あとで、コードを盗んだ、盗まないで、訴訟になることを嫌い、Microsoftからライセンスを受ける形式にしたかったようだ。両者は、PC DOS/MS-DOS 5.xまでは、共同で開発を行い、以後は、個別に開発を行った。

最初のPC DOSは、シアトルコンピュータプロダクツ社の86DOSであり、Microsoftはのちにこれを買い取って自社製品とし、PC DOS 1.0としてIBMに提供した。PC DOSは、IBMの製品の名称であり、MS-DOSはOEMメーカー向けの名称である。ただし、PCクローンメーカー向けのMS-DOSでは、MSDOS.SYSがIBMDOS.COMになるような調整はしていたようだ(写真02)。

  • 写真02: GitHub microsoft/MS-DOSのv4.0のVERSION.INC(アセンブラのソースコード)。IBM Version(PC DOSになる)、MS Version(MS-DOSになる)、Clone Versionの3種類かある。Clone Versionでは、IBMのCopyrightは表示しないが、IBMVERシンボルが真となるためMSDOS.SYSではなくIBMDOS.COMにするような調整は行われる

このMultitask版MS-DOSは、International Computers Limited (ICL。のちに富士通に買収)などがライセンスを受け、MS-DOS 4.1とした。また1986年にApricot Computers(のちにPC部門を三菱電機に売却)は、Multitask版MS-DOSをMS-DOS 4.0としてデモを行った。

Multitask版MS-DOSは、マイクロソフトが独自に開発していたものだ。Microsoft版UnixであるXenixに見切りを付けた1982年から、IBMとOS/2の共同開発を開始する1985年の間に開発が行われたと考えられる。マイクロソフトはUnix V7のライセンスを1978年に取得すると、Xenixを開発し、MS-DOSの上位となるマルチタスクOSとして製品化した。しかし、AT&Tが1982年Unixビジネスを開始すると、Xenixに早々に見切りを付けてしまう。AT&Tは、独禁法訴訟でコンピュータビジネスを止められていたが、AT&Tから地域電話会社が分離したことで制限が解除されUnixのビジネスを開始した。これに勝ち目がないと思ったのか、Microsoftは急速にXenixのビジネスに興味を失った。

しかし、そのためには、マルチタスク対応したOSを開発しなければならなくなった。Unixなどの本格的なオペレーティングシステムはすべてマルチタスクであり、これは時代の「要請」でもあった。そして、それはMS-DOSのアプリケーションが実行可能なものでなければならない。このため、Microsoftは、マルチタスクなどを想定してMS-DOSの改良を行う。MS-DOS 2.x(1983年)のデバイスドライバは、マルチタスク化を想定し機能リクエストとその実行を分離した構造になっていた。

GitHubにあるMultitask版MS-DOSは、正式なバージョンではなく、1984年にLotus社に配布したベータ版である。保管していたのは、のちにMicrosoftのChief Software Architectとなるレイ・オジーである。オジーはLotus Notesの開発者として著名である。

TopViewが不評だったため、IBMはOS/2(1987年)に注力する。また、DOSシェルなどを搭載し、PC-DOS 3.xの直接の後継となる、IBM DOS 4.0(PC DOSの名称を変更した)を1988年に出荷する。マイクロソフトもMultitask版MS-DOSを断念し、これをMS-DOS 4.0とした。GitHubで公開されたMS-DOS 4.0は、この系統のソースコードだ。

Multitask版の開発の経緯ははっきりしないが、Microsoftは、IBMからTopViewのソースコードの開示を受けていたようだ。TopViewは、IBMが開発したテキストベースのプリエンプティブ・マルチタスク実行環境である。インターネット検索で見つかるMultitask版MS-DOSのフロッピーイメージには、TopView由来のPIF(Program Information File)ファイルがある。このことから、Multitask版は、TopViewを参考にして作られたと考えられる。PIFは、利用するメモリ量やプログラムの名称などを格納したファイルだ(写真03)。WindowsでもDOSプログラム用に利用された。

  • 写真03: Multitask版MS-DOSに付属するPIFEDITコマンドを使うとPIFファイルを表示できる。PIFファイルは、TopView由来のファイルであり、ウィンドウタイトルなど項目が共通しているため、TopView由来と考えられる

TopViewもMultitask版MS-DOSも、テキストウィンドウ内で動作できるのは、お行儀のいいプログラムのみだ。ハードウェアを直接操作するゲームプログラムなどは単独で全画面を専有して動作させるしかない。このあたりがネックとなって、TopViewもMultitask版MS-DOSもあまり人気がなかった。どんなDOSプログラムでも実行できるようになるのは、80386マシンで仮想86モードを使うWindows 386からである。

IBMは、OS/2の開発で80286に固執し386の採用を躊躇した。その間にCompaq社(現HP社)などが80386を採用したATクローンマシンを開発する。このあたりから、AT互換機のメーカーが仕様策定などの主体となっていく。また、マイクロソフトもIBMと別れ、自社開発のWindowsやWindows NTの開発をメインにしていく。

今回のタイトルネタは、ジェイムズ・P・ホーガンの「未踏の蒼穹」(東京創元社)である。はるか昔に絶命した地球文明の謎を、金星人類が解き明かすという話。読者は、金星人類が謎としている地球人類を知っており、これをどうやって解いていくのかが1つのポイント。刑事コロンボのような倒叙パターンである。