6: 2009-11-17 (火) 12:08:13 |
現: 2024-01-08 (月) 12:58:55 lina |
- | * 2010年度からのOSASK計画の予定 | + | TITLE:x |
| + | * 2010年度からのOSASK計画の予定 [#g2458686] |
| -(by [[K]], 2009.09.24) | | -(by [[K]], 2009.09.24) |
- | *** (0) | + | *** (0) [#y24ea437] |
| -これは http://osask.jp のページに載せるための文章の下書きです。清書するのは10月以降になると思います(時間が無いので)。 | | -これは http://osask.jp のページに載せるための文章の下書きです。清書するのは10月以降になると思います(時間が無いので)。 |
| -毎度のことですが、僕はやるといってもやれなかったことが多いので、ここに書いてあることも信用できないかもしれません。それは基本的に読み手の判断にゆだねます。ただ読んでもらえば分かるように、なんとかして実現できるように工夫がしてあります。 | | -毎度のことですが、僕はやるといってもやれなかったことが多いので、ここに書いてあることも信用できないかもしれません。それは基本的に読み手の判断にゆだねます。ただ読んでもらえば分かるように、なんとかして実現できるように工夫がしてあります。 |
- | *** (1) 要点 | + | *** (1) 要点 [#j46ee7cf] |
| -今までOSASK計画にはたくさんの側面がありました。その中のいくつかは計画倒れっぽくなってもいます。しかしそれらのほとんどを一挙に解決できるアイデアを思いつきました。だからやります。エミュレータコアだってやります!ただし2010年度からです。 | | -今までOSASK計画にはたくさんの側面がありました。その中のいくつかは計画倒れっぽくなってもいます。しかしそれらのほとんどを一挙に解決できるアイデアを思いつきました。だからやります。エミュレータコアだってやります!ただし2010年度からです。 |
- | *** (2) 背景 | + | *** (2) 背景 [#ff0302c2] |
| -どこから話してもいいのだけど、最初から話すのが一番分かりやすい気がするので、そこから書くことにします。 | | -どこから話してもいいのだけど、最初から話すのが一番分かりやすい気がするので、そこから書くことにします。 |
| -OSASK計画は、[[K]]がエミュレータを作ったり他のソフトウェアを書いたりしているうちに出てきたさまざまな問題や不満を、OSから作り直せば全部うまく解決できるんじゃないか、ということで始まったものです。当初はエミュレータで一般的な仮想化の技術をOSでも当たり前に使えるようにしたり、互換性の問題をエミュレータドライバで解決させることで従来の発想に縛られないOSの設計をして、特に性能面(速度とサイズ)で[[K]]としては予想以上の結果を出すことができました。 | | -OSASK計画は、[[K]]がエミュレータを作ったり他のソフトウェアを書いたりしているうちに出てきたさまざまな問題や不満を、OSから作り直せば全部うまく解決できるんじゃないか、ということで始まったものです。当初はエミュレータで一般的な仮想化の技術をOSでも当たり前に使えるようにしたり、互換性の問題をエミュレータドライバで解決させることで従来の発想に縛られないOSの設計をして、特に性能面(速度とサイズ)で[[K]]としては予想以上の結果を出すことができました。 |
| -ここまでの流れが本流ですが、実は重要な支流もあります。それは開発ツールの整備です。ASKA、nask、GO(C言語)、リンカ、ライブラリアン、アーカイバなど、いろいろ必要に迫られて作ってきました。これは当初おまけというか副産物的な扱いでしたし、ついこの間までも、副産物でしかないと思って疑いもしませんでした。 | | -ここまでの流れが本流ですが、実は重要な支流もあります。それは開発ツールの整備です。ASKA、nask、GO(C言語)、リンカ、ライブラリアン、アーカイバなど、いろいろ必要に迫られて作ってきました。これは当初おまけというか副産物的な扱いでしたし、ついこの間までも、副産物でしかないと思って疑いもしませんでした。 |
| | | |
- | *** (3) 計画の内容 | + | *** (3) 計画の内容 [#xe030fc2] |
| -OSとユーザの接点はどこでしょうか。そうですシェルです。もっというと応答性(レスポンス)も含めてシェルの挙動さえ同じなら、カーネルやドライバなんて別になんだって同じなのです、ユーザから見れば。逆にカーネルやドライバがどんなに高機能で高性能でも、それをシェルが生かさなければ、ユーザはそのOSを便利だとは思わないはずです。また無能極まりないカーネルであっても、それらの機能を極力使わずにシェル側で自前で処理すれば、それなりのものにはなるはずです。 | | -OSとユーザの接点はどこでしょうか。そうですシェルです。もっというと応答性(レスポンス)も含めてシェルの挙動さえ同じなら、カーネルやドライバなんて別になんだって同じなのです、ユーザから見れば。逆にカーネルやドライバがどんなに高機能で高性能でも、それをシェルが生かさなければ、ユーザはそのOSを便利だとは思わないはずです。また無能極まりないカーネルであっても、それらの機能を極力使わずにシェル側で自前で処理すれば、それなりのものにはなるはずです。 |
| -こういう話をすると、いやOSとユーザとの接点はアプリもあるというかもしれません。まあそれはそうなのですが、その場合優秀なのはアプリなのであって、OSではないと思うかもしれません。そもそもシェルはOSの一部と見なされますが、アプリはOSの一部ではないというのが普通の見解でしょう。もしくはもはやほとんどシェル代わりになるほど使っているアプリがあるのなら、それはむしろシェルと解釈したらいいかもしれません。 | | -こういう話をすると、いやOSとユーザとの接点はアプリもあるというかもしれません。まあそれはそうなのですが、その場合優秀なのはアプリなのであって、OSではないと思うかもしれません。そもそもシェルはOSの一部と見なされますが、アプリはOSの一部ではないというのが普通の見解でしょう。もしくはもはやほとんどシェル代わりになるほど使っているアプリがあるのなら、それはむしろシェルと解釈したらいいかもしれません。 |
| -こういうことを前提にするとどうなるでしょう。OSのコアはただの動的コンパイラマネージャになります。その上でさまざまな形式の言語やデータフォーマットが動いていますが、それらは必ずしもコンパイル(or展開)してある必要はなく、必要に応じて必要な形式に変換されます。変換した結果はどんどんキャッシュされ、実行速度の低下を防ぎます。スクリプトもプログラミング言語も特に区別は無くなり、シェルのコマンドラインでC++の文法を使ってOSを制御することもできるはずです。デバッグ支援機能も統合したいので、動作しているものを一時的に止めてソースを改変して動作を再開することもできるでしょう(マルチタスクなので、動作させたままでやることも不可能ではない・・・タスクセーブしてコピーをとって一方を再開、もう一方を止めてソース改変など)。変数もwatchできるでしょう。たぶんバージョン管理的なことも支援するでしょう。変換ルールを変更すれば、その変更も速やかに反映されます。 | | -こういうことを前提にするとどうなるでしょう。OSのコアはただの動的コンパイラマネージャになります。その上でさまざまな形式の言語やデータフォーマットが動いていますが、それらは必ずしもコンパイル(or展開)してある必要はなく、必要に応じて必要な形式に変換されます。変換した結果はどんどんキャッシュされ、実行速度の低下を防ぎます。スクリプトもプログラミング言語も特に区別は無くなり、シェルのコマンドラインでC++の文法を使ってOSを制御することもできるはずです。デバッグ支援機能も統合したいので、動作しているものを一時的に止めてソースを改変して動作を再開することもできるでしょう(マルチタスクなので、動作させたままでやることも不可能ではない・・・タスクセーブしてコピーをとって一方を再開、もう一方を止めてソース改変など)。変数もwatchできるでしょう。たぶんバージョン管理的なことも支援するでしょう。変換ルールを変更すれば、その変更も速やかに反映されます。 |
| -また言語処理系もとても作りやすくなるはずです。今のnaskはx86用のアセンブラとしては世界最小をうたっていますが、このOS用に書かれたnaskはそれよりもずっと小さくなるはずです。構文解析などをOSが支援してくれるからです。ASKAもGOも同様でしょう。そしてこれらは単にアセンブルやコンパイルができるというだけではなく、ほぼ自動的に逐次実行もできるようになるというわけです。 | | -また言語処理系もとても作りやすくなるはずです。今のnaskはx86用のアセンブラとしては世界最小をうたっていますが、このOS用に書かれたnaskはそれよりもずっと小さくなるはずです。構文解析などをOSが支援してくれるからです。ASKAもGOも同様でしょう。そしてこれらは単にアセンブルやコンパイルができるというだけではなく、ほぼ自動的に逐次実行もできるようになるというわけです。 |
- | *** (4) できるの? | + | *** (4) できるの? [#yf306ac9] |
| -こんなに景気のいい事を言っていると、当然「本当にできるんだろうか」と心配になるわけですが、まず今までの性能重視(速度やサイズ)を少し抑えて、代わりに実装時間を短くする手法や全部完成しなくてもそれなりに段階的に使えるようになる手法を優先して採用するつもりです。今までは「どんなに早く完成しても性能が悪ければ意味がない、そんなものは役に立たない」としてきましたが、今回は「どんなに高性能で理想的でも、動くところまで行かなければ意味がない」という立場です。だからきっとなんとかなります。 | | -こんなに景気のいい事を言っていると、当然「本当にできるんだろうか」と心配になるわけですが、まず今までの性能重視(速度やサイズ)を少し抑えて、代わりに実装時間を短くする手法や全部完成しなくてもそれなりに段階的に使えるようになる手法を優先して採用するつもりです。今までは「どんなに早く完成しても性能が悪ければ意味がない、そんなものは役に立たない」としてきましたが、今回は「どんなに高性能で理想的でも、動くところまで行かなければ意味がない」という立場です。だからきっとなんとかなります。 |
| -そうはいっても、2009年度いっぱいは忙しすぎて開発ができるとは思えません。だから2010年度からです。そこから2~3年もすれば、「ああ、[[K]]が言っていたことはこういうことなのか」くらいの部分はできるのではないかと思っています。 | | -そうはいっても、2009年度いっぱいは忙しすぎて開発ができるとは思えません。だから2010年度からです。そこから2~3年もすれば、「ああ、[[K]]が言っていたことはこういうことなのか」くらいの部分はできるのではないかと思っています。 |
- | *** (5) 補足 | + | *** (5) 補足 [#c01f0078] |
| -なんか全然うまく書けません。こんな程度のものじゃないんですが、どう書いたら分かってもらえるのかが分かりません。それが説明できたら、ああなるほど、それなら2~3年でできそうだね、って分かってもらえると思うのですが・・・。まあ、苦労して説明を考えるよりも、作ってしまうほうが早そうです。 | | -なんか全然うまく書けません。こんな程度のものじゃないんですが、どう書いたら分かってもらえるのかが分かりません。それが説明できたら、ああなるほど、それなら2~3年でできそうだね、って分かってもらえると思うのですが・・・。まあ、苦労して説明を考えるよりも、作ってしまうほうが早そうです。 |
| | | |
- | * こめんと欄 | + | * こめんと欄 [#l81cb66a] |
| - 昔からちょくちょく拝見していますが、なかなか形にならないですね。紆余曲折しているようですが、死ぬまでに完成できるといいですね -- ''おさ'' &new{2009-09-26 (土) 14:49:57}; | | - 昔からちょくちょく拝見していますが、なかなか形にならないですね。紆余曲折しているようですが、死ぬまでに完成できるといいですね -- ''おさ'' &new{2009-09-26 (土) 14:49:57}; |
| - どうもありがとうございます。でもすべてが形になっていないだけで、部分的には予定以上の成果をあげてもいるので、本質的に深刻な問題だとは思っていません。死ぬまでにできることはもちろんできないことよりもいいことですが、仮に現状以上のものが今後何一つできなくても、僕は失敗だとは思いません。というか(本来の目的とは違うかもしれなくても)何か一つでも結果が残せたのですから、大成功なのです。成功だからいつやめてもいいのですが、僕は欲張りなので、さらに成功を付け足すために、思いついたことへの挑戦を続けているだけなのです。・・・そのあたりの見解の相違があるような気がしたので、あえて書きました。 -- [[K]] &new{2009-09-27 (日) 00:14:57}; | | - どうもありがとうございます。でもすべてが形になっていないだけで、部分的には予定以上の成果をあげてもいるので、本質的に深刻な問題だとは思っていません。死ぬまでにできることはもちろんできないことよりもいいことですが、仮に現状以上のものが今後何一つできなくても、僕は失敗だとは思いません。というか(本来の目的とは違うかもしれなくても)何か一つでも結果が残せたのですから、大成功なのです。成功だからいつやめてもいいのですが、僕は欲張りなので、さらに成功を付け足すために、思いついたことへの挑戦を続けているだけなのです。・・・そのあたりの見解の相違があるような気がしたので、あえて書きました。 -- [[K]] &new{2009-09-27 (日) 00:14:57}; |