ビジネスとIT
Ars は、FreeDOS プロジェクト チームのメンバーと、ある考えを念頭に置いて話し合いました。「なぜ?」
あなたの命令で。クレジット:ショーン・ギャラガー
あなたの命令で。クレジット:ショーン・ギャラガー
今月初め、私はDOSの懐古の世界で一日を過ごしました。正確に言うと、それはFreeDOSバージョン1.1、つまり、既に廃止されたMicrosoft MS-DOSオペレーティングシステムのオープンソース版でした。多くの人にとっては、とっくの昔に消滅しているはずだったプラットフォームです。しかし、20年経った今でも、数十人のコア開発者と、より広範で大規模な貢献者コミュニティが、ユーティリティ、アクセサリ、コンパイラ、そしてオープンソースアプリケーションを徐々に追加することで、FreeDOSプロジェクトを発展させ続けています。
こうした愛情のこもった努力は、一つの疑問を投げかけます。なぜでしょうか? シングルタスクのコマンドライン駆動型オペレーティングシステム(ネットワーク駆動型タスクの最も基本的な部分さえほとんどこなせない)が、なぜ20年もの間、人々の才能を惹きつけてきたのでしょうか? ほとんどの開発者はWindows(あるいは、悲しいことにIBM OS/2)に移行したのではないでしょうか? 誰が今でもDOSを使い続けているのでしょうか? そして、何のために?
この問題の真相を探るため、ArsはFreeDOSコア開発チームの2人のメンバーに連絡を取り、この一見空想的な探求の背後にいる人物についてより詳しく聞き出そうとしました。彼らは、Linuxのような、より現代的な類似のDOSの開発ではなく、オープンソースのDOSを存続させることを選んだのです。ですから、言うまでもなく、私たちが得た答えは必ずしも予想外のものではありませんでした。
ほんの少しのことを、とてもうまくやる
ジム・ホール氏は20年前、物理学を専攻する学部生時代にFreeDOSプロジェクトを立ち上げました。現在、ホール氏はミネソタ大学モリス校のITディレクターを務めており、DOSプロンプトの点滅を維持するために尽力しています。修士課程を修了したホール氏はプロジェクトに復帰したばかりですが、現在では30人から50人のアクティブな開発者が参加しているとのことです。(2006年にFreeDOSを1.0リリースに導いた当時は数百人が活動していましたが、それに比べるとかなり少ない人数です。)
小規模なグループではありますが、DOSに固執する人々の寄せ集めではありません。メンバーの多くはLinuxやその他のOSの開発に携わったり 、商用ソフトウェアベンダーで働いたり、その他の技術職に就いたりしています。彼らは主に、知的チャレンジという目的のためにFreeDOSに貢献しています。FreeDOSのカーネルを貢献したパスクアーレ・「パット」・ヴィラニ氏は、長年にわたりDEC、コンパック、そしてHPで主任ソフトウェアエンジニアとして活躍し、様々なUnix OSの開発に携わっていました。
ジム・ホールは20年前、学部生だった頃にFreeDOSプロジェクトを立ち上げました。現在は大学のITディレクターを務めています。写真提供:ミネソタ大学モリス校
FreeDOSには非常に忠実なコアユーザー層が存在します。長年にわたりFreeDOSのコアコントリビューターとして貢献してきたEric Auer氏は、電子メールの中で、DOSが依然として重要な理由をこう説明しています。「DOSは内部の仕組みを理解するには十分小さいからです」とAuer氏は言います。Auer氏によると、FreeDOSは現在、GNUコンパイラコレクションをFreeDOSに移植したDJGPPツールキットのおかげで、本格的な32ビットアプリケーションを開発したい開発者をサポートできるようになりました。これにより、開発者は、より複雑なオペレーティングシステムのオーバーヘッドなしに、マシンのコンピューティングパワーを最大限に活用するモノリシックアプリケーションを構築できます。またAuer氏は、「20年前に知っていたゲームも動いてくれます」と述べています。
FreeDOSは、一部の人が言うように「ほとんどオペレーティングシステムではない」ため、開発者がハードウェアに非常に近いところまでアクセスすることができます。現代のオペレーティングシステムのほとんどは、セキュリティと安定性上の理由から、特にハードウェアの挙動を避けるように構築されています。しかし、FreeDOSは仮想化とハードウェアエミュレーションに非常に適しており、DOSEMUエミュレータの心臓部にもなっています。
プロジェクトの方向性は、ホール氏がバージョン1.0以降に描いたロードマップとは全く異なるものとなっています。かつて彼は次世代DOSに関する野心的な計画を描いており、当初はコンピューティングのもう一つの歴史を描いた現代のFreeDOSを構想していました。「しばらくの間、『もしMS DOSが生き残っていたら、DOSはこの10年から15年でどこへ向かっていただろう?』と考えていました」とホール氏は語ります。「私はある種のマルチタスクを提唱していました。286でサポートされていたようなタスクスイッチ、つまりあるプロセスをスリープさせながら別のプロセスを実行できるような機能です。TCP/IPをカーネルに追加したいと考えていました。」
FreeDOSバージョン1.0の完成後、開発者グループがFreeDOSのフォークプロジェクトであるFreeDOS32を開始しました。これは、DOSの完全な32ビット版を作成する試みでした。しかし、このプロジェクトは停滞し、少なくとも2年間活動が停止しています。ホール氏は、いずれにせよDOSはDOS本来の姿に忠実であるべきだという結論に至りました。「時が経つにつれ、現実を直視しなければならないことに気づきました」と彼は言います。「人々はDOSに戻って、それをプラットフォームとして選ぶことはないでしょう。ですから、DOSの核となる定義は変えられないのです。」
その結果、DOSの開発範囲はFreeDOSのコア部分の調整から移行しました。「カーネルはあまり変更しません。機能が同等になれば変更する必要はありません」とホール氏は言います。「メモリ容量を増やすドライバーやその他の機能に重点が置かれています。コンパイラやコマンドライン関連のものは、現在最も開発が進んでいる分野です。そして、そこは私たちにとって良い場所だと感じています。」
アウアー氏は、「数種類のUSBデバイス、ディスク用の高速SATA/IDE UDMAドライバ、光学メディアなど、いくつかの近代化が徐々に導入されつつある」と指摘した。また、クロスプラットフォーム対応の軽量グラフィカルインターフェースライブラリであるFLTKをベースにしたコード移植によって、WindowsライクなアプリケーションをDOSに移植するプロジェクトもある。「本当にシンプルな環境を求める人は、こうしたアプリケーションを日常業務に使うかもしれません」とアウアー氏は述べた。「あるいは、DOSで利用できる最新機能の『クールさ』を体験するためだけに使う人もいるでしょう」
3ヒット曲のワンダー
ホール氏は2年前にDOSユーザーを分析し、DOSはほぼ3つの用途にのみ利用されていることを発見しました。それは、レガシーバスソフトウェア、クラシックDOSゲーム、そして組み込みシステムです。「コアユーザーがこの3つに絞られたということは、『FreeDOS 2.0』のビジョンが私たちの先走りすぎていることを意味します」とホール氏は言います。「コアユーザーを失うことになるでしょう。」
今日、そのコアなユーザーは、ほとんどの人が想像する以上に多くなっています。DOS上で動作するカスタムシステムの開発を続けている企業は数多くあります。これは、ハードウェアに近い環境で動作させることができるためです。例えば、National Health Systemsは、今でもDOS上で動作する薬局システムを販売しています。
FreeDOSはこの市場で唯一のプレイヤーではありません。DataLightのROM-DOSなど、デバイス向けに独自のMS-DOS互換オペレーティングシステムを販売している商用組み込みDOSベンダーも数多く存在します。Microsoftは今でもデバイスメーカー向けに組み込みシステム向けのMS-DOSを提供しています。「当社の開発者リストには、組み込みシステムの開発に携わっている人が数名います」とホール氏は語ります。
FreeDOSはハードウェアに非常に近いため、シリアルデバイスプログラミングやドライバ開発の教育ツールとして、また他の組み込みDOS環境の開発プラットフォームとして利用されてきました。「特殊なデバイスを制御するためのDOSプログラムは既に存在しており、中には自作のものもあります」とアウアー氏は言います。「DOSはまさに古典的存在であり、標準的なコンパイラやエディタを実行できます。」
FreeDOSは、ある意味ではArduinoマイクロコントローラーのようなオープンソースの「メーカー」ツールを補完する存在となり得ますが、Auer氏はArduinoとRaspberry Piは全く別のものだと考えています。「Arduinoを使うということは、はるかに小型のデバイスを使うことを意味し、通常はコストと電力を節約し、機械とより直接的に接続できるようになります。欠点は、汎用OSが全く存在しないことです。Arduinoソフトウェアが誤動作した場合、Arduinoを直接操作するのではなく、“本物の”コンピューターを使ってArduinoを再プログラムしなければなりません。」
ホール氏によると、こうした類の疑問はFreeDOSのメーリングリストでは現実的な問題になるという。「最近、ある人とメールでやり取りしたのですが、ヒートポンプの暖房/冷房スイッチのオン/オフ(温度を監視し、ある温度以下になったらスイッチを切る)をArduinoとFreeDOSのどちらで処理するか議論していました。」ホール氏は、その議論がどのように決着したかは覚えていない。
パンチリスト
FreeDOSには潜在的な欠点がいくつもありますが、現状ではネットワークとインターネットのサポートに重大な欠陥が一つあります。そして残念ながら、「ネットワークとWebこそが、今日サポートすべき最も重要な2つの要素です」とホール氏は認めています。
FreeDOSのリポジトリには基本的なネットワーク機能が含まれていますが、永続的なネットワークサポートは実際には存在しません。個々のアプリケーションは、FreeDOSで利用可能なオープンライブラリまたはフリーライブラリのいずれかを呼び出してネットワーク接続を確立できますが、各アプリケーションは独自の通信設定を行う必要があります。「DOSはTCPやネットワークが登場するずっと前に設計されており、カーネル内でネットワーク処理を行っていません」とホール氏は言います。「現在ではアプリケーションが独自のサポートをロードするようになり、この状況から逃れる手段はほぼありません。」
これは、DOS 上でファイル共有や永続的なネットワークアクセスを行うために存在する TSR (Terminal Stay resident) ドライバが、ほぼすべて商用ソフトウェアであるためです。これらのドライバは既にサポートが終了しているため、これらのドライバを活用するための開発は困難です。(例えば、ROM-DOS には独自の「ソケット」ドライバスタックがあり、組み込みアプリケーションを Telnet や電子メールで制御するためのツールが含まれていますが、ドライバ自体はプロプライエタリです。)
ホール氏はまた、FreeDOSには「より優れたWebブラウザが必要だ」と認めている。私たちがテストした既存のブラウザは、しばらくの間放置されていたプロジェクトだった。「CSS標準やJavaScriptのサポートが追いついていないのは理解できるが、2014年にJavaScriptをサポートするブラウザがなければ、できることは限られる」
DOS でインターネット アプリケーションを実行するのが難しい理由は数多くありますが、その理由は多くの点で、DOS がコア ユーザーにとって魅力的である理由とは相反するものです。Auer 氏は次のように語っています。「DOS は、ネットワーク指向でもマルチタスクでもマルチユーザー オペレーティング システムでもありません。入手しやすく交換可能なハードウェアであれば、起動時間が非常に短く、オーバーヘッドもほとんどかけずに実行できますが、高性能コンピューティングを実行したい場合、最初の CPU コアと最初の 3 ~ 4GB の RAM を超えると DOS では動作が重くなります。ブラウザーやオフィス ソフトウェアを DOS で "単に" 実行しようとすると、そのソフトウェアは、DOS 自体に GUI、マルチタスク、Unicode TTF、ネットワークなどの機能がなく、DOS によって排除したい複雑さのほとんどを取り除かなければならないことを忘れがちです。」
したがって、FreeDOSベースのゲームサーバーがすぐに大量に登場することは期待できません。DOS版Chromeも期待できません。しかし、長期的には、FreeDOSの要素がこれまでDOSが進出したことのない領域に浸透していくため、その点は問題にならないかもしれません。
「数ヶ月前に、FreeDOSをARMに移植するには何が必要かを探る取り組みを始めようとした人がいました」とホール氏は語った。「DOSにはそれほど多くのパワーは必要ありませんが、DOSはBIOSの存在を前提としているので、おそらくかなりのコーディングが必要になるでしょう。カーネルに関しては、中間でエミュレーションなどを行ってBIOSを偽装することは可能です。ぜひ実現してほしいですね」。ホール氏はまた、「別のコンテナ内でのFreeDOSの可能性も見出しています。例えば、DOSEMU(FreeDOSを実行できるDOSエミュレーター)を起動する最小限のLinux環境があればどうでしょうか」と付け加えた。ホール氏によると、これによりマルチタスクDOSと同等の機能が実現可能になるという。
アウアー氏は、FreeDOSのアプリケーションが開発者の興味を惹きつけるのは、結局のところそれだけではないと述べた。むしろ、今日の関心を惹きつけるのは、多くの開発者がコンピューティングに初めて関わったのと同じもの、つまり「いじくり回す」という側面なのだ。
「DOSで楽しむことが重要な要素だと私は考えています」と彼は語った。「そういう意味では、鉄道模型のようなものでもあります。DOSについて多くのことを学ぶことができ、自分でいろいろと試すことはできますが、毎日の通勤には使わないでしょう。もちろん、DOSは、以前DOSを使っていた人にとっては今でも重要です。なぜなら、古いカスタムメイドのソフトウェアを維持できるからです。もちろん、ARMボードを使って木工工房のフライス盤を動かすこともできますが、そのマシン用に書いたDOSソフトウェアもおそらく今でも動きます。FreeDOS PCでDOSソフトウェアを動かす方が、古いツールのWindowsとの互換性や新しいハードウェアの互換性について悩むよりもずっと快適です。」

ショーンは以前、Ars TechnicaのITおよび国家安全保障担当エディターを務めていました。Arsでの9年以上を含む20年以上のテクノロジージャーナリズムのキャリアを経て、サイバーセキュリティの脅威リサーチに転向し、最初はSophos、現在はCiscoのTalos Intelligence Groupでセキュリティリサーチエンジニアとして活躍しています。元海軍士官で、メリーランド州ボルチモア在住。
90件のコメント