OSECPU-VM(おせくぷ・ぶいえむ)のWikiへようこそ

  • (by K, 2012.09.09)

OSECPU-VMとは?

  • OSECPU-VMはオープンソースプロジェクトです。第三世代OSASKの簡易版に相当します。
    • ダウンロードはこちら → page0074
    • アプリの作りかたの説明はこちら → page0087
    • 大雑把な歴史はこちら → page0075
    • プロジェクトへの上手な関わり方はこちら → page0035
    • OSECPU-VMアプリの小ささ、動作画面→page0103
  • OSECPU-VMは以下の目的を達成するための仮想マシン本体や、それらに関するツール群、アプリ群、ドキュメント類を開発します。
  • 読み方は「おせくぷ-ぶいえむ」です。
  • プロジェクトの代表はK(川合秀実)です。
    • OSASK計画代表 & 「30日でできる!OS自作入門」著者
    • セキュリティキャンプ2011-2012「セキュアなOSを作ろうクラス」講師
    • セキュリティキャンプ2013-2014「セキュアなシステムを作ろうクラス」講師(クラス長)

OSECPU-VMの目的

  • (1) 教育
    • 2013年以降のセキュリティキャンプにおいて、Kは一部の学生をOSECPU-VMの開発に関わらせることで、様々な技法やセキュリティの考え方を具体的に伝えます。
  • (2) デバッグ支援とセキュリティ
    • 増え続ける需要に応じてソフトウェア開発者のすそ野が広がっていますが、バグとの戦いは終わっていません。不注意なミスになかなか気づけず、バグ取りに苦労することは珍しくありません。セキュリティホールも根絶の見通しには程遠い状況です。
    • それならば、OSも開発環境もライブラリもなにもかもを、デバッグ支援とセキュリティホール発見支援を第一義に設計し直したらどうなるだろうかとKは考えました。今まではこのような考え方はナンセンスでした。なぜなら実際の演算処理よりも各種のチェックの方が処理時間がかかるくらいにチェックすべきことがあるからです。コンピュータの演算能力は貴重でしたので、この考え方は支持されなかったのです。しかし、近年のコンピュータ技術の発展は素晴らしく、とんでもない演算速度のコンピュータがとても安価で購入できるようになりました。今こそ、このアイデアが試される時なのです!
    • もちろんOSECPU-VMは今のアーキテクチャモデルにそのままセキュリティチェックを追加するのではありません。それはさすが効率が落ちてもったいないので、セキュリティチェックを効率よくできるモデルも設計しています。
  • (3) 互換性
    • ライバルであるJavaや.NETは、一度プログラムを書いたらそのプログラムはどの環境でも動く、ということを目指しています。そしてそれはある程度は成功していると思います。しかしこれは「ある程度」でしかないのです。OSECPU-VMはもっと幅広い互換性を目指します。たとえば8bit-CPU上でもOSECPU-VMアプリが実行可能です。
    • 「一度プログラムを書いたらそのプログラムはどの環境でも動く」ということはとてもいいことです。単に移植の手間を減らすというだけではなく、移植の際に新しいバグを入れてしまうということも防げるからです。
  • (4) 世界最高のコード密度
    • OSECPU-VMのアプリは、バイナリサイズが驚異的に小さくなる傾向があります。世界一だと思われます。これこそ後世に残しても恥ずかしくないものだと思います。
    • OSECPU-VMと同じくらいセキュアで同じくらいの互換性を持っている別のアーキテクチャがあったとして、アプリがどれもぶくぶくと大きなバイナリサイズだったらどうでしょうか。私たちはスッキリしたものを選んで使うべきではないですか?OSECPU-VMのバイナリよりも大きいということは、まだ何か無駄が残っているということです。無駄なもののためにディスクを浪費し、ネットワーク帯域を浪費して、何かうれしいことがあるでしょうか?
  • (5) 演算速度性能に対する考え方
    • OSECPU-VMは速度を犠牲にして、その代わりに今まで速度のためにあきらめられてきたものの多くを追求しようというものです。ですから速度はそれほどは出ません。しかしJITコンパイラ版ではそれなりの速さが出ます。
    • そもそもコードの1~2割は実行速度に大きく影響しますが、残りは実行速度にほとんど影響しないものです。この残りの8~9割を受け持つのがOSECPU-VMの役割です。実行速度に影響する部分を細心の注意を払ってOSECPU-VM以外の方法で記述して最高性能を出し、それで残りをOSECPU-VMで記述して結合すれば、全体としてフルパワー比でも1~2割くらいしか遅くならないでしょう。開発コストと性能のバランスを考えれば、これがベストではないかとKは思います。
  • (6) その他
    • OSECPU-VMのアプリを作るとき、おかしいことをやってしまってもすぐに教えてくれるので、習得が容易です。わけのわからないバグに悩まされるということが少ないです。ですからその意味でも教育向けといえるかもしれません(もっともアセンブラの教育に向いているかもしれない、という程度ではありますが)。
    • OSECPU-VMの仕様は極力シンプルになっています。過去のアーキテクチャとの互換性などは一切考慮していません。複雑になればOSECPU-VMの移植がやりにくくなって「(3) 互換性」の目的に反します。本当に必要な機能だけを、もっとも使いやすくなるやり方で導入しています。

2014年度の主要なコンテンツ

  • 2013年度のトップページ→page0076
    • rev1(リビジョン1)のことが大体分かります。
  • セキュリティキャンプ2014特設ページ→seccamp2014
  • 開発近況→memo0008,memo0009
  • 2014年度の計画→page0071
  • rev2のバックエンド命令セット→page0072
  • 2014年度版のダウンロードページ→page0074
  • OSECPU-VMアプリの小ささ、動作画面→page0103

このWikiのルール

  • 他人の発言は勝手に書き換えないでください。自分の発言は何度でも修正できます。
    • ただしSPAMっぽいものは数日間様子を見た後で勝手に消してもらってかまいません。
    • SPAM行為によって破壊されたページ内容をバックアップからもとに戻してもらうのも歓迎します(管理者の負担軽減になります)。
    • これらの作業を行った際には、impressionsでの報告をお願いします。
  • このwikiの中にOSECPUに関係するページを作りたくなったときは勝手に作っていいですが、その際にページ名は%が付かないようなものにしてください。たとえば日本語はアウトです。
  • 自分のハンドル名と同名の自己紹介ページを持つこともできます。自己紹介ページに関しては、OSECPUに無関係な内容が書かれていてもかまいません。
    • しかしページ名については同じ縛りがあるので、そういうハンドル名を使う人は自己紹介ページをもてません。
  • 一人の人がOSECPU内で複数のハンドルを持ったり、複数の自己紹介ページを持つことはできません。
  • 何か問題がおきたら管理者であるKが判断します。その際には指示に従っていただきます。
  • その他よくわからないことがあればimpressionsで聞いてください。

こめんと欄

  • このページにこめんと欄はありません。このページの内容にコメントしたいときはimpressionsにお願いします。

トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2014-08-07 (木) 15:05:32 (848d)