ARM勉強会
ARM入門
- ARMv
<X>→ アーキテクチャ - ARM
<X>→ プロセッサー
3 Archs
- A: サーバーとか
- R: リアルタイム
- M: 組み込み
- v8から64bit
- A32mode
- LR: リンクレジスタ特有
- A64mode
- 条件付き ANDEQ
- バレルシフタ
- シンプル
- 16bit命令セット: 組み込み向け
- Arm64
- Ring0 カーネル, Ring3 ユーザー
- Exception Level(4段階)
- EL0 ユーザー EL1
- E用のレジスタがある
- U-Boot: 一般的な組み込み
- UEFI: 有名
VMについて
- CPUの仮想化: 重い
- I/O(ハードウェア)の仮想化 → 仮想化を支援する仕組み
- センシティブ命令: I/Oとか → トラップして代わりにやってもらう
QEMU
PopekとGoldBergの仮想化要件
Arm(AArch 64)
EL0: App
EL1: Guest OS
EL2: (Hyperbiser)上の全てのセンシティブ命令をトラップできる
EL3: (Hardware)
x86: Intel-VT-x: root mode, non-root mode 縦に割る(Ringと直交)
ARM TrustZone 入門
- ITrust Zone = Intel SGXのARM版
- 耐タンパ性: 解析されにくさ
- CPUにより論理的にメモリを分離
ハイパーバイザ自作
- Virtual Box は OS
- DockerはOSの仕組み(オブジェクト)を複製
Appleのサンドボックス
Armv8 Consistency Model
メモリの振る舞い