[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[OSASK 00101] abcdw000.
- From: Hidemi KAWAI <kawai !Atmark! osask.jp>
- Date: Thu, 24 Apr 2008 19:54:40 +0900
こんばんは、川合です。
abcdw000が一区切りのところまでできたのでリリースします。
http://osask.jp/files/
これからこれがなんであるかの説明を書くわけですが、アーカイブ内
のドキュメントにほとんど書いてしまったので、それをそのまま書き写
しておきます。
------------------------------------------------------------------------------
・abcdw000について 2008.04.24 川合秀実
このソフトウェアはバイナリもソースもドキュメントもすべて川合に著作権があり、
ライセンスはKL-01です。
abcdwというのは開発コードネームで、本当の名前はefg01といいます。これは「
Executer For Guigui01」の略で、要するに「ぐいぐい01」のアプリを実行するため
のソフトウェアです。「ぐいぐい01」はOSASK-HBおよびOSASK ver.4.9以降でサポ
ートされる予定の、OSASKの新アプリ形式です。
abcdwはefg01のwin32版で、つまりWindows上でOSASKアプリを実行できるのです。
エミュレータなしで。abcdというコードネームはefg01という名前から連想して決めま
した。深い意味はありません。
使い方は、 efg01 hellok0.g01 とするだけです。これでhellok0.g01というアプリ
が実行されます。
ソース内のDEBUG_MODEを1にしてmakeし直すと、いろいろ表示されるようになります
。「ぐいぐい01」について早く知りたい人はどうぞ。なおまだまだ未完成なので、ほと
んどのAPIが未実装になっています。
hellok0.g01のソースプログラムはありません。というのは僕自身がバイナリエディ
タだけでハンドアセンブルして作ったからです。
---
・なぜ「ぐいぐい01」か
OSASKのアプリといえば既に「ぐいぐい00」があり、アプリも既にたくさんあります
。実績もノウハウもあります。しかしKHBIOSの設計をしているうちに、「ぐいぐい00」
にはいくつか問題があることが分かってきました。まあ簡単に言えば「究極」には程遠
く、僕には満足できない完成度なのです。それは僕がOSASKやKHBIOSの開発を通じて成
長して、より深く考えられるようになったからで、当初から予期していたことではあり
ません。
OSASKのいいところは過去の互換性にとらわれないで最善を追及していくことです。
だから思い切って新アプリ形式に挑戦しました。互換性はAPIブリッジか何かを使う方
法で解決しますので、とりあえずOSASKに限っては今後も従来の「ぐいぐい00」アプリ
も実行可能になる予定です。
さて「ぐいぐい01」の実力(=究極への近さ)がどれほどかということですが、一例
として「hello, world」を表示するアプリを作りました。これが27バイトで書けていま
す。「ぐいぐい00」では128バイトが限界だったので、これだけで比較すれば4.7倍もの
実力差だといえます。他のアプリについては、今後少しずつ移植していく予定です。・
・・また「ぐいぐい01」ではefg01を使うことでエミュレータなしでアプリをWindows/
Linux上で実行できます。これは「ぐいぐい00」の仕様ではやりにくかったことなので
、これも進歩だと思っています。
---
・「ぐいぐい00」と「ぐいぐい01」
今までOSASKといえば軽量OSで、しかもアプリが驚異的に小さいことが評価されてき
ました(OSCなどではいつも誰かにほめられます)。さらに一歩進めて、もしアプリを
小さくできることがOSASKの最大の特徴だとしたら、それは徹底的に磨かれるべきだと
僕は思います。なぜならもし別のOSが出て、そのOS用のアプリのほうがOSASKアプリよ
りも小さければ、いったいOSASKに何の価値があるでしょうか。もちろん他の点で何か
とりえが残っていればそれでもいいかもしれませんが、そんな希望にすがるよりは、と
にかく最小化に磨きをかけて、もう一度追い抜くべきです。前もって追い抜かれる余地
に気づいたのなら、追いつかれる前に引き離すべきです。
多くの人は現状のOSASKやOSASKアプリは病的にサイズに執着していて、これ以上小さ
くする余地なんてほとんどないとまだ思っているらしいですが、「ぐいぐい01」が示し
たとおり、余地はかなり残っていたのです。この事実を知ってしまった以上、僕として
は「ぐいぐい00」をOSASKのメインのAPIのままにするわけにはいきません。なぜなら、
いつ追い抜かれるかとびくびくしながらOSやアプリを作るのは嫌だからです。
逆に言えば、このリリースによって「ぐいぐい00」は中途半端でいまいちなAPIだと
いうことが証明されたということでもあります。
---
・エミュレータOSと「ぐいぐい01」
エミュレータOSの目指す目標の一つに、「すべてのアプリケーションを実行可能にす
ること」というのがあります。しかもできるだけ高速に、です。これはつまり、アプリ
のほうはそのままに、OSだけががんばって目標を達成する方法だといえます。一方、ア
プリのほうからもこの目標へ歩み寄ることができると思います。たとえば、エミュレー
ションしやすいような命令しか使わないようにする、APIを少なく単純化しておく、な
どです。
「ぐいぐい01」は、このアプリからの歩み寄りをかなり意識しています。IA-32であ
れば、比較的小規模なソフトウェアだけで(=efg01)実行可能です。似たような目的
のjavaや.netと比較するとIA-32以外ではまともなエミュレータが必要になるので負け
ますが、IA-32限定なら勝てると思います。
---
・efg01とOSASK
OSASKには小さくて楽しいアプリがあり、それをプレイしたいのでOSASKをダウンロー
ドして起動してみてくれる人たちが少なからず存在しています(魅力的なアプリを作っ
てくださった皆さんに感謝です)。しかしefg01の存在は、そういう動機を減退させる
副作用があります。つまりOSとしてのOSASKなんかなくても、efg01さえあればアプリは
問題なく実行できて、しかも(将来的には)タスクセーブもできてしまうので、OSASK
を使う必要が全くありません。WindowsとLinuxの両対応アプリのような再コンパイルも
必要ありません。バイナリだけでできます。
もしefg01を使って主にWindows上で実行することになってしまったら、これはOSASK
の新アプリ形式などではなく、Windowsの新アプリ形式ということになってしまうかも
しれません。なんといっても、Windows上でhello, worldを表示するためのアプリが27
バイトで書けるというのは間違いないことなのです。つまりこのリリースはOSASKの改
良の予告ではなく、Windowsの改良だともいえてしまうわけです。
そうなるともしかしたら僕くらいしかOSASKを使わなくなるかもしれません。APIを改
良するにしても、みんなefg01用のパッチばかりを作り、OSASK用のパッチは作らないか
もしれません。でもそれでいいんです。というかこれこそ僕の望んでいた公正な競争で
あって、それでOSASKのユーザが減るのなら、OSASKは所詮その程度のものだったという
ことです。僕は別にユーザを増やすために開発をしているわけじゃないのですから。
どっちにしても「ぐいぐい01」仕様のアプリが増えれば、それはOSASKで動かせるわ
けですから、僕にとっては儲けものです。何も失うわけじゃないです。「ぐいぐい01」
仕様のアプリが充実すれば、「わざわざアプリを動かすためだけにヘビー級のWindows
やLinuxをインストールする必要はないんですよ、OSASKで十分なんですよ」ということ
だってできるわけです。
---
・リンク
http://osask.jp/boyaki04.html
http://wiki.osask.jp/?GUIGUI01/memo00
---
・謝辞
「ぐいぐい01」の仕様を検討する段階で、meg-osのneriさんから何度もアドバイスを
いただきました。仕様のうちの2〜3割はneriさんのアドバイスなしではこのレベルまで
仕上がらなかったと思います。この場を借りてお礼申し上げます。
------------------------------------------------------------------------------
それでは。
--
川合 秀実(KAWAI Hidemi)
OSASK計画代表 / システム設計開発担当
E-mail:kawai !Atmark! osask.jp
Homepage http://osask.jp/