page0058
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
* セキュリティを考えなくてもOSECPUの設計に至る
-(by [[K]], 2013.08.02)
** (0) はじめに
-OSECPUのバイトコードは、「第三世代OSASK」として[[K]]が数...
-ではどうやってこの仕様に決めていたのか、その話を書きたい...
** (1) 仕様の理由(セキュアに関係ある部分)
-なぜJITコンパイル方式?
--CPUに依存しない互換性を提供したかったから。Javaがうらや...
--(セキュアなOSを考えると、アプリを実行する前に、悪い命...
-なぜ整数レジスタとポインタレジスタを分離したのか?
--ページングもセグメンテーションもない環境下で、(多少時...
--ではレジスタはどうか。もし汎用レジスタ方式を採用してい...
--汎用レジスタ方式をやめれば、整数レジスタとポインタレジ...
--(ポインタレジスタを分離していたからこそ、ポインタレジ...
-なぜメモリアクセス時に型チェックをするのか?
--エンディアンが違うシステムでも同一の動作結果を保証する...
--またポインタレジスタの値をメモリに書いて、それを整数レ...
-なぜラベル命令で無限ループ対策という仕組みを導入するのか?
--これは[[page0055]]の(3)の事を指している。
--最初はこうだ。まずJITコンパイラでは、バイトコードの1命...
--じゃあどうするか。とりあえず、そんなものはすべてCLI/STI...
--というか、「割り込めない期間がたまにある」ではなくて「...
--しかし何からのミスで割り込みチェックを忘れてしまうと割...
-なぜセキュリティをOFFにできる、という設計なのか?
--このページの説明からも明らかなように、セキュリティは全...
--これはOFFにしなければいけないという意味ではない。選択で...
** (2) 仕様の理由(セキュアに関係ない部分)
-なぜレジスタ数がこんなに多いのか?
--x86が8本しか汎用レジスタがなく、しかもそのうちの一つはE...
--64にした最大の動機は、hh4エンコードで1バイトで表現でき...
-なぜ「reg0=reg1+reg2;」のような三項演算形式にしたのか?
--ARMの影響。x86で計算値を生成するたびに、元の値が必ず破...
-なぜフラグレジスタがないのか?
--MIPSの仕様がかっこいいと思ったから。
-なぜスタックがないのか?
--レジスタが十分に豊富なら、スタックがなくても困らないは...
--スタックには、整数値もポインタ値も積んだりおろしたりす...
-なぜスタックマシンにしなかったのか?Javaのまねで出発した...
--レジスタマシンが好きだから。スタックマシンはレジスタマ...
--レジスタマシンならJITコンパイラがレジスタ割り付けに悩ま...
** (3) 考察
-セキュリティを考えなくても既にセキュアな仕様になっていた...
-よい設計は十分にシンプルで、多くの問題を同時に解決するも...
* こめんと欄
#comment
終了行:
* セキュリティを考えなくてもOSECPUの設計に至る
-(by [[K]], 2013.08.02)
** (0) はじめに
-OSECPUのバイトコードは、「第三世代OSASK」として[[K]]が数...
-ではどうやってこの仕様に決めていたのか、その話を書きたい...
** (1) 仕様の理由(セキュアに関係ある部分)
-なぜJITコンパイル方式?
--CPUに依存しない互換性を提供したかったから。Javaがうらや...
--(セキュアなOSを考えると、アプリを実行する前に、悪い命...
-なぜ整数レジスタとポインタレジスタを分離したのか?
--ページングもセグメンテーションもない環境下で、(多少時...
--ではレジスタはどうか。もし汎用レジスタ方式を採用してい...
--汎用レジスタ方式をやめれば、整数レジスタとポインタレジ...
--(ポインタレジスタを分離していたからこそ、ポインタレジ...
-なぜメモリアクセス時に型チェックをするのか?
--エンディアンが違うシステムでも同一の動作結果を保証する...
--またポインタレジスタの値をメモリに書いて、それを整数レ...
-なぜラベル命令で無限ループ対策という仕組みを導入するのか?
--これは[[page0055]]の(3)の事を指している。
--最初はこうだ。まずJITコンパイラでは、バイトコードの1命...
--じゃあどうするか。とりあえず、そんなものはすべてCLI/STI...
--というか、「割り込めない期間がたまにある」ではなくて「...
--しかし何からのミスで割り込みチェックを忘れてしまうと割...
-なぜセキュリティをOFFにできる、という設計なのか?
--このページの説明からも明らかなように、セキュリティは全...
--これはOFFにしなければいけないという意味ではない。選択で...
** (2) 仕様の理由(セキュアに関係ない部分)
-なぜレジスタ数がこんなに多いのか?
--x86が8本しか汎用レジスタがなく、しかもそのうちの一つはE...
--64にした最大の動機は、hh4エンコードで1バイトで表現でき...
-なぜ「reg0=reg1+reg2;」のような三項演算形式にしたのか?
--ARMの影響。x86で計算値を生成するたびに、元の値が必ず破...
-なぜフラグレジスタがないのか?
--MIPSの仕様がかっこいいと思ったから。
-なぜスタックがないのか?
--レジスタが十分に豊富なら、スタックがなくても困らないは...
--スタックには、整数値もポインタ値も積んだりおろしたりす...
-なぜスタックマシンにしなかったのか?Javaのまねで出発した...
--レジスタマシンが好きだから。スタックマシンはレジスタマ...
--レジスタマシンならJITコンパイラがレジスタ割り付けに悩ま...
** (3) 考察
-セキュリティを考えなくても既にセキュアな仕様になっていた...
-よい設計は十分にシンプルで、多くの問題を同時に解決するも...
* こめんと欄
#comment
ページ名: