* OSECPUと第三世代OSASKの仕様の関係 -(by K, 2013.03.11) --(osask.netに書こうと思ったんだけどパスワードを忘れて新規ページが作れない。メモを見つけるまでこっちに書いておく) ** OSECPUとは? -第一世代OSASKを初心者でも作れるようにと徹底的に再構成して作られたOSが「はりぼてOS」。 -同じような位置づけで、第三世代OSASKを初心者でも作れるようにと徹底的に再構成して作るのが「OSECPU(おせくぷ)」。 -http://osecpu.osask.jp/wiki/ -ホームページ: http://osecpu.osask.jp/wiki/ ---- -OSECPUの基本理念は以下のとおり。 --セキュリティに強いOSってほしくない?ほしいよね! --でもさー、今のCPUって簡単にバッファオーバーランとかできちゃうよね?もちろんそれはプログラマが用心深くていねいにコードを書けば悪意あるデータに対して十分に防衛できるけど、「CPUが賢くなってプログラマがあまり気を遣わなくても守ってくれる」っていうやりかたもあっていいんじゃないかな? ---というかプログラマに無限の用心深さを要求することが許されるのだとしたら、現状は既に完全にセキュアなのだと思う。 ---それができなから、それを前提にセキュアを考えようということ。セキュリティホールができてしまったときに、なんでもかんでもアプリ開発者のせいにしているだけでは、現状は変わらない! --他にもいろいろなプログラム上のミスに対して、おかしな結果になる前に教えてくれる親切なCPUがあったら、バグがバグのまま放置されることも少なくなって、結果的にセキュアなアプリがたくさんできるんじゃないかな? ---要するに今のx86でも一般保護例外などでいろいろ教えてくれてはいるけど、もっともっと保護してほしいという意味。 --このアプローチはCPUを賢くするのではなくて、そういう賢い高級言語を作るという手法もあるけど、高級言語を作るのは難しそうなので、CPUを作ることにする。 ---CPUはサポートするべき命令も少ないので、簡単だ。 --こんなCPUを設計して、この仮想的なCPUの上で動作するOSを作れば、きっとOSも非常にセキュアになるに違いない! --高級言語もそのうち作る(?)、作れたらいいなー。 ** 主な仕様 -(gg02との差異を中心に説明) -レジスタ幅は32bit -命令精度は32bit固定(精度指定フィールドがない) -hh4エンコードは使わない、普通のバイトコード -レジスタ数は64本(ここは同じ) --定数レジスタとかの扱いも同じ -アドレスレジスタも64本(ここは同じ) --定数レジスタとかの扱いも同じ -とりあえず最初はインタプリタ実行を目指す。 --gg02では最初からJITを目指す。 * こめんと欄 #comment