新しいライセンスでは、「CP/Mとその派生製品」は誰でも自由に改変・再配布できるとされています。しかし、どの派生製品が対象なのでしょうか?
オリジナルのIntel 8080版CP/Mの隆盛は比較的短かった。1974年に登場したが、これはPC DOSを搭載したIBM PCが発売されるわずか7年前のことだった。PCと、MS-DOSを搭載した多くのクローン製品は、急速にCP/Mの販売台数を伸ばし、CP/Mに取って代わった。
それでも、CP/Mはしばらくの間、業界標準のマイクロコンピュータOSであり、Digital Researchを強力かつ重要な企業へと押し上げました。かつて支配していた市場で優位性を失った裕福な企業は、簡単に諦めることはありません。Digital ResearchはCP/Mの拡張と強化に多大な研究開発費を投じ、大規模なOSファミリーを構築しました。大きな成功を収め、大きな売上を達成しました。これらの製品の一部は今でも使用されています。これらの製品はすべて「CP/Mの派生製品」と言えるため、ブライアン・スパークス氏が2001年に出した命令は、それらすべてをオープンソース化するというものでした。
起源の物語
オリジナルのCP/MはIntel 8080向けに設計されていましたが、後にZilogの拡張チップであるZ80で動作する人が増えました。そのため、CP/MはAmstrad CPC、PCW、さらにはZX Spectrum +3でも動作しました。また、主に日本で、MSXマシン用の互換OSも動作しました。
その後、OSが様々なアーキテクチャ向けに移植・書き換えられた結果、オリジナルバージョンは遡及的にCP/M-80と改名されました。Digital ResearchとIBMの取引に関する逸話はいくつか耳にしたことがあるかもしれませんが、8086版のCP/M-86は、PC DOSとUCSD p-System Pascal環境と並んで、IBMが初代PC向けに提供した3つのOSのうちの1つでした。
マイクロソフトはIBMに提供したDOSを他社にライセンス供与する権利を巧みに保持していた。その製品であるMS-DOSは、もちろん元々は買収されたものである。マイクロソフトはMS-DOSを開発したわけではなく(当初は買収さえしていなかった)、シアトル・コンピュータ・プロダクツのティム・パターソンからライセンス供与を受けたのである。
しかし、DRのCP/M-86は売れ行きが振るわなかった。その理由の一つは、価格が240ドルだったのに対し、PC DOSはわずか40ドルだったことにある。このため、デジタル・リサーチはOSのアップグレードと機能強化に長い道のりを歩み、競争力を高めることとなった。
DOSの拡張ファミリー
皆さんは、DR の MS-DOS 互換の DR-DOS と、Microsoft が Windows 3.1 との非互換性を偽装していたことが発覚したことを覚えているかもしれません。
NovellはDigital Researchを買収し、Linux部門Calderaとして分社化しました。Calderaは後にMicrosoftから1億5,500万ドル以上の和解金を勝ち取り、GEMデスクトップをオープンソース化しました。
Caldera社はDR-DOS 7.01のカーネルを一時的にオープンソースとして公開しましたが、その後方針を転換し、再び非公開となりました。オープンバージョンの開発はDR-DOS拡張プロジェクトによってしばらく継続され、現在も公開されています。
DeviceLogicsはDR-DOS 8.1を一時的に売却し、DrDOSとしてブランド名を変更しました。ディレクトリ列間のCP/Mスタイルのセパレーターがその起源を物語っています。
Novellの後継製品のバックアップが再発見された後、Calderaのシンクライアント部門であるLineoはDR-DOSの販売を継続しました。バージョン7.03から7.05は、Seagate、Nero、OntrackなどのOEMメーカーにブートディスク用ライセンスとして提供されました。
DR-DOSを段階的に近代化し、FAT32、8GBを超えるハードディスク、TaskMaxマルチタスク、DPMIサポート、ROMからの実行を可能にした後、LineoはDR-DOS 8.0、そして8.1を提供しました。しかし、FreeDOSプロジェクトによってDR-DOS 8.1にFreeDOSのコードが含まれていることが判明し、製品は市場から撤退しました。その後、Lineoはソースコードの販売を試みました。
リアルタイムで孤立
DR は DR-DOS よりもはるかに高性能な OS も提供しました。
最も大きな変化はMP/Mによるものでした。2022年の現在では信じ難いことですが、MP/Mは32KB以上のRAMを搭載した8ビットコンピュータ向けのマルチユーザーOSでした。DRはMP/M 2を8086に移植し、その後CP/M-86 1と統合して、マルチタスク、マルチユーザーOSであるConcurrent CP/M 3を開発しました。1980年代の用語で言えば、Concurrent CP/MはPCをミニコンピュータへと変貌させました。つまり、RS-232シリアルポート上のテキスト端末を用いて複数のユーザーが同時に共有する「ホスト」マシンです。
Motorola 68000ファミリーとZilogのZ8000チップ向けに、16ビット版のCP/Mも存在しました。これらのOSは、PL/Mとアセンブリ言語が混在していたものから、より現代的な高水準言語へと書き直されました。当初はDR独自のPascal-MT+でしたが、その後C言語で再実装されました。
これまでのところ、非公式CP/Mサイトにはこの世代のOSのほとんどのソースコードが掲載されています。問題は、ここから先が話が本当に面白くなるということです。
Concurrent CP/Mは非常に高性能なOSで、マルチユーザーアカウントシステムに最適でしたが、大きな制限がありました。CP/M-86アプリケーションしか実行できなかったのです。問題は、MS-DOSアプリケーションの市場が急成長していた一方で、CP/M-86アプリケーションはそれほど多くなかったことです。そこでDRは、「PC-Mode」(PDF)を開発しました。これは、DOS 1.xプログラムをConcurrent CP/Mで実行できるようにするアドオンです。
(記憶力に優れた読者なら、BBC Master 512 と Amstrad PC1512 に搭載されていた DR の DOS Plus を覚えているかもしれません。DOS Plus は、CP/M-86 Plus と PC Mode エミュレーターを組み合わせたもので、MS-DOS フロッピーを読み取り、一部の DOS アプリケーションを実行できるシングルユーザー OS でした。これが最終的に DR-DOS へと進化しました。)
この新機能のおかげで、1984年にDRはOSの名称を「Concurrent DOS」(略してCDOS)に変更しました。CDOS 3.2は、CP/M-86 1アプリケーション、Concurrent CP/M 3アプリケーション、そしてPC/MS-DOS 2アプリケーションを同時にマルチタスク処理できるようになりました。しかし、これは新たな問題をもたらしました。8086 PCの悪名高い最大640KBのRAMを、これらすべてのアプリケーションで共有しなければならなかったのです。
DR 社は、この課題に取り組み、(1982 年当時) Intel の新しい「スーパーチップ」と呼ばれていた 80286 向けに OS を再構築しました。BYTE 誌の 1985 年の記事で述べられており、Reg 寄稿者の Chris Bidmead 氏もこれを繰り返して、Concurrent DOS-286 では新しいチップを使用して既存の DOS アプリケーションをマルチタスク化できると述べています。
CP/M のオープンソースとしての地位が 21 年ぶりに明確化
続きを読む
このプロジェクトは、Intelがチップの後継ステッピングをリリースした際に深刻な障害に直面しました。CDOS-286のDOSマルチタスク機能は'286のB-1ステッピングでは動作しましたが、その後IntelがC-1ステッピングをリリースしたことで機能が停止しました。CDOS-286はチップの出荷バージョンでも動作しましたが、DOSアプリケーションのマルチタスク処理はできませんでした。Intelは、この失われた機能を将来のE-1ステッピングで復元することを約束しました。
市販されているほとんどの286キットでフラッシュIP機能を提供できないOSに直面したDRは、マーケティング戦略を変更しました。CDOS-286はFlexOS-286に改名され、このパンフレット[PDF]に記載されているように、そのリアルタイム機能の強みを売りにしました。バージョン1.31のリリースノートでは、DOSとの互換性を確保するにはE-2ステッピングCPUが必要であることが明記されています。
このニッチ市場においてFlexOSは成功を収め、複数の企業によって機能強化・販売される複数の製品へと進化しました。その中には、シーメンスのCOROS(PDF)やIBMのSurePOSレジ向けOS(4690 OS)などがあります。後者は現在も東芝によってサポートされています。
マルチユーザー化
Intel 80286の出荷版はCDOS-286の機能を大幅に損なっていましたが、CDOS-286がリリースされた同じ年に、80286はIntel 80386に取って代わられました。Intelは、自社プロセッサの主流OSはXenixや長らく遅れていたOS/2ではなく、DOSであることを認識していました。そこでIntelは、386にハードウェア上で複数の8086「仮想マシン」を作成し、マルチタスク処理する機能を与えました。これは真のハイパーバイザーではありませんが、複数のDOSアプリケーションをマルチタスク処理することが比較的容易になる、限定的なバージョンでした。
DRはこれを応用し、1987年に発表されたConcurrent DOS-386を開発しました。これは、ハードウェア支援によるDOSアプリケーションのマルチタスク機能を備えた完全な32ビットOSです。後のバージョンでは、当時まだ新しかったDR-DOSの技術の一部が取り入れられ、エミュレーションがMS-DOS 2.11からMS-DOS 3.3にアップデートされました。
1991年頃、DRは製品名をMultiuser DOSに変更しました…しかしその後まもなく、NovellがDRを買収し、翌年にはマルチユーザー製品ラインは廃止されました。3社のOEMがソースコードのライセンスを取得し、独自のバージョンを販売し続けました。
IMS Real/32 – Concurrent DOS の最後の子孫
DataPac Australasia Ptyは、Multiuser DOS 5(後にSystem Manager 7に改名)をCitrixに買収されるまで販売していましたが、その後製品は販売中止となりました。Concurrent Controls Inc(後にApplica Inc、さらにAplycon Technologies)は、2005年頃までCCI Multiuser DOS 7を販売していました。Intelligent Micro Softwareは、IMS Multiuser DOS(後にReal/32に改名)として販売していましたが、おそらく2017年まで販売していたと思われます。IMSの一部は現在も存在しているようで、Integrated Solutionsもその一つです。
CP/Mは想像以上に多くの場所に到達しました
CP/Mの子孫は様々な方向に進化しました。DR-DOSはしばらくの間好調な売れ行きを見せ、Novellによる買収につながり、その競合によってMicrosoft自身もMS-DOSを大幅に改良しましたが、それは大きな系図の中のほんの一枝に過ぎませんでした。
CP/M-68KはDR-DOS技術の注入により大ヒットとはならなかったものの、その後継機であるGEMDOSは、何百万人もの人々に愛されたAtari STで活躍しました。Calderaの解放されたコードの一部を含むオープンソースの再現版はEmuTOSと呼ばれ、Atari実機、様々なエミュレータ、そして皮肉なことにAmigaでも動作します。また、後期のSTおよびエミュレータ向けに、MINTカーネルとGEMをベースにした完全オープンソースのマルチタスクOSであるAFROSも存在します。
FreeDOS 1.3 上の FreeGEM
GEM の PC バージョンは FreeGEM コミュニティによって更新され、現在は FreeDOS OS の一部となっています。
- Yocto Project が大口の支援者を獲得し、2 回目の LTS リリースを実施 – しかし、それは何でしょうか?
- この奇妙なトリックでLinuxのパフォーマンスを向上させる
- ハードウェアの専門家がIBM S/360 Model 50メインフレーム全体のシミュレーション作業を開始
- お選びください: 0/1/* ...ただし、クリックすると100年前の新聞が丸ごと消えてしまう可能性があります。
Concurrent DOS-286は、X/GEMベースの独自のマルチタスクGUIとJavaで書かれたアプリケーションを備えた、リアルタイムOSおよび組み込みOSのファミリーへと進化しました。これは非常に多くのPOSシステムで動作していたため、世界中のどこにいても、何かを買った際にDR OSが動作するレジにお金が流れた経験があるはずです。
一方、32ビット版のConcurrent DOS-386はMultiuser DOSへと進化し、世界中で複数の企業から販売されました。私たちは、前世代のDR製品を販売していたと特定できるすべての企業に連絡を取ろうとしましたが、成功しませんでした。
興味深いことに、これらの製品はすべてCP/Mの派生製品と呼べるものであり、そのため、新しいCP/Mオープンライセンス契約の対象となっています。これらの製品の少なくとも一部のソースコードが公開され、拡張、強化、アップデートされて今日再び稼働するのを見ることができれば素晴らしいことです。®