seccamp2012 チューター発表

17
Open Design Computer Project 川田裕貴

Transcript of seccamp2012 チューター発表

Page 1: seccamp2012 チューター発表

Open DesignComputer Project川田裕貴

Page 2: seccamp2012 チューター発表

自己紹介

@hktechno川田 裕貴 (かわた ひろたか)

筑波大学 情報学群 情報科学類 2009年度 AC2011年度 未踏IT人材発掘・育成事業

Open Design Computer Projectソフトウェア開発担当

Page 3: seccamp2012 チューター発表

コンピューターを作った

Page 4: seccamp2012 チューター発表

魔法のデバイス FPGA

自由に回路を書き換え可能な ICハードウェア記述言(HDL)で回路を記述

主な用途

プロトタイプ小ロットのチップ

Page 5: seccamp2012 チューター発表

Open DesignComputer Project とは

オープンソース

低消費電力向け

開発ツールが揃っている

FPGAに構築可能

Page 6: seccamp2012 チューター発表

mist32 アーキテクチャ

ハードウェアとソフトウェアの協調動作

OS を支援する機能をたくさん載せる

アウトオブオーダー実行

回路規模は大きくなるが速くなる

独自の命令セット

アウトオブオーダー実行に最適化

Page 7: seccamp2012 チューター発表

アセンブラとバイナリ00000470 <genrand_int31>:

470: 11 00 03 c0 push rbase

474: 11 00 03 e0 push rret

478: 18 00 03 c0 srspr rbase

47c: 0e e0 03 a0 lih rtmp,0x0

480: 0d 40 47 a0 wl16 rtmp,0x220

484: 20 70 03 e2 movepc rret,8

488: 14 40 03 a0 b rtmp,#al

48c: 08 30 00 01 shr r0,0x1

490: 12 00 03 e0 pop rret

494: 12 00 03 c0 pop rbase

498: 14 40 03 e0 b rret,#al

call

return

32bitaddr

Page 8: seccamp2012 チューター発表

mist32 の位置づけ (目標)

 性能の目安→↑ビット数

Page 9: seccamp2012 チューター発表

セキュリティとか

カーネル空間をページテーブルごと隔離

プロセスページ空間全てにカーネル空間をマップする必要がなくなる

NX bit と同等の機能

ページごとに実行可能フラグを持つ最近はあたりまえ?

Page 10: seccamp2012 チューター発表

いままで

PDTR

ユーザー空間- プロセスごと-----カーネル空間- 割り込みハンドラ- システムコール

カーネル空間は、どのプロセスからも見える

いろいろできる!

Page 11: seccamp2012 チューター発表

これからのページング

PDTR

ユーザー空間- プロセスごと

KPDTR

カーネル空間- 割り込みハンドラ- システムコール

メモリ空間を分離させることができる!不用意にカーネル空間へアクセスされない

Page 12: seccamp2012 チューター発表

開発規模について

MIST1032SAプロセッサ + ペリフェラル

行数 : 81,000行使用LE : 101,800LE

開発環境

GCC : 3,100行binutils(gas, ld) : 1,800行シミュレータ : 1,500行Newlib : 1,000行

Page 13: seccamp2012 チューター発表

FPGA に入りきらない...

/(^o^)\

Page 14: seccamp2012 チューター発表

これから...

回路規模の縮小化

DE2-115 デモボードに乗るようにする

インオーダーコアの制作

とりあえず規模の小さいものも作る

OS をはやく載せられる状態に

GCC のバグつぶし、支援機能テスト

Page 15: seccamp2012 チューター発表

ものの公開場所

Web サイト

http://open-arch.org/

プロセッサhttp://github.com/cpulabs/

ソフトウェアhttp://github.com/techno/

Page 16: seccamp2012 チューター発表

Verilog HDL 狂の CPU 好きと

OS とかいじってた人が

出会うとこんなことができます

仲間は大事です探しましょう出会いは大切に

さいごに...

Page 17: seccamp2012 チューター発表

ありがとうございました