ページへ戻る

+ Links

 印刷 

GUIGUI01​/memo05 :: OSASK計画

osaskwiki:GUIGUI01/memo05

ぐいぐい01に関するメモ-05 anchor.png

  • (by K, 2008.05.18)
  • メモのうち重要な部分をそのうちまとめてまともなページを作る
Page Top

(16) OSASK計画の長期計画 anchor.png

  • (以下の文章は6月上旬までには「川合のぼやき」に公開予定。つまりここは下書き。)



  • 1.OSASK-HBと「ぐいぐい01」について
    • OSASK-HBとは、今までのOSASKに変わって、「30日でできる!OS自作入門」でのサンプルOSを改造して作り始めることにしたOSASKである。性能への追求はほどほどで、できるだけソースはC言語で書き、またゆくゆくはOSをドライバのかたまりで構成する。これにより今までのOSASKよりも多くの人がOSの改造を(もしくはドライバの改造を)試みられるようにしようという目論見がある。旧OSASKはそのまま継続するが、OSASK-HBでうまくいったものだけを取り込んでいくような感じで、非常にゆっくりと進める。OSASK-HBには実験的で野心的な実装を入れては外しを繰り返すことになるだろう。したがってバージョン間の互換性はほとんど保証されない。
    • 「ぐいぐい01」はそのOSASK-HBで導入された新しいOSASKアプリの仕様である。今までの「ぐいぐい00」仕様よりもアプリが小さくなる傾向があるなどの特徴のほか、なんとアプリがOSASK/OSASK-HB以外のOS上でも実行できるという特徴もある。
  • 2.「ぐいぐい01」の開発で見えてきたもの
  • 2-1.「ぐいぐい01」導入のメリット(アプリの「ぐいぐい01」化をしていったとしたら):
    • OSASKユーザにとって
      • アプリが他のOS上でも使えるようになる。
      • 他のOSユーザがOSASKアプリを作ってくれる可能性が上がる(作ってくれる人はOSASKなんて眼中になく、WindowsとLinuxの両方で動くからという理由で作ってくれるかもしれない。でも仮にそうだとしても、それがそのままOSASKでも動くことに変わりはないのでメリット)。
    • 他のOSのユーザにとって
      • 今までは面白そうなOSASKアプリがあっても(OSASKの導入などが面倒で)アプリが使えなかった(敬遠していた)。でもefg01だけでいいのなら使える。
    • OSを自作する人たちにとって
      • efg01の移植はかなり容易だし、たぶんかなり変則的なAPI設計でも移植はできると思うので(*0)、OSを設計する際に思い切った設計にできる(そういう冒険をしても、初期の頃から「ぐいぐい01」アプリ資産を利用できる)。つまり、OS設計におけるアプリ互換性問題から開放される。
      • ほぼ上と同じだけど、悩みのタネだった初期のアプリ不足を心配しなくてよくなる。
      • これもほぼ上と同じだけど、OS設計の観点でいろいろなことを試せる。アプリ問題の心配がなくなった分だけより気楽にOS自作を始められる。だからOS開発競争が激化する。淘汰されてよいOSがどんどん出てくる(*1)。
      • アプリ数でOSの優劣が決まるという、くだらない伝統からついに開放されるのかもしれない(本来はOSの優劣は性能や機能で決まるべきで、そうではない現在はOSの進歩が迷走している。使いたいアプリがあるからやむなくそのOSを使う、みたいな)。
    • アプリ開発者にとって
      • 「ぐいぐい01」用に一度作れば、末永く使える可能性がある(OSが打ち切りになっても他のOSに乗り換えて使えるなど)。
      • なにも「ぐいぐい01」用に作ることを強制されているわけではない。つまりアプリ開発者は今までどおりそれぞれのOS向けに開発したっていい。つまり「ぐいぐい01」は新しい選択肢の一つであって、何も失うものはない。
      • OSを選ばないのでユーザが増えやすい。
  • 2-2.「ぐいぐい01」利用のデメリット:
    • たとえば○○OS用アプリを作ろうと思って、それを「ぐいぐい01」仕様で作ることにした場合
      • 例外を利用したアルゴリズムは使えない。
      • セグメンテーションを利用したアルゴリズムも使えない。
      • アドレス決めうちによる最適化もできない(リロケーション情報分だけサイズ面での性能が不利になっているともいえる)。
      • ネイティブAPIよりは、どうしたってefg01分だけオーバーヘッドがある。
      • また特定のOSだけが持っているような便利な機能があったとしても、それが「ぐいぐい01」でサポートされるまでは利用できない。
      • 新しいOSを作るたびにefg01を移植しなければいけない。APIが少ないうちはいいかもしれないが、多くなったら大変そうである。
  • 2-3.デメリットに対する川合の回答
    • だから「ぐいぐい01」の機能の範囲でできるアプリだけを「ぐいぐい01」化すればいいのであって、その他のアプリは今までどおり各OSの固有のAPIでアプリを作ればいい。結局各OSの機能の最大公約数的なしょぼいアプリしか作れないと危惧するかもしれないが、実はそれは全くその通りである(*2)。だからすべてのアプリを無理に「ぐいぐい01」化しようなどと思ってはいけない。
    • 自作OS作者は、なにもefg01の移植が義務化されるわけではない。「ぐいぐい01」アプリ資産を自分のOSでも使えるようにしたいと思ったときに移植すればいいだけだ。またたとえばコンソール関係のAPIだけを移植して、他のAPIについては「未実装だよ」と表示してエラー終了させるような、半端な移植でもいいのだ。これでもコンソールアプリは利用できるわけだから、そう悪い話じゃない。メリットが手間を上回る範囲でやればいいだけなのだ。手間を負担に感じるのであれば、いっさいefg01の移植なんてしなくていいのだ。そのうちその自作OSがはやれば、誰かがefg01くらい移植してくれるかもしれない(所詮efg01はOSの特別の支援をあてにしなくてもできるようなアプリでしかないのだから)。そうなれば丸儲けである。
    • 「ぐいぐい01」は万能だとは言っていないし、万能であることを目指してもいない。そういう万能性よりもアプリ資産のOSを超えた共有財産化を目指している(*3)。しかもムダに大きくて性能の悪い、つまり受け継いでもあまりうれしくないボロ資産ではなく、それなりには無駄が少なくて高性能で、まあネイティブアプリのできるまでであれば受け継いでもいいかなと思えるような良資産である(優良資産とまではいえない)。
Page Top

こめんと欄 anchor.png


Last-modified: 2009-11-21 (土) 00:00:00 (JST) (322d) by ゲスト