OSECPU(おせくぷ)のWikiへようこそ
OSECPUとは? (2013.04.26版)
- OSECPUとはセキュアなOSを自作しようというオープンソースプロジェクトです。主要な実装は2013.03.19に始まりました。プロジェクトのリーダは川合秀実(K)です。
- OSASK計画代表 & 「30日でできる!OS自作入門」著者
- セキュリティキャンプ2011-2012「セキュアなOSを作ろうクラス」講師
- 現状のOSECPUはWindows上や(Linux上:予定)で動作するちょっとおかしなOSです(独立したOSにするのは将来的な課題です)。
- OSECPUのアプリは独自のバイトコードで記述され、実行時にはそれがJITコンパイラによってそれぞれのCPUの機械語に翻訳されて実行されます。Javaや.NETと似た方法です。
- これによってCPUの種類に関係なく、アプリは共通になります。
- でもこの仕様になったのはアプリを共通にしたかったからではなくて、セキュリティのためです。
実行画面例 (2013.05.02版)
- 現状のOSECPUにどのくらいのことができるのかを示します。

- この程度の画面を表示して、キー入力に応じてキャラクターを動かす程度のことはできます(簡単なゲームくらいなら作れる)。
- ファイルを処理して結果を出力することもできます(その気になればコンパイラとかも作れる)。
- でもそれ以上のことはまだできません。肝心のセキュリティも十分にはなっていません。
- ちなみにアプリのサイズは、左が70バイトで、右が2359バイトです。
- アプリを実行するためには、osecpu.exe(Windows版)というプログラムが必要で、現在これは11.5KBしかありません。C言語で書かれているのですが1710行です。
- JITコンパイラとしてはかなり小さいと自分では思います。
- この中に、OSECPUの機械語からx86用の機械語を生成して実行する部分と、OSECPUのAPIを処理する部分の両方が入っています。
- 機種依存する部分はこれ以外にはありません。実行速度を犠牲にしてよければ、機種依存部分をもっと小さくすることも可能です。
追加の説明
- 現在バイトコードの仕様は流動的です。
- アプリの機能密度を考慮していないので、アプリはむやみに大きくなる傾向があります。これもいずれは改良します。
- (準備中)
- より詳しい説明は別ページにあります。→ page0000, page0009
もくじ
このWikiのルール
- 他人の発言は勝手に書き換えないでください。自分の発言は何度でも修正できます。
- ただしSPAMっぽいものは数日間様子を見た後で勝手に消してもらってかまいません。
- SPAM行為によって破壊されたページ内容をバックアップからもとに戻してもらうのも歓迎します(管理者の負担軽減になります)。
- これらの作業を行った際には、impressionsでの報告をお願いします。
- このwikiの中にOSECPUに関係するページを作りたくなったときは勝手に作っていいですが、その際にページ名は%が付かないようなものにしてください。たとえば日本語はアウトです。
- 自分のハンドル名と同名の自己紹介ページを持つこともできます。自己紹介ページに関しては、OSECPUに無関係な内容が書かれていてもかまいません。
- しかしページ名については同じ縛りがあるので、そういうハンドル名を使う人は自己紹介ページをもてません。
- 一人の人がOSECPU内で複数のハンドルを持ったり、複数の自己紹介ページを持つことはできません。
- 何か問題がおきたら管理者であるKが判断します。その際には指示に従っていただきます。
- その他よくわからないことがあればimpressionsで聞いてください。
こめんと欄
- このページにこめんと欄はありません。このページの内容にコメントしたいときはimpressionsにお願いします。