ページへ戻る

− Links

 印刷 

design002 のバックアップ差分(No.2) :: OSASK計画

osaskwiki:design002 のバックアップ差分(No.2)

« Prev[4]  Next »[5]
1: 2008-09-08 (月) 15:28:00 ソース[6] 2: 2008-09-08 (月) 15:28:00 ソース[7]
Line 1: Line 1:
-* bss領域のゼロクリアについて+* .bss領域のゼロクリアについて
-(by [[K]], 2008.09.08) -(by [[K]], 2008.09.08)
Line 12: Line 12:
-理由はなるほどもっともだけど、それでも.bssのゼロクリアは本質的には無駄だと思う。問題はそういう悪さを出来なくすることであって、必要も危険もないのに毎回わざわざゼロクリアすることではないはずだ。まず、ゼロクリアする必要のない場合というのが存在する。たとえば、同じタスクの別のメモリ領域がスワップアウトされて、それをそのまま渡された場合だ。これはどうせ読めるものが読めているだけになるから問題ない。 -理由はなるほどもっともだけど、それでも.bssのゼロクリアは本質的には無駄だと思う。問題はそういう悪さを出来なくすることであって、必要も危険もないのに毎回わざわざゼロクリアすることではないはずだ。まず、ゼロクリアする必要のない場合というのが存在する。たとえば、同じタスクの別のメモリ領域がスワップアウトされて、それをそのまま渡された場合だ。これはどうせ読めるものが読めているだけになるから問題ない。
-またたとえ元が別タスクのメモリであっても、それが.textセクションだったものであれば(市販されているコピー禁止のソフトでないかぎり)、読めても問題ない。というのは.textセクションは書き換え禁止なのでロードの時のままだし、そんな情報はわざわざ盗み見なくてもダウンロードすればいいだけなのだ。ただしマルチユーザで動いているときは、ゼロクリアする必要があるかもしれない。そうでないと、「えー誰だか知らないけどいまだにこんな古いソフト使っているやつがいるのかよ、だせー」なんていう話が起こりかねない。.bssに書いてあった情報をインターネット上に送りつけたり、ファイルに保存したりして他のユーザの見える位置におく危険もあるので、ネットワークアクセスするアプリや、タスクディレクトリ・ユーザディレクトリを越えてアクセスするアプリに対しても注意は必要だ。 -またたとえ元が別タスクのメモリであっても、それが.textセクションだったものであれば(市販されているコピー禁止のソフトでないかぎり)、読めても問題ない。というのは.textセクションは書き換え禁止なのでロードの時のままだし、そんな情報はわざわざ盗み見なくてもダウンロードすればいいだけなのだ。ただしマルチユーザで動いているときは、ゼロクリアする必要があるかもしれない。そうでないと、「えー誰だか知らないけどいまだにこんな古いソフト使っているやつがいるのかよ、だせー」なんていう話が起こりかねない。.bssに書いてあった情報をインターネット上に送りつけたり、ファイルに保存したりして他のユーザの見える位置におく危険もあるので、ネットワークアクセスするアプリや、タスクディレクトリ・ユーザディレクトリを越えてアクセスするアプリに対しても注意は必要だ。
--こんなふうに、問題ある条件を絞っていけばいいと思う。またシェルの設定で、このアプリはそういういかがわしいことはしないので信用していい、というフラグをたてられるようにしてもいいだろう。さらにアプリ側から、この領域には絶対に他のタスクに見られたくない情報を含んでいるので、スワップアウトするときはゼロクリアしてくれって指定できるようにもしたい。これをちゃんと設定すれば、シェルの設定をし忘れてもコピー禁止の市販ソフトの.text域も無事に守れる(まあOSを改造して、そのAPI要求を無視するようにしたら突破されちゃうんだけど、そもそもOS改造を許せばなんでも出来ちゃうし、オープンソースOSでは改造を禁止することは出来ない)。+-こんなふうに、問題ある条件を絞っていけばいいと思う。またシェルの設定で、このアプリはそういういかがわしいことはしないので信用していい、というフラグをたてられるようにしてもいいだろう。さらにアプリ側から、この領域には絶対に他のタスクに見られたくない情報を含んでいるので、スワップアウトするときはゼロクリアしてくれって指定できるようにもしたい。これをちゃんと設定すれば、シェルの設定をいじってもコピー禁止の市販ソフトの.text域などを無事に守れる(まあOSを改造して、そのAPI要求を無視するようにしたら突破されちゃうんだけど、そもそもOS改造を許せばなんでも出来ちゃうし、オープンソースOSでは改造を禁止することは出来ない)。
* こめんと欄 * こめんと欄
#comment #comment
« Prev[4]  Next »[5]