ARM勉強会

ARM入門

  • ARMv<X> → アーキテクチャ
  • ARM<X> → プロセッサー

3 Archs

  • A: サーバーとか
  • R: リアルタイム
  • M: 組み込み
  • v8から64bit
  • A32mode
    • LR: リンクレジスタ特有
  • A64mode
  • 16bit命令セット: 組み込み向け
  • Arm64
  • Ring0 カーネル, Ring3 ユーザー
  • Exception Level(4段階)
    • EL0 ユーザー EL1
    • E用のレジスタがある
  • U-Boot: 一般的な組み込み

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

メモリの振る舞い