seccamp2012 チューター発表

Post on 24-May-2015

14.246 views 3 download

Transcript of seccamp2012 チューター発表

Open DesignComputer Project川田裕貴

自己紹介

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

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

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

コンピューターを作った

魔法のデバイス FPGA

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

主な用途

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

Open DesignComputer Project とは

オープンソース

低消費電力向け

開発ツールが揃っている

FPGAに構築可能

mist32 アーキテクチャ

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

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

アウトオブオーダー実行

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

独自の命令セット

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

アセンブラとバイナリ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

mist32 の位置づけ (目標)

 性能の目安→↑ビット数

セキュリティとか

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

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

NX bit と同等の機能

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

いままで

PDTR

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

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

いろいろできる!

これからのページング

PDTR

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

KPDTR

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

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

開発規模について

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

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

開発環境

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

FPGA に入りきらない...

/(^o^)\

これから...

回路規模の縮小化

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

インオーダーコアの制作

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

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

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

ものの公開場所

Web サイト

http://open-arch.org/

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

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

Verilog HDL 狂の CPU 好きと

OS とかいじってた人が

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

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

さいごに...

ありがとうございました