ttwilbの個人ページ
自己紹介
OS-Wikiの個人ページへ
どのようにOSECPUと関わりたいか?
- 手伝えることがあったら---。でも基本受け身で
- でも自分の考えに近い部分があるので、手伝う場合は楽しく手伝えそう
OSECPUと共通する考え方(インデント下は私の考え)
- (開発環境やその他事前の確認ではなく)実行環境側で実行時に安全性を保障すること。
- 安全性が侵されるのは、命令が(開発者やユーザー、もしくは『扱われる情報自身』が)
想定をしない衝動をしたときであると言える。そのため、(多少遅くなったとしても)命令
が動作する実行環境自体が安全を担保するのは的を得ている。
- そもそも、情報技術がこれほど発達した中で、何十年も前の技術であるx86 architecture
によるnativeの安全保障のみで満足する方が辛いと思う。
(「securityに関する考え方」で説明する)
- (もちろん、software layerで実現する以上最終的にはhardwareの機能に一部依存する
ことは避けられないのだが)
- pointer(参照型)の扱いを大きく制限する。
- ほぼすべてのC言語においてはpointerは開発者に柔軟性と自由度を与えてきたが、これが
危なっかしさを形成していることは否定できない。なので当然ポインタ
は機械側で面倒を見てやるべきである。
※誤解などがあったらごめんなさい!
OSECPUと異なる(?)考え方
- 実行したprogramの製作者が「悪意を持って」codingをしていた場合でも、systemおよび
すべての情報の安全性を保障する。
- 例えばGoogle Glassのcameraを使って盗撮しまくるAppなんて誰でも作られるわけで、
そういった状況を防ぎたいと思ったら情報の扱いにsystemが介在
するしかない。
- もちろん、こんな特殊な例以外にも、たとえば見た目は便利道具を装っていながら実は
裏で住所録を・・・(以下略)
- 悪意のある命令によって破壊されたsystemを以前の状態に復元できるようにする。
- むしろprogram終了時にすべての状態を戻すのをdefaultとする。
- systemが保持する(user側に公開される)すべての情報を、programの実行時に完全に複製(!)
する。その複製された(そしてprogramによって読み書きされる)情報を
systemと同期したいかは使用者が決める。
- トランザクション処理で、programが異常終了した場合の情報の冗長性を確保する。
(従来の、例えば設定fileを中途半端に書き込んだ状態、みたいには
ならないようにする。)
- program側で設定をfileに直接書き込んだりせず、必ずsystemの用意する情報管理機能
を使用するようにする。
- systemの情報にprogramによって与えられた変更は、そのprogramを削除することでいつでも無かったことにできる。
- 型指向を強化し、意図しない動作や許さない情報の流れ(例えば、顧客の個人情報がinternet側の
interfaceから送信される、など)が、systemによって拒否
されるようにする。
- 初期状態では、すべての情報には「画面に表示される」許可さえも与えられていない。networkに
放流される許可など言うまでもない
- 関数型言語
- objectは突き詰めて考えればすべて定義である。その定義を指すのか、のみが問題なのであって、
その状態がどうとか、ということを考える必要はない。
- リアルタイム
- 値ではなく式でデータを扱うため、元の値の変化が即座に結果に反映される。(例えば時間が経過すれば再描画処理をしなくても画面の時刻表示が更新される。)
本当に実現できるでしょうか。
- 実現したいですが、おそらく多くについては実現困難であるといえるでしょう。そもそも
自分の考え自体まだあまりまとまっていないので。
- まとめる切っ掛けを与えてくれる意見など、大歓迎です。
- (技術面での不安も・・・)
securityに関する考え方
- 1と0。つまりsecurityの段階は0%か100%しかない
- そもそもsecurityという考え方さえ不要になるかも。だって、特に守ろうとしなくても、意図しない動作、
不正な操作はそもそも実行不可能だから。
- 逆に言うと、正当な操作以外はすべてsystemの段階で拒否される、ということ。
- なんて自信を持って言えるくらいのsystemを100年以内に作りたい。
systemに関する議論
nilium leafについて
- 上の説明に通ずるprogramming interfaceを提供するため、手始めにC#でinterpreterを実装
- いづれFreeBSD上に載せて単独で動くようにする(licensing 形態未定)
- mobile OSからserverまでを想定
リンク
members
コメントください