seccamp2017
の編集
http://osecpu.osask.jp/wiki/?seccamp2017
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
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
* セキュリティキャンプ2017用の特設ページ -(by [[hikalium]], 2017-04.02) ** セキュアなCPUを自作しよう!〜OSECPU-VMゼミ〜 の基本情報 -セキュリティ・キャンプ全国大会2017の公式ページ: https://www.ipa.go.jp/jinzai/camp/2017/zenkoku2017.html -時間帯: 3日間連続 -概要: --講義「セキュアなCPUを自作しよう」では、2つのゼミがあります。 ---ひとつは「OSECPU-VMゼミ」で、OSECPU-VMをFPGAに移植します。(このページで説明します。) ---もうひとつは「オリジナルCPUゼミ」で、自分で設計したCPUをFPGA上に実装します。(今岡さんが担当します。このページでは説明しません。) -必要機材: PCのみ --FPGAボードは事前学習時に配布する予定です。キャンプ当日も忘れずに持ってきてください! --PCに関しては、Quartus Prime Lite Edition v16.1 が動作するスペックのものが必要です。不安な方は、事前に以下のリンクから動作要件を確認しておいてください。 --http://dl.altera.com/requirements/16.1/ --- OSはWindowsもしくはLinuxであれば問題ありませんが、Macの方は仮想マシン上のLinuxにインストールする必要がありますので、注意してください。 -事前学習: あり --このゼミは、事前学習を非常に重視しています。 ---というのも、キャンプ当日の3日間だけでは、とてもCPUを移植するには時間が足りないからです。 ---事前学習では、一般的なCPUを構成する各回路の設計を学んでから、OSECPUの基本的な実装までを終わらせる予定でいます。 --ですから、事前学習に十分に時間を割ける自信があり、かつ十分なやる気がある人を募集します。 ---キャンプ当日は、実装済みのOSECPUで自作のアプリを走らせたり、機能追加などの改造を行いたいと思います。 ** (0)そもそもOSECPU-VMとは? - OSECPU-VMは、''圧倒的なバイトコード密度''と、''セキュリティを考慮した設計''が特徴の仮想マシンです。 -「30日でできる!OS自作入門」で有名な川合秀実氏(通称Kさん)が設計・開発しました。 - ここOSECPU-Wikiは、その名の通り、OSECPUの情報がまとまったWikiです。 -- しかし、ほとんどの情報は古くなってしまっているので、ここで2017年現在の最新情報をまとめます。とにかく''まずはこのページを読んで下さい''。 *** 圧倒的なバイトコード密度 - HelloWorldというプログラムを書いたことはありますか?そうです。入門書でよく出てくる、あれです。 - みなさんは、HelloWorldのプログラムをどれだけ小さくできると思いますか? -- ちなみに何も考えずにCで書いてMacでコンパイルしたら8KB程度でした。 -- たぶん、"Hello, world"で12文字だから、12バイトよりは大きいでしょう。 - 大抵のみなさんは、小さくても100バイト程度かな、と思うでしょう。 -- 100バイトにするのだって非常に困難です。 -- ちなみに、Linux(x86)では、58バイトで実現できるようです。 --- http://d.hatena.ne.jp/kikx/20061111 -- ここで、OSECPU-VMの場合を見てみましょう。 --- app0110_.ose 05 e2 51 6d 19 76 6c de b1 07 7d fc b6 64 --- OSECPUでは、''たったの&color(red){14バイト};でHelloWorldを表示できます!'' - 「いやいや、きっと文字列表示に特化したCPUなんだろう。他の作業は苦手に違いない。」 -- そんなことはありません! -- マンデルブロ集合:''&color(red){49バイト};'' ~ http://osecpu.osask.jp/download/app0127a.png ~ ~ -- インベーダーゲーム:''&color(red){430バイト};'' ~ http://osecpu.osask.jp/download/invader.png ~ -- ちなみに他のOSでは:はりぼてOS: 1509バイト, win32: 2560バイト ~ - もっと例を知りたいひとは、[[page0103]]を読むと良いでしょう。 -- ちなみに、マンデルブロ集合のプログラムは表示されるまですごく長い時間がかかります! --- 30分くらいかかるそうです(Kさん曰く)。 -- 試す際は辛抱強く待ちましょう。 *** なぜこんなに高密度なアプリが書けるのか - それは、コード体系を多層化し、フロントエンドコードではサイズだけを重視したからです。 -- OSECPU-VMのバイナリには、バックエンドコードとフロントエンドコードの2種類があります。 -- フロントエンドコードは、''サイズをとにかく重視した設計''になっています。 --- 可変長の命令体系なのはもちろん、よく使う整数や命令は短く表現できるようになっています。 --- hh4エンコードの説明: [[page0106]] --- フロントエンドコードの説明: [[page0107]] -- バックエンドコードは、''シンプルさを追求した設計''になっています。 --- 参考:[[page0072]] --- 命令セットがシンプルなため、VMを移植することが容易にできます。 --- 私は実際にJavaScriptに移植しました。 > [https://github.com/hikalium/webcpu-vm webcpu-vm] *** OSECPU-VMとセキュリティ - OSECPU-VMでは、セキュリティについてもバイトコードレベルで考慮されています。 - まず''メモリアドレスを指定してジャンプすること''が''できません!'' -- つまり、あらかじめ決められた位置にしか飛ぶことができないのです。 -- これにより、誤ってデータを実行してしまったり、中途半端な位置からコードを実行してしまうことを防げます。 - さらに''すべてのメモリアクセス''で''型チェックと範囲チェック''が''強制されます!'' -- そもそも、メモリ上の任意のアドレスを読み込む命令自体が存在しません! -- プログラムは「ポインタ」を介してのみメモリにアクセスでき、異なる型としてアクセスしようとしたり、範囲外の領域にアクセスすることはできません。 -- 悪さをしようとすると即座に「''&color(red){セキュリティ例外};''」が発生して実行が止められてしまいます! - これらの機能は、セキュリティだけでなく''バグの発見''にも非常に有効です。 - もっと詳しく知りたい方は[[page0018]]を読んでみてください。 ** (1)講義の概要 *** 講師について - このゼミを主に担当する講師は[[hikalium]]です。 - 併設される「オリジナルCPUゼミ」を主に担当する今岡通博([https://twitter.com/imaoca @imaoca])さんと一緒に、「セキュアなCPUを自作しよう」という講義を担当します。 -- 私は2013年からOSECPU-VMに関わっており、これまでVMのJavaScript向け移植や、OSECPU-VMバイナリを出力するコンパイラを開発してきました。 -- 今や、OSECPU-VMの開発者であるKさんに「OSECPUのことはhikaliumさんに聞いてください。」と言われるほどになりました。 --- なのでみなさん、OSECPU-VMのことは私に任せてください!質問していただければ、すぐに答えます!笑 - また、FPGAの実装に関しては、私以外にも今岡さんがサポートしてくださいます。 -- 今岡さんは、[[FPGAスタートアップ:https://fpgastartup.connpass.com/]]というイベントを主催されている方です。私もスタッフをやっています。 -- 今岡さんはFPGAだけでなく低レイヤ全般について経験豊富な方なので、低レイヤの話題で質問があればぜひ今岡さんに聞いてみてください! - というわけで、受講するみなさんは、サポート体制に関して不安に思う必要は特にありません。 -- いちばん大事なのは、''「OSECPUをFPGAに移植したい!」という熱意です!'' *** OSECPU-VMとセキュリティ・キャンプについて 過去の特集ページは以下のとおりです。(かなり情報が古くなってしまった上に、今回の講義とは内容が異なるので、読まなくてOKです。) - [[seccamp2013]] - [[seccamp2014]] ** (2)キャンプでは何をするのか - このゼミの目標はただ一つ。「OSECPU-VMをFPGAに移植する!」 -- つまり「OSECPU」をつくる!ということです。(もはやVMではない!) --- これ以降「OSECPU」と書かれているときには、FPGA上に実装されたOSECPUであると考えてください。 - なお、事前学習の比率が''それなりに大きい''ことだけは覚悟してください。 *** 事前学習ですること - 事前学習では、まずFPGAに慣れるために、かんたんな組み合わせ回路や順序回路を構成するところから始めます。 - 次に、CPUを構成する上で必要となる各回路(命令デコーダ、ALU、レジスタ)の構成方法を学びます。 - 事前学習の終わりには、こちらの用意したFPGA版OSECPUを実際にFPGAに書き込んで実行してもらいます。 -- このFPGA版OSECPUには、最低限の機能しか実装されていません。これをみなさんが改造して、よりよいOSECPUを開発するのがこの講義の目的の一つです。 *** キャンプ当日にすること - キャンプ本番では、みなさんが自分の手で書き込んだFPGA版OSECPUを用いて、好きなように遊んでください。改造も大歓迎です! -- 例(ほんの一例なのでこれに従う必要は一切ありません!OSECPUを使うならなんでもありです!): --- 簡単なアプリを書いてOSECPU上で実行させてみる --- OSECPUからGPIOを操作できるようにして、OSECPUを用いてLチカを実行する --- 浮動小数点命令に対応してみる --- VGA出力を追加して描画APIを実装する --- パイプラインを実装して実行を高速化する ** (3)セキュリティの話は? - OSECPU-VMはセキュリティを非常に重視した設計になっています。それを命令セットを通して学んでもらえれば十分です。 -- こんな脆弱性があるよ!とか、ここはもっとこうした方がいいのでは?という意見も大歓迎です。ぜひ、自分の手でOSECPUを改造して組み込んでみてください! --- ちなみに、キャンプには設計者のKさんも別の授業の講師として参加されますので、仕様に関して「ここはおかしい!こうしたほうがもっといいのに!」という意見があれば直接ぶつけてみることもできます(笑) - ただし、この講義は「ものづくりトラック」の一部ですから、セキュリティよりも「ものづくり」を重視しています。 -- なので、セキュリティなんてわからないけれどCPUを作りたいんだ!という学生でも全くかまいません! --- たとえそうだとしても、OSECPUの命令セットに触れることで、セキュリティを意識した命令の設計とはどんなものか、わかっていただけると思います。 ** (4)どんな学生に受講してほしいのか - ''一生に1度くらいはCPUを作りたいと思っていた学生'' -- まさにその夢をかなえるのにぴったりな機会です! -''事前学習に時間が取れる学生'' --試験期間(の前後)や修学旅行などの時期は事前学習を完全にお休みしていただいて構いませんが、それ以外は1週間あたり5時間くらいは事前学習に費やしてほしいです。ですからたくさんの塾を掛け持ちしていて忙しくてたまらない、アルバイトが大変すぎる、部活動が大変すぎて時間がない、という人は、申し訳ありませんが他の講義を選択してください。 --手持ちのPCがない人は残念ながら事前学習に取り組めないため、この講義には参加できません。ごめんなさい。また、この講義で使用するソフトウエアはそれなりにCPUパワーとメモリ容量を要求します。ですから、自分のPCの性能に不安がある方は再検討をおすすめします。 -''優秀な学生じゃないとだめですか?'' --もちろん優秀な学生は大歓迎ですが、まだ技術が足りないなあ…と感じている方にもぜひ参加していただきたいです。もしかすると、初心者だからこそ気付けるバグや直したい点がみつかるかもしれませんよ。もちろん、初心者だからといって、こちらも特別扱いはできませんが、自分で解決していける意欲がある方なら誰でも歓迎します! ~ - ''ただCPUをFPGA上に実装するなんてつまらない!'' - ''せっかくCPUをつくれるのだから、これまでにない命令セットのCPUを実装してみたいんだ!'' -- そういったみなさんに、この講義をおすすめします。 * こめんと欄 #comment
タイムスタンプを変更しない
* セキュリティキャンプ2017用の特設ページ -(by [[hikalium]], 2017-04.02) ** セキュアなCPUを自作しよう!〜OSECPU-VMゼミ〜 の基本情報 -セキュリティ・キャンプ全国大会2017の公式ページ: https://www.ipa.go.jp/jinzai/camp/2017/zenkoku2017.html -時間帯: 3日間連続 -概要: --講義「セキュアなCPUを自作しよう」では、2つのゼミがあります。 ---ひとつは「OSECPU-VMゼミ」で、OSECPU-VMをFPGAに移植します。(このページで説明します。) ---もうひとつは「オリジナルCPUゼミ」で、自分で設計したCPUをFPGA上に実装します。(今岡さんが担当します。このページでは説明しません。) -必要機材: PCのみ --FPGAボードは事前学習時に配布する予定です。キャンプ当日も忘れずに持ってきてください! --PCに関しては、Quartus Prime Lite Edition v16.1 が動作するスペックのものが必要です。不安な方は、事前に以下のリンクから動作要件を確認しておいてください。 --http://dl.altera.com/requirements/16.1/ --- OSはWindowsもしくはLinuxであれば問題ありませんが、Macの方は仮想マシン上のLinuxにインストールする必要がありますので、注意してください。 -事前学習: あり --このゼミは、事前学習を非常に重視しています。 ---というのも、キャンプ当日の3日間だけでは、とてもCPUを移植するには時間が足りないからです。 ---事前学習では、一般的なCPUを構成する各回路の設計を学んでから、OSECPUの基本的な実装までを終わらせる予定でいます。 --ですから、事前学習に十分に時間を割ける自信があり、かつ十分なやる気がある人を募集します。 ---キャンプ当日は、実装済みのOSECPUで自作のアプリを走らせたり、機能追加などの改造を行いたいと思います。 ** (0)そもそもOSECPU-VMとは? - OSECPU-VMは、''圧倒的なバイトコード密度''と、''セキュリティを考慮した設計''が特徴の仮想マシンです。 -「30日でできる!OS自作入門」で有名な川合秀実氏(通称Kさん)が設計・開発しました。 - ここOSECPU-Wikiは、その名の通り、OSECPUの情報がまとまったWikiです。 -- しかし、ほとんどの情報は古くなってしまっているので、ここで2017年現在の最新情報をまとめます。とにかく''まずはこのページを読んで下さい''。 *** 圧倒的なバイトコード密度 - HelloWorldというプログラムを書いたことはありますか?そうです。入門書でよく出てくる、あれです。 - みなさんは、HelloWorldのプログラムをどれだけ小さくできると思いますか? -- ちなみに何も考えずにCで書いてMacでコンパイルしたら8KB程度でした。 -- たぶん、"Hello, world"で12文字だから、12バイトよりは大きいでしょう。 - 大抵のみなさんは、小さくても100バイト程度かな、と思うでしょう。 -- 100バイトにするのだって非常に困難です。 -- ちなみに、Linux(x86)では、58バイトで実現できるようです。 --- http://d.hatena.ne.jp/kikx/20061111 -- ここで、OSECPU-VMの場合を見てみましょう。 --- app0110_.ose 05 e2 51 6d 19 76 6c de b1 07 7d fc b6 64 --- OSECPUでは、''たったの&color(red){14バイト};でHelloWorldを表示できます!'' - 「いやいや、きっと文字列表示に特化したCPUなんだろう。他の作業は苦手に違いない。」 -- そんなことはありません! -- マンデルブロ集合:''&color(red){49バイト};'' ~ http://osecpu.osask.jp/download/app0127a.png ~ ~ -- インベーダーゲーム:''&color(red){430バイト};'' ~ http://osecpu.osask.jp/download/invader.png ~ -- ちなみに他のOSでは:はりぼてOS: 1509バイト, win32: 2560バイト ~ - もっと例を知りたいひとは、[[page0103]]を読むと良いでしょう。 -- ちなみに、マンデルブロ集合のプログラムは表示されるまですごく長い時間がかかります! --- 30分くらいかかるそうです(Kさん曰く)。 -- 試す際は辛抱強く待ちましょう。 *** なぜこんなに高密度なアプリが書けるのか - それは、コード体系を多層化し、フロントエンドコードではサイズだけを重視したからです。 -- OSECPU-VMのバイナリには、バックエンドコードとフロントエンドコードの2種類があります。 -- フロントエンドコードは、''サイズをとにかく重視した設計''になっています。 --- 可変長の命令体系なのはもちろん、よく使う整数や命令は短く表現できるようになっています。 --- hh4エンコードの説明: [[page0106]] --- フロントエンドコードの説明: [[page0107]] -- バックエンドコードは、''シンプルさを追求した設計''になっています。 --- 参考:[[page0072]] --- 命令セットがシンプルなため、VMを移植することが容易にできます。 --- 私は実際にJavaScriptに移植しました。 > [https://github.com/hikalium/webcpu-vm webcpu-vm] *** OSECPU-VMとセキュリティ - OSECPU-VMでは、セキュリティについてもバイトコードレベルで考慮されています。 - まず''メモリアドレスを指定してジャンプすること''が''できません!'' -- つまり、あらかじめ決められた位置にしか飛ぶことができないのです。 -- これにより、誤ってデータを実行してしまったり、中途半端な位置からコードを実行してしまうことを防げます。 - さらに''すべてのメモリアクセス''で''型チェックと範囲チェック''が''強制されます!'' -- そもそも、メモリ上の任意のアドレスを読み込む命令自体が存在しません! -- プログラムは「ポインタ」を介してのみメモリにアクセスでき、異なる型としてアクセスしようとしたり、範囲外の領域にアクセスすることはできません。 -- 悪さをしようとすると即座に「''&color(red){セキュリティ例外};''」が発生して実行が止められてしまいます! - これらの機能は、セキュリティだけでなく''バグの発見''にも非常に有効です。 - もっと詳しく知りたい方は[[page0018]]を読んでみてください。 ** (1)講義の概要 *** 講師について - このゼミを主に担当する講師は[[hikalium]]です。 - 併設される「オリジナルCPUゼミ」を主に担当する今岡通博([https://twitter.com/imaoca @imaoca])さんと一緒に、「セキュアなCPUを自作しよう」という講義を担当します。 -- 私は2013年からOSECPU-VMに関わっており、これまでVMのJavaScript向け移植や、OSECPU-VMバイナリを出力するコンパイラを開発してきました。 -- 今や、OSECPU-VMの開発者であるKさんに「OSECPUのことはhikaliumさんに聞いてください。」と言われるほどになりました。 --- なのでみなさん、OSECPU-VMのことは私に任せてください!質問していただければ、すぐに答えます!笑 - また、FPGAの実装に関しては、私以外にも今岡さんがサポートしてくださいます。 -- 今岡さんは、[[FPGAスタートアップ:https://fpgastartup.connpass.com/]]というイベントを主催されている方です。私もスタッフをやっています。 -- 今岡さんはFPGAだけでなく低レイヤ全般について経験豊富な方なので、低レイヤの話題で質問があればぜひ今岡さんに聞いてみてください! - というわけで、受講するみなさんは、サポート体制に関して不安に思う必要は特にありません。 -- いちばん大事なのは、''「OSECPUをFPGAに移植したい!」という熱意です!'' *** OSECPU-VMとセキュリティ・キャンプについて 過去の特集ページは以下のとおりです。(かなり情報が古くなってしまった上に、今回の講義とは内容が異なるので、読まなくてOKです。) - [[seccamp2013]] - [[seccamp2014]] ** (2)キャンプでは何をするのか - このゼミの目標はただ一つ。「OSECPU-VMをFPGAに移植する!」 -- つまり「OSECPU」をつくる!ということです。(もはやVMではない!) --- これ以降「OSECPU」と書かれているときには、FPGA上に実装されたOSECPUであると考えてください。 - なお、事前学習の比率が''それなりに大きい''ことだけは覚悟してください。 *** 事前学習ですること - 事前学習では、まずFPGAに慣れるために、かんたんな組み合わせ回路や順序回路を構成するところから始めます。 - 次に、CPUを構成する上で必要となる各回路(命令デコーダ、ALU、レジスタ)の構成方法を学びます。 - 事前学習の終わりには、こちらの用意したFPGA版OSECPUを実際にFPGAに書き込んで実行してもらいます。 -- このFPGA版OSECPUには、最低限の機能しか実装されていません。これをみなさんが改造して、よりよいOSECPUを開発するのがこの講義の目的の一つです。 *** キャンプ当日にすること - キャンプ本番では、みなさんが自分の手で書き込んだFPGA版OSECPUを用いて、好きなように遊んでください。改造も大歓迎です! -- 例(ほんの一例なのでこれに従う必要は一切ありません!OSECPUを使うならなんでもありです!): --- 簡単なアプリを書いてOSECPU上で実行させてみる --- OSECPUからGPIOを操作できるようにして、OSECPUを用いてLチカを実行する --- 浮動小数点命令に対応してみる --- VGA出力を追加して描画APIを実装する --- パイプラインを実装して実行を高速化する ** (3)セキュリティの話は? - OSECPU-VMはセキュリティを非常に重視した設計になっています。それを命令セットを通して学んでもらえれば十分です。 -- こんな脆弱性があるよ!とか、ここはもっとこうした方がいいのでは?という意見も大歓迎です。ぜひ、自分の手でOSECPUを改造して組み込んでみてください! --- ちなみに、キャンプには設計者のKさんも別の授業の講師として参加されますので、仕様に関して「ここはおかしい!こうしたほうがもっといいのに!」という意見があれば直接ぶつけてみることもできます(笑) - ただし、この講義は「ものづくりトラック」の一部ですから、セキュリティよりも「ものづくり」を重視しています。 -- なので、セキュリティなんてわからないけれどCPUを作りたいんだ!という学生でも全くかまいません! --- たとえそうだとしても、OSECPUの命令セットに触れることで、セキュリティを意識した命令の設計とはどんなものか、わかっていただけると思います。 ** (4)どんな学生に受講してほしいのか - ''一生に1度くらいはCPUを作りたいと思っていた学生'' -- まさにその夢をかなえるのにぴったりな機会です! -''事前学習に時間が取れる学生'' --試験期間(の前後)や修学旅行などの時期は事前学習を完全にお休みしていただいて構いませんが、それ以外は1週間あたり5時間くらいは事前学習に費やしてほしいです。ですからたくさんの塾を掛け持ちしていて忙しくてたまらない、アルバイトが大変すぎる、部活動が大変すぎて時間がない、という人は、申し訳ありませんが他の講義を選択してください。 --手持ちのPCがない人は残念ながら事前学習に取り組めないため、この講義には参加できません。ごめんなさい。また、この講義で使用するソフトウエアはそれなりにCPUパワーとメモリ容量を要求します。ですから、自分のPCの性能に不安がある方は再検討をおすすめします。 -''優秀な学生じゃないとだめですか?'' --もちろん優秀な学生は大歓迎ですが、まだ技術が足りないなあ…と感じている方にもぜひ参加していただきたいです。もしかすると、初心者だからこそ気付けるバグや直したい点がみつかるかもしれませんよ。もちろん、初心者だからといって、こちらも特別扱いはできませんが、自分で解決していける意欲がある方なら誰でも歓迎します! ~ - ''ただCPUをFPGA上に実装するなんてつまらない!'' - ''せっかくCPUをつくれるのだから、これまでにない命令セットのCPUを実装してみたいんだ!'' -- そういったみなさんに、この講義をおすすめします。 * こめんと欄 #comment
テキスト整形のルールを表示する