第四世代OSASK構想 rev2

  • (by K, 2020.06.26)

エミュレータOS

  • OSASK(おさすく)を古くから知る人にとっては、OSASKといえば「エミュレータOS」でしょう。
  • これは、「OSはエミュレータ技術を取り入れれば別次元に進化できる」という基本コンセプトを表しています。そして第一世代OSASKこそ、世界初のエミュレータOSになるはずのものでした。
  • エミュレータOSは、他のOSのソフトウェア資産をすべて受け入れます。つまりOSASKはどのOS用のソフトウェアでも実行可能なのです。もちろんCPUが違ってもOKです。それはすべてエミュレータ・ドライバが強引に解決してしまうのです。
  • これが実現できるのであれば、OSASK自身も旧バージョンのOSASKとの互換性を意識する必要がなくなります。だからどのバージョンもその時点での最善な設計を採用することができます。互換性のためにあれができない、これができない、ということはないのです。

  • そもそもなぜ当時の私はエミュレータOSなんてことを言いだしたのでしょうか。
  • エミュレータOSというアイデアをひねり出した頃の私は、富士通のFM-TOWNSというパソコンが大好きでした(ちなみに今もかなり好きです)。そしてTOWNSはNECのPC-98シリーズをライバルにしていました。・・・私から見れば、TOWNSはハードウェア的に圧倒的に優秀でした。しかしPC-98は絶大な量のソフトウェア資産があり、そのためにシェアではかなりの差がついていました。
  • 私はこの状況に納得がいきませんでした(笑)。なぜ技術的に優れている(と思っている)はずのTOWNSがPC-98の後塵を拝さなければいけないのでしょう。ソフトウェア資産なんて、結局歴史が長い方が有利だというだけの話じゃないですか。こんなことを甘受していたら、きっと技術者はくさってしまってやる気をなくすに違いないです。だってがんばっていいものを作ってもソフトがないからダメということになってしまうのですから。こんなのは理不尽です。私はこの流れに一石を投じるのです。
  • こうして私はTOWNS上でPC-98のソフトを動かすためのエミュレータを書きました。これはなかなかよくできて、TOWNSはPC-98より優れているという私の主張をばっちりと立証してくれました(だって逆はできないですからね、PC-98でTOWNSのソフトを動かすエミュレータはありませんでしたし、十分な性能のものは作れないだろうと今でも私は思っています・・・まあ末期の超高性能なPC-98なら可能かもしれませんが)。
  • 私はこの経験でエミュレータこそカギとなる技術だと確信するようになります。それでエミュレータと親和性の高いOSを作り、エミュレータを完備すれば「世界は変わる」と信じたのです。
  • ちなみに私がTOWNS用のPC-98エミュレータを作り上げたものの、それはあまりに遅すぎました。これは実行速度が遅いという意味ではなく、登場があまりにも遅かったという意味です。TOWNSのシェア争いは明らかに劣勢で決定的になっており、私が趣味で作ったエミュレータ程度ではもはや挽回不能な状態でした。

2020年のエミュレータOS構想

  • これから私は、OSではなく、言語処理系というか仮想マシンというか、何かそういう説明しにくいものを作ります。これができると以下のようなことができます。
  • [1] たとえばWindowsの.exeファイルを、Linuxの実行ファイルにコンバートします。
    • なんかすごく変わったことをしているように思うかもしれませんが、言語屋からすれば、機械語で書かれた実行ファイルだって「ある種のソースコード」です。だからそれをコンパイルして別の環境向けの実行ファイルにすることは、原理的には可能なことです。
    • もちろん逆の、Linuxの実行ファイルをWindowsの.exeファイルにすることもできますし、他のOSについても対応します。
    • これらのコンバートは、バラバラにやると非常に大変なので(組み合わせ爆発を起こす)、すべて一度ES-VMという共通のバイトコードにいったん変換して、そこから変換先の形式に変換します。
  • [2] コンバートした実行ファイルを出力せずに、そのままメモリ上に展開して実行することもできます。これはJITコンパイラの技術です。
    • これは外見上はエミュレータのように見えるでしょう。
  • [3] これらの仕組みは、Windows上に限定されるわけではありません。
    • ということで、簡単に言ってしまえば、「すべてのOS」がエミュレータOSになってしまうのです。
    • つまり私のやりたい世界を実現するためには、OSから作り直す必要なんかなかったのです。適当なOSの上に乗っかって楽をすればよかったのです。
    • 20年以上前の私は、安易に「もうOSから作り直せばなんだってできる」と考えていたのです。まあ若かったので・・・。でもそのおかげで「30日でできる!OS自作入門」は書けたので、それはそれでよかったのではありますが。
  • [4] 自作OSも既存OSからソフトウェア資産を手に入れられるようになります。
    • 例えば「はりぼてOS」だって、これらの仕組みに乗ることができます。だからWindows用の.exeファイルを.hrbファイルにコンバートできます(しかもコンバートはWindows上やLinux上でやったっていいのです・・・クロスコンパイラみたいなものです)。
    • これってものすごく夢がある気がしませんか?・・・OSを自作してもソフトがなくて・・・みたいな悩みはなくなるのです。あなたは自分が作ったOSの上ですぐに暮らせるようになるかもしれないのです。
  • [5] その先にある世界は?
    • もうOSなんてなんでもいいのです。だから性能がいいやつを選びましょう。バグが少ないものを選びましょう。セキュアなものを選びましょう。自分で作ってもいいでしょう。
    • CPUだってなんだっていいのです。x86でもいいし、x64でもいいし、ARMでもいいし、RISC-Vでもいいのです。自作CPUだってOKです。
    • これらが当たり前になれば、今では想像できないような奇抜なOSやCPUが出てくるようになるかもしれません。それはすごく楽しそうな気がします。

余談

  • 以下はここ1週間の出来事です。
  • [月]唐突に、なんかqemuみたいなものも自作したら面白いかなあ、とぼんやりと思いつきました。
    • でもこのときはただそれだけでした。
  • [木]私は時々星座占いをなんとなく目にするのですが、なぜか私の星座は1~6位になることはめったになく、たいてい7~12位です。おかしいですよね、普通に考えたら、2回に1回くらいは1~6位になってもいいじゃないですか。それなのに、5回に1回くらいしか1~6位に入れていない気がするのです。・・・そして1位になることは滅多にないです。今まで50回くらいは見ていると思うのですが(もっと多いかも)、今までに1回しかありませんでした。12回に1回くらいはなってもいいはずなのに・・・。
    • それなのに、この日は1位だったのです。私の観測史上2回目というわけです。おおお!と思いました。・・・私は単純な性格なのです(笑)。まあでもそもそも占いを信じてはいないので、いいことがあるとまでは思っていなかったのですが。
    • そしてこの日の午後に、私は上記の「2020年のエミュレータOS構想」を思いつきます。復活?・・・いやまあ復活も何も、今まで一度だって終わったとは思っていませんでしたが、でもまあ休止状態ではあったのです。それが、「あれ?もしかしたら今の私なら結構いいところまでできるんじゃないか?」と思ってしまったのです(笑)。
    • しかもこれってqemuっぽいものも含んでいるんですよね。だからなんか今までの人生のいろんな伏線を一気に回収できるかもしれないなあ、と。
  • それから今まで、ずっとワクワクが止まらなくて、さてどこから作ろうかなと思案しているところです。いや、どこから作ればいいかもわかっているので、もう時間を確保して着手すればいいだけなんですが。

こめんと欄

  • このアイデアに関する目次を作りました。→esvm_i0 -- K 2020-06-27 (土) 18:13:36

コメントお名前NameLink

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2020-06-27 (土) 18:13:37 (88d)