page0076
の編集
http://osecpu.osask.jp/wiki/?page0076
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
BracketName
FormattingRules
FrontPage
Fulyn
Fulyn-v2
Fulyn_Samples
Help
InterWiki
InterWikiName
InterWikiSandBox
K
KOR_PIT8254
KWVM.NET
Liva
MANA
MenuBar
OSECPU_FPGA
PG_MANA
PHP
PukiWiki
PukiWiki/1.4
PukiWiki/1.4/Manual
PukiWiki/1.4/Manual/Plugin
PukiWiki/1.4/Manual/Plugin/A-D
PukiWiki/1.4/Manual/Plugin/E-G
PukiWiki/1.4/Manual/Plugin/H-K
PukiWiki/1.4/Manual/Plugin/L-N
PukiWiki/1.4/Manual/Plugin/O-R
PukiWiki/1.4/Manual/Plugin/S-U
PukiWiki/1.4/Manual/Plugin/V-Z
RecentDeleted
SandBox
WikiEngines
WikiName
WikiWikiWeb
YukiWiki
hikalium
hikarupsp
hikarupsp_ELCHNOS
hikarupsp_ELCHNOS_IDE
hikarupsp_FrontEndCode
hikarupsp_WebCPU-VM
hikarupsp_WebCPU-VM_internal
hikarupsp_study_hh4
impressions
impressions0000
jpag0000
jpag0001
jpag0002
jpag0003
jpag0004
jpag0005
lambdalice
mandel59
members
memo0000
memo0001
memo0002
memo0003
memo0004
memo0005
memo0006
memo0007
memo0008
memo0009
memo0010
osask
osecpu4android
page0000
page0001
page0002
page0003
page0004
page0005
page0006
page0007
page0008
page0009
page0010
page0011
page0012
page0013
page0014
page0015
page0016
page0017
page0018
page0019
page0020
page0021
page0022
page0023
page0024
page0025
page0026
page0027
page0028
page0029
page0030
page0031
page0032
page0033
page0034
page0035
page0036
page0037
page0038
page0039
page0040
page0041
page0042
page0043
page0044
page0045
page0046
page0047
page0048
page0049
page0050
page0051
page0052
page0053
page0054
page0055
page0056
page0057
page0058
page0059
page0060
page0061
page0062
page0063
page0064
page0065
page0066
page0067
page0068
page0069
page0070
page0071
page0072
page0073
page0074
page0075
page0076
page0077
page0078
page0079
page0080
page0081
page0082
page0083
page0084
page0085
page0086
page0087
page0088
page0089
page0090
page0091
page0092
page0093
page0094
page0095
page0096
page0097
page0098
page0099
page0100
page0101
page0102
page0103
page0104
page0105
page0106
page0107
page0108
page0109
pagenames
populars
seccamp2013
seccamp2014
seccamp2017
ttwilb
ttwilb-asmi
yao
* 2013年度のFrontPageを保管しておくところ -(by [[K]], 2014.05.01) ---- * OSECPU(おせくぷ)のWikiへようこそ -(by [[K]], 2012.09.09) ** OSECPUとは? (2013.08.23版) -OSECPUとはセキュアなOSやVMを自作しようというオープンソースプロジェクトです。主要な実装は2013.03.19に始まりました。プロジェクトのリーダは川合秀実([[K]])です。 --OSASK計画代表 & 「30日でできる!OS自作入門」著者 --セキュリティキャンプ2011-2012「セキュアなOSを作ろうクラス」講師 --セキュリティキャンプ2013-2014「セキュアなシステムを作ろうクラス」講師(クラス長) -現状のOSECPU-VMはWindows上やMacOS上やLinux上で動作します。JavaScript版も開発中です。 -OSECPUのアプリは独自のバイトコードで記述され、実行時にはそれがJITコンパイラによってそれぞれのCPUの機械語に翻訳されて実行されます。Javaや.NETと似た方法です。 --これによってCPUの種類に関係なく、アプリは共通になります。 --でもこの仕様になった決め手はアプリを共通にしたかったからではなくて、セキュリティのためです。 -あなたは機能密度ということを考えたことがありますか? --長いプログラムがたくさんの機能を持っているのは当然です。短いプログラムが単純なことしかできないのも当然です。すばらしいのは、短いプログラムなのにこんなにできるのか!ということだと[[K]]は考えます。この考え方を「機能密度」と言っています。 --プログラムが長いか短いかについてはいくつかの測り方があると思います。ソースプログラムの長さで測ることもできますし、バイナリ(バイトコード)の長さで測ることもできると思います。[[K]]はバイナリ派です。 --また、アプリのサイズが小さくても、OS側のサイズが大きかったら意味がないとも思います。特定のアプリだけが小さくなるような小細工もダメだと思っています。 -OSECPUではセキュアなだけでは面白くないということで、機能密度にも気を配っています。 --目指せ、世界一の機能密度!! → [[page0040]] -''ダウンロードは「追加の説明」のところにあります(下記)'' ** 実行画面例 (2013.08.07版 ver.0.69) -現状のOSECPU-VMにどのくらいのことができるのかを示します。 ~ [A]:http://osecpu.osask.jp/download/app0006a.png [B]:http://osecpu.osask.jp/download/app0010a.png ~ [C]:http://osecpu.osask.jp/download/bball.png --この程度の画面を表示して、キー入力に応じてキャラクターを動かす程度のことはできます(簡単なゲームくらいなら作れる)。 --ファイルを処理して結果を出力することもできます(その気になればコンパイラとかも作れる)。 --でもそれ以上のことはまだできません。 -ちなみにアプリのサイズは、[A]が17バイトで、[B]が284バイトで、[C]が71バイトです。 --[B]のプログラムは今後のバージョンで280バイトに改善予定です。 --[A]のプログラムについては13バイト版のアプリもあります。 -アプリを実行するためには、osecpu.exe(Windows版)というプログラムが必要で、現在これは20.5KBしかありません。 --JITコンパイラとしてはかなり小さいと自分では思います。 --この中に、OSECPUの機械語からx86用の機械語を生成して実行する部分と、OSECPUのAPIを処理する部分の両方が入っています。 --機種依存する部分はこれ以外にはありません。実行速度を犠牲にしてよければ、機種依存部分をもっと小さくすることも可能です。 --アプリの実行には機種依存のないシステムライブラリも必要で、これは現在4.58KBです。これは機種依存を避けるために全てOSECPUのバイトコードで書かれています。 --20.5KB+4.58KB=25.1KBが、このOSのサイズというか実行環境のインストールサイズということになると思います。これはJavaや.NETと比較しても格段に小さいですし、小さいことで定評のあるwabaよりも小さいです。 ** 追加の説明 -OSECPU-VMの入門的なアーカイブ(興味のある人は、まずはこれをダウンロードしてみてください、Windows用です) //--http://osecpu.osask.jp/download/osecpu069r.zip (旧版) //--http://osecpu.osask.jp/download/osecpu078r.zip (新版・準備中) --http://osecpu.osask.jp/download/osecpu078r.zip -たぶんOSECPUは今後何年にもわたって世界最小記録を保持すると思います。 --あなたもOSECPU-VM上でアプリを作って世界記録保持者になりませんか? --もしくはOSECPUの開発を手伝って、栄光を分かち合いませんか? --セキュリティについても勉強できますよ~。 --感想はけいじばんへ→[[impressions]] -''[[seccamp2013]]: セキュリティキャンプ2013特設ページ'' -バイトコードの仕様はまだ少し流動的です。でも大枠は決まった感じがします。 --しかしソースコードは試行錯誤の残骸がたくさんあって、結構ひどい状態です。少しずつ整理します。 -(準備中) -より詳しい説明は別ページにあります。→ [[page0000]], [[page0009]] ** もくじ -[[page0000]]: OSECPUの詳しい説明 -[[page0009]]: OSECPUの基本設計思想 -[[page0018]]: OSECPUはどのくらいセキュアか -[[memo0000]]: [[K]]のOSECPU開発メモ(2012.09.07-2012.10.02) -[[memo0001]]: [[K]]のOSECPU開発メモ(2013.03.12-2013.03.25) -[[memo0002]]: [[K]]のOSECPU開発メモ(2013.03.26-2013.04.10) -[[memo0003]]: [[K]]のOSECPU開発メモ(2013.04.11-2013.04.22) -[[memo0004]]: [[K]]のOSECPU開発メモ(2013.04.23-2013.05.29) -[[memo0005]]: [[K]]のOSECPU開発メモ(2013.05.31-) -[[members]]: 自己紹介ページの目次 -[[impressions]]: けいじばん -[[page0003]]: なぜ仮想CPUを利用することにしたのか? -[[page0005]]: OSECPUが検出できる脆弱性 -[[page0006]]: OSECPUでのポインタの扱い -[[page0007]]: OSECPUでの関数呼び出し -[[page0010]]: エラーの話題 //-[[page0011]]: OSECPUのQ&A -[[page0014]]: JITコンパイラの中身 -[[page0017]]: lbstk01の説明 -[[page0020]]: アクセス権問題について -[[page0021]]: 没ネタ集 -[[page0022]]: 高速化のアイデア -[[page0028]]: OSECPUの歴史 -[[page0032]]: OSECPUの仮想CPUの命令セット -[[page0033]]: OSECPUのアプリはなぜ小さいのか -[[page0034]]: OSECPU Q&A #0000 -[[page0035]]: ''OSECPUへの上手なかかわり方'' [[[Liva]]さんのおすすめ!] -[[page0036]]: ''OSECPU-ASKA入門'' [[[Liva]]さんのおすすめ!] -[[page0040]]: 機能密度に関するおはなし -[[page0042]]: OSECPUのバイトコードコンパイラを作る人へ -[[page0043]]: OSECPUのバイトコードの詳細仕様 -[[page0046]]: OSECPUサイズ最適化テクニック集 -[[page0047]]: OSECPUのfloatサポートとマウスサポートについて -[[page0049]]: OSECPUのjitcというAPIについて -[[page0050]]: OSECPUのセキュリティ -[[page0054]]: アセンブラ短歌のページ -[[page0055]]: OSECPUのラベル命令 -[[page0056]]: 関連開発プロジェクト紹介 -[[page0057]]: OSECPUのデバッグモニタ -[[page0058]]: セキュリティを考えなくてもOSECPUの設計に至る -[[page0059]]: すべてがOSECPUアプリになる? -[[page0062]]: osectolsのfcodeで遊ぶ -[[page0065]]: 更に小さくするために -[[page0066]]: Javaとのサイズ対決 ** このWikiのルール -他人の発言は勝手に書き換えないでください。自分の発言は何度でも修正できます。 --ただしSPAMっぽいものは数日間様子を見た後で勝手に消してもらってかまいません。 --SPAM行為によって破壊されたページ内容をバックアップからもとに戻してもらうのも歓迎します(管理者の負担軽減になります)。 --これらの作業を行った際には、[[impressions]]での報告をお願いします。 -このwikiの中にOSECPUに関係するページを作りたくなったときは勝手に作っていいですが、その際にページ名は%が付かないようなものにしてください。たとえば日本語はアウトです。 -自分のハンドル名と同名の自己紹介ページを持つこともできます。自己紹介ページに関しては、OSECPUに無関係な内容が書かれていてもかまいません。 --しかしページ名については同じ縛りがあるので、そういうハンドル名を使う人は自己紹介ページをもてません。 -一人の人がOSECPU内で複数のハンドルを持ったり、複数の自己紹介ページを持つことはできません。 -何か問題がおきたら管理者である[[K]]が判断します。その際には指示に従っていただきます。 -その他よくわからないことがあれば[[impressions]]で聞いてください。 ** こめんと欄 -このページにこめんと欄はありません。このページの内容にコメントしたいときは[[impressions]]にお願いします。
タイムスタンプを変更しない
* 2013年度のFrontPageを保管しておくところ -(by [[K]], 2014.05.01) ---- * OSECPU(おせくぷ)のWikiへようこそ -(by [[K]], 2012.09.09) ** OSECPUとは? (2013.08.23版) -OSECPUとはセキュアなOSやVMを自作しようというオープンソースプロジェクトです。主要な実装は2013.03.19に始まりました。プロジェクトのリーダは川合秀実([[K]])です。 --OSASK計画代表 & 「30日でできる!OS自作入門」著者 --セキュリティキャンプ2011-2012「セキュアなOSを作ろうクラス」講師 --セキュリティキャンプ2013-2014「セキュアなシステムを作ろうクラス」講師(クラス長) -現状のOSECPU-VMはWindows上やMacOS上やLinux上で動作します。JavaScript版も開発中です。 -OSECPUのアプリは独自のバイトコードで記述され、実行時にはそれがJITコンパイラによってそれぞれのCPUの機械語に翻訳されて実行されます。Javaや.NETと似た方法です。 --これによってCPUの種類に関係なく、アプリは共通になります。 --でもこの仕様になった決め手はアプリを共通にしたかったからではなくて、セキュリティのためです。 -あなたは機能密度ということを考えたことがありますか? --長いプログラムがたくさんの機能を持っているのは当然です。短いプログラムが単純なことしかできないのも当然です。すばらしいのは、短いプログラムなのにこんなにできるのか!ということだと[[K]]は考えます。この考え方を「機能密度」と言っています。 --プログラムが長いか短いかについてはいくつかの測り方があると思います。ソースプログラムの長さで測ることもできますし、バイナリ(バイトコード)の長さで測ることもできると思います。[[K]]はバイナリ派です。 --また、アプリのサイズが小さくても、OS側のサイズが大きかったら意味がないとも思います。特定のアプリだけが小さくなるような小細工もダメだと思っています。 -OSECPUではセキュアなだけでは面白くないということで、機能密度にも気を配っています。 --目指せ、世界一の機能密度!! → [[page0040]] -''ダウンロードは「追加の説明」のところにあります(下記)'' ** 実行画面例 (2013.08.07版 ver.0.69) -現状のOSECPU-VMにどのくらいのことができるのかを示します。 ~ [A]:http://osecpu.osask.jp/download/app0006a.png [B]:http://osecpu.osask.jp/download/app0010a.png ~ [C]:http://osecpu.osask.jp/download/bball.png --この程度の画面を表示して、キー入力に応じてキャラクターを動かす程度のことはできます(簡単なゲームくらいなら作れる)。 --ファイルを処理して結果を出力することもできます(その気になればコンパイラとかも作れる)。 --でもそれ以上のことはまだできません。 -ちなみにアプリのサイズは、[A]が17バイトで、[B]が284バイトで、[C]が71バイトです。 --[B]のプログラムは今後のバージョンで280バイトに改善予定です。 --[A]のプログラムについては13バイト版のアプリもあります。 -アプリを実行するためには、osecpu.exe(Windows版)というプログラムが必要で、現在これは20.5KBしかありません。 --JITコンパイラとしてはかなり小さいと自分では思います。 --この中に、OSECPUの機械語からx86用の機械語を生成して実行する部分と、OSECPUのAPIを処理する部分の両方が入っています。 --機種依存する部分はこれ以外にはありません。実行速度を犠牲にしてよければ、機種依存部分をもっと小さくすることも可能です。 --アプリの実行には機種依存のないシステムライブラリも必要で、これは現在4.58KBです。これは機種依存を避けるために全てOSECPUのバイトコードで書かれています。 --20.5KB+4.58KB=25.1KBが、このOSのサイズというか実行環境のインストールサイズということになると思います。これはJavaや.NETと比較しても格段に小さいですし、小さいことで定評のあるwabaよりも小さいです。 ** 追加の説明 -OSECPU-VMの入門的なアーカイブ(興味のある人は、まずはこれをダウンロードしてみてください、Windows用です) //--http://osecpu.osask.jp/download/osecpu069r.zip (旧版) //--http://osecpu.osask.jp/download/osecpu078r.zip (新版・準備中) --http://osecpu.osask.jp/download/osecpu078r.zip -たぶんOSECPUは今後何年にもわたって世界最小記録を保持すると思います。 --あなたもOSECPU-VM上でアプリを作って世界記録保持者になりませんか? --もしくはOSECPUの開発を手伝って、栄光を分かち合いませんか? --セキュリティについても勉強できますよ~。 --感想はけいじばんへ→[[impressions]] -''[[seccamp2013]]: セキュリティキャンプ2013特設ページ'' -バイトコードの仕様はまだ少し流動的です。でも大枠は決まった感じがします。 --しかしソースコードは試行錯誤の残骸がたくさんあって、結構ひどい状態です。少しずつ整理します。 -(準備中) -より詳しい説明は別ページにあります。→ [[page0000]], [[page0009]] ** もくじ -[[page0000]]: OSECPUの詳しい説明 -[[page0009]]: OSECPUの基本設計思想 -[[page0018]]: OSECPUはどのくらいセキュアか -[[memo0000]]: [[K]]のOSECPU開発メモ(2012.09.07-2012.10.02) -[[memo0001]]: [[K]]のOSECPU開発メモ(2013.03.12-2013.03.25) -[[memo0002]]: [[K]]のOSECPU開発メモ(2013.03.26-2013.04.10) -[[memo0003]]: [[K]]のOSECPU開発メモ(2013.04.11-2013.04.22) -[[memo0004]]: [[K]]のOSECPU開発メモ(2013.04.23-2013.05.29) -[[memo0005]]: [[K]]のOSECPU開発メモ(2013.05.31-) -[[members]]: 自己紹介ページの目次 -[[impressions]]: けいじばん -[[page0003]]: なぜ仮想CPUを利用することにしたのか? -[[page0005]]: OSECPUが検出できる脆弱性 -[[page0006]]: OSECPUでのポインタの扱い -[[page0007]]: OSECPUでの関数呼び出し -[[page0010]]: エラーの話題 //-[[page0011]]: OSECPUのQ&A -[[page0014]]: JITコンパイラの中身 -[[page0017]]: lbstk01の説明 -[[page0020]]: アクセス権問題について -[[page0021]]: 没ネタ集 -[[page0022]]: 高速化のアイデア -[[page0028]]: OSECPUの歴史 -[[page0032]]: OSECPUの仮想CPUの命令セット -[[page0033]]: OSECPUのアプリはなぜ小さいのか -[[page0034]]: OSECPU Q&A #0000 -[[page0035]]: ''OSECPUへの上手なかかわり方'' [[[Liva]]さんのおすすめ!] -[[page0036]]: ''OSECPU-ASKA入門'' [[[Liva]]さんのおすすめ!] -[[page0040]]: 機能密度に関するおはなし -[[page0042]]: OSECPUのバイトコードコンパイラを作る人へ -[[page0043]]: OSECPUのバイトコードの詳細仕様 -[[page0046]]: OSECPUサイズ最適化テクニック集 -[[page0047]]: OSECPUのfloatサポートとマウスサポートについて -[[page0049]]: OSECPUのjitcというAPIについて -[[page0050]]: OSECPUのセキュリティ -[[page0054]]: アセンブラ短歌のページ -[[page0055]]: OSECPUのラベル命令 -[[page0056]]: 関連開発プロジェクト紹介 -[[page0057]]: OSECPUのデバッグモニタ -[[page0058]]: セキュリティを考えなくてもOSECPUの設計に至る -[[page0059]]: すべてがOSECPUアプリになる? -[[page0062]]: osectolsのfcodeで遊ぶ -[[page0065]]: 更に小さくするために -[[page0066]]: Javaとのサイズ対決 ** このWikiのルール -他人の発言は勝手に書き換えないでください。自分の発言は何度でも修正できます。 --ただしSPAMっぽいものは数日間様子を見た後で勝手に消してもらってかまいません。 --SPAM行為によって破壊されたページ内容をバックアップからもとに戻してもらうのも歓迎します(管理者の負担軽減になります)。 --これらの作業を行った際には、[[impressions]]での報告をお願いします。 -このwikiの中にOSECPUに関係するページを作りたくなったときは勝手に作っていいですが、その際にページ名は%が付かないようなものにしてください。たとえば日本語はアウトです。 -自分のハンドル名と同名の自己紹介ページを持つこともできます。自己紹介ページに関しては、OSECPUに無関係な内容が書かれていてもかまいません。 --しかしページ名については同じ縛りがあるので、そういうハンドル名を使う人は自己紹介ページをもてません。 -一人の人がOSECPU内で複数のハンドルを持ったり、複数の自己紹介ページを持つことはできません。 -何か問題がおきたら管理者である[[K]]が判断します。その際には指示に従っていただきます。 -その他よくわからないことがあれば[[impressions]]で聞いてください。 ** こめんと欄 -このページにこめんと欄はありません。このページの内容にコメントしたいときは[[impressions]]にお願いします。
テキスト整形のルールを表示する