ページへ戻る
+ Links
印刷
gg02/p0001
::
OSASK計画
osaskwiki
:
gg02
/p0001
第三世代OSASKに関するメモ群
(by
K
, 2011.07.08)
(1) 近況(2011.07.08~)
(by
K
, 2011.07.08)
2011.07.08:
震災があって忙しくなって、blike開発ラッシュがとまってしまう。フォント周りを少し作ったけどまだリリースするほどにはできてない。待っている人がもしいたら正直申し訳ない。でも原則として、次期リリースは常に保証しないというのが現在のスタンスなので、あまり期待しないでほしい。
それで(何の脈絡もないけど)、第三世代OSASKをやりたい。第三世代OSASKでできるようにしたいことはたくさんあるけど、その中に以下のようなことがある。
タスクセーブができる。セーブしたものを再開できる。
実行中のプログラムを書き換えてもOK。それでもどうにかして実行は継続され、書き換えた内容が反映される。
そういうことを妄想していても始まらない。ということで、やりたいことを具体的に考えてみた。
int i; for (i = 0;; i++) printf("%d hello\n", i);
みたいなプログラムを考える。まずこれをセーブしたり再開できるようになりたい。
とはいえ、僕の目指しているのは、このプログラムのままセーブできるようになるということではない。このプログラムにいろいろ小細工をして、それで同等のことを実現できればいいのだ。そんな小細工はずるいと思うかもしれないが、それは将来的にはコンパイラを改造して自動でやらせるからいいのだ。・・・そう、第三世代OSASKは言語処理系の改造も含んでいるのである。
要するにどういうスタイルで書けばできるようになるのかを知ることが第一だ。
2011.07.11:
C言語で実験したいと思っていたけど、C言語は勝手にいろいろやってしまうからうまくいかないということが分かった。じゃあアセンブラで実験だ。アセンブラだと分かりやすさが減ってしまうけど、まあしかたない。
これは第三世代OSASKではC言語が使えないという意味ではなくて、コンパイラをまじめに作り直さないとダメだというだけのこと。
ちょっとキャンプの準備がいろいろあるので、ペースダウンの予定。
アセンブラでやっていいのなら、たぶんefg02みたいなのを使うことで、win32やLinux上でも第三世代OSASKアプリが動いて、タスクセーブとかもできるはず???
2011.08.17:
キャンプが終わってASKAで実験中。感触としては、これならまあまあうまく行きそう。かなり機能制限しているけど、とりあえずセーブまではできた。
2011.08.23:
9月からはまた忙しくなってしまうので、8月中にリリースしたい。今のバージョンだと見た目がいかにもしょぼいので、blikeベースでリリースしようと思う。要するに、ASKAでblikeアプリを作るとタスクセーブができるようになるということだ。今までのOSASKは「起動速度」とか「サイズ」とか「動作の軽さ」とかで他のOSでは味わえない世界を見せることに成功してきたが、今回のOSASKでは、ついにタスクセーブを体験できる。これはエミュレータOSの機能の一つであり、もし無事にリリースできれば、やっと性能以外のことを一つだけ達成できたことになる(いろいろと限定的だけど)。だからOSASK史上としては大きな出来事になると思う。
2011.08.24:
blike01fにバグを見つけた。もう少しバグ探しした後、blike01gとしてリリースしなおそうと思う。
タスクセーブしたあとタスクロードすると、結果的にガーベージコレクションも行われることがわかった。これはおもしろいかもしれない。
なにがどう面白いのかというと、メモリリークを起こしてしまうような「ダメなアプリ」でも、とりあえずタスクセーブしてロードすればリフレッシュできる。
また開放し忘れのオブジェクトがどういう構造体なのか簡単に突き止められるので、バグも探しやすい。
2011.09.14:
方針を変更。今まではjavaみたいな路線を最終目標にしていたが、それを変えようと思う。イメージはこうだ・・・
ある新しい言語でプログラムを書いてそれをコンパイルするとバイトコードができる。そのバイトコードをefg02にかけると動く・・・わけではない。efg02はただ実行ファイルを出力する。そしてその実行ファイルを実行する。
つまり新規のOSは必要ない。もちろんよりよいOSは必要なので、それはその後に検討するが、この第三世代OSASKとしてはOSを新規に作る必要は全くない。既存のOSに対するアプリを生成する手段でしかないのだ。そしてすべてのOSに対してタスクセーブを提供する。CPUの壁も越える。WindowsでセーブしたタスクをFM-77AVで再開することもできる。
そして僕はその言語を使って新しいOSを作りたい。今まではそのアイデアもすべて第三世代のものとして扱ってきたが、それは第四世代というべきかもしれない。切り分けたほうが話が整理できそうだ。
2011.11.16:
最近は通勤時間に考え中。実装する時間があれば、そこそこの物は出来そうな気がする。
2011.12.12:
通勤時間に脳内でさまざまな最初の実装方法を検討してきた。それで今一番有力なのは、C言語のライブラリという形で作ることである。このライブラリを使ってアプリケーションを作ると、とりあえずblike用のアプリができるが、それはタスクセーブの機能も有するというわけだ。
Windowsで保存したタスクをLinuxで再開できたら楽しいではないか。たぶん「はりぼてOS」で再開することだってできるようになる。
なるほど、いま自分が構想しているソフトウェアは、「OSASKのタスクセーブ機能」ではなくて「さまざまなOSにタスクセーブ機能を」というものなんだな。悪くない。
ただしこのC言語はものすごく頻繁にライブラリを利用することになるので、ソースの見た目は結構ひどい。これじゃCじゃない、劣化した別の言語だ!と言われかねないレベルである。変数を確保するにもライブラリの助けが必要だし、関数もライブラリ経由でないと呼べないし、ほかにもいろいろ・・・。
正月になったら少しは作れるだろうか・・・。
2011.12.22:
運がよければ12/26-12/27の2日間は開発できそう!
2011.12.30:
いろいろ開発できた(以下はすべて第三世代OSASKで利用予定)。
gh4の改良版であるhh4エンコードを設計した。
GUIGUI01/man0003
の改良版にあたる、より汎用性の高いタグフォーマットを設計した。
OSASK開発の意義というか目標を再定義した。
タスクセーブのための試作プログラムの一部を実装した。
これらをこの正月休み中に発表したい。
2012.01.04:
現在hh4のサンプルコードを準備中。
Last-modified: 2012-01-04 (水) 00:00:00 (JST) (319d) by lina