3: 2009-11-20 (金) 17:09:48 hideyosi |
4: 2009-11-20 (金) 20:47:47 hideyosi |
| *OSASK-HBの特徴(アプリの互換性): [#vb864eb7] | | *OSASK-HBの特徴(アプリの互換性): [#vb864eb7] |
| | | |
- | OSASK-HBのアプリは、ただ小さいだけではありません。他のOS上で実行可能にするということにも配慮しました。 | + | OSASK-HBのアプリは他のOS上で実行可能!?? |
| | | |
- | 旧OSASKアプリは、QEMU等のエミュレータ無しでは、Windows上で実行することができませんでした。しかしOSASK-HB用のアプリは、QEMU等のエミュレータを使わずともefg01と呼ばれる20KB程度のローダを使うだけで、Windows上での実行が可能です(efg01の大きさはバージョンabcdw014時のもの)。 Windows上で、この極小のOSASK-HBアプリが動いてしまうのですよ!?なんだWindowsも「やればできる子」だったんですね、たった20KBのローダアプリを使うだけここまでできるんですから(笑)。 | + | 旧OSASKアプリはQEMU等のエミュレータ無しではWindows上で実行することができませんでした(そらそーだw)。 |
| | | |
- | efg01はLinux用もMonaOS用もMEG-OS用もあります。「はりぼてOS」用や旧OSASK用も検討されています。その気になればTownsOS用やDOS汎用(DOS|Extender的なもの)も用意できると思います。基本的にx86用32bitOSであれば、ほとんど対応可能なはずです。 efg01の移植には多少の苦労が伴いますが、それさえできれば、OSASK-HB用のアプリは再コンパイルしなくてもバイナリのまま動いてしまうのです。それに苦労といってもたかが20KBのアプリです。それだけで全てのOSASK-HB用のアプリが使えるようになるのですから、安いものです。 | + | しかしOSASK-HB用のアプリはのエミュレータを使わずに''efg01''と呼ばれる20KB程度のローダを使うだけで、Windows上での実行が可能です(efg01の大きさはバージョンabcdw014時のもの)。 |
| | | |
- | これで分かるように、OSASK-HBアプリは単に機能密度が高いというだけではなく、OS横断的な共通互換アプリしての資質まで備えているのです。むろんこの分野ではJavaや.netというすばらしい先人がいます。これらはx86という壁も越えているので、互換性に関しては格が違います。しかしJavaや.netのランタイムは非常に大きく、waba等の軽量実装でさえ40KBを切ることは非常に難しいです。またOSASK-HBアプリはx86ネイティブなので、JIT等が不要で実行開始までのレイテンシもほとんどありません。そして多分Javaや.netでは.g01よりも小さく作ることはできないでしょう。・・・したがってOSASK-HBを「バイトコードを使わずにやったらどこまでいけるのか」の実験例としてみていただければと思います。 | + | -COLOR(blue){efg01つーのが専用のエミュレータってところか? そんなふうに考えてもらっていいと思います。} |
| + | -COLOR(blue){「なんだよQUMEがあるのにわざわざ独自エミュ作ったのかよバカバカしい!」} |
| + | -COLOR(blue){まぁそんなふうに考えることもできるでしょう。} |
| + | |
| + | -なんでヘンな独自エミュ作るの?qumeでいいじゃん! |
| + | --まずは。圧倒的に小さい小さいってこと。QUME等はPC/ATが持つすべての機能をエミュレートしないといけません。機能・プログラムは複雑になり、速度も問題になってきます。efg01は本体がたったの20kbです。 |
| + | |
| + | 他の独自OS(旧OSASKを含む) |
| + | ネイティブアプリ → 各種独自OS → QEMU → 実際のOS(Win・Linux・MacOSX等)→ 実機が動作 |
| + | |
| + | efg01を使い、OSASK-HBアプリを実行 |
| + | ネイティブアプリ → eg01 → 実際のOS(Win・Linux・MacOSX等)→ 実機が動作 |
| + | |
| + | --これを見ただけでも無駄を大きく省いていることが解ると思います。 |
| + | |
| + | |
| + | |
| + | **efg01は既にLinux用・MonaOS用・MEG-OS用もある(はりぼてOS用・旧OSASK用も可能) [#d5679f77] |
| + | |
| + | その気になればTownsOS用やDOS汎用(DOS|Extender的なもの)もそう難しくないらしい。 |
| + | 基本的にx86用32bitOSであれば、ほとんど対応可能なはずです。 efg01の移植には多少の苦労が伴いますが、それさえできれば、OSASK-HB用のアプリは''再コンパイルしなくてもバイナリのまま''動いてしまうのです。それに苦労といってもたかが20KBのアプリです。それだけで全てのOSASK-HB用のアプリが使えるようになるのですから、安いものです。 |
| + | |
| + | OSASK-HB(のAPIを利用した)アプリは単に機能密度が高いというだけではなく、OS横断的な共通互換アプリしての資質まで備えているのです。 |
| + | |
| + | -COLOR(blue){Javaでいいじゃんwww} |
| + | --Javaや.netというすばらしい先人がいます。これらはx86という壁も越えているので、互換性に関しては格が違います。 |
| + | しかしその代償としてJavaや.netのランタイムは非常に大きく、waba等の軽量実装でさえ40KBを切ることは非常に難しいです。 |
| + | またOSASK-HBアプリはx86ネイティブなので、JIT等が不要で実行開始までのレイテンシもほとんどありません。そして多分Javaや.netでは.g01よりも小さく作ることはできないでしょう。・・・したがってOSASK-HBを「バイトコードを使わずにやったらどこまでいけるのか」の実験例としてみていただければと思います。 |
| | | |
| この「エミュレータなしで実行可能にする」を実現しようとすると、APIの設計の選択肢が減ります。そのため旧OSASKアプリでは実現できませんでしたし、他のOS用のアプリでもこのような特徴を挙げているものはほとんどないと思います。サイズの追求という面とは競合もしています。つまりこのバイナリ互換を捨てれば、アプリサイズはもっと小さくできたのです。・・・しかしこれは逆にとらえてほしいです。互換性まで盛り込みながらも、このサイズを達成できているのだ、と。 | | この「エミュレータなしで実行可能にする」を実現しようとすると、APIの設計の選択肢が減ります。そのため旧OSASKアプリでは実現できませんでしたし、他のOS用のアプリでもこのような特徴を挙げているものはほとんどないと思います。サイズの追求という面とは競合もしています。つまりこのバイナリ互換を捨てれば、アプリサイズはもっと小さくできたのです。・・・しかしこれは逆にとらえてほしいです。互換性まで盛り込みながらも、このサイズを達成できているのだ、と。 |
| せっかく苦労して作ったアプリがOSASK-HBでしか動かないなんて、寂しいではありませんか。最高のアプリを、好きなOSの上で使ってもらう、これこそがKの理想です。仮に機能密度の低いアプリがOSを超えて利用できたとしても、そんなものは使う気がしないというものです。 | | せっかく苦労して作ったアプリがOSASK-HBでしか動かないなんて、寂しいではありませんか。最高のアプリを、好きなOSの上で使ってもらう、これこそがKの理想です。仮に機能密度の低いアプリがOSを超えて利用できたとしても、そんなものは使う気がしないというものです。 |
| | | |
| + | **バイナリのまま互換を保てることで生まれる可能性 [#qa94293b] |
| + | えーと・・・・ |
| | | |
- | *OSASK-HBの特徴(実用性): [#z893df63] | + | *OSASK-HBの実用性: [#z893df63] |
| | | |
| ここまでの説明だと、実用性に乏しいhelloなどが極端に小さいサイズで書けて、それでそれが他のOSでも動くだけ、なんていう印象を持つかもしれません。しかし現状はもう少し進んでいます(バージョンabcdw014時点)。 | | ここまでの説明だと、実用性に乏しいhelloなどが極端に小さいサイズで書けて、それでそれが他のOSでも動くだけ、なんていう印象を持つかもしれません。しかし現状はもう少し進んでいます(バージョンabcdw014時点)。 |
| ・bim2hrb 4,096 → 384 「はりぼてOS」用のリンカ | | ・bim2hrb 4,096 → 384 「はりぼてOS」用のリンカ |
| ・makefont 3,072 → 72 OSASKと「はりぼてOS」用の半角フォントデータ生成プログラム | | ・makefont 3,072 → 72 OSASKと「はりぼてOS」用の半角フォントデータ生成プログラム |
| + | |
| + | これはある意味福音かもしれませんな。 |
| + | 実際に極初期のこれらのツールをLinuxに移植した時はすごく大変でした。 |
| + | (今は元の段階から他OSへの移植を考慮されているので技術的にはずいぶん楽にはなりましたが) |
| + | 技術的なことはもちろんでしたがとにかく数が多い! |
| + | アレを移植して次にこれを移植して・・・ |
| + | 少なくともバイナリのままで動き、移植はefg01のみに集中できればどれほど楽か・・・ね。 |
| + | |
| + | |
| + | |
| + | |
| | | |
| 技術的な細部に興味があるひとは、とりあえず http://wiki.osask.jp/?OsaTech を見てください | | 技術的な細部に興味があるひとは、とりあえず http://wiki.osask.jp/?OsaTech を見てください |