Linux カーネルと eBPF
カーネルを観察し、eBPF プログラムを自分でロードする
고급 · レッスン 29 · ラボ 9
カリキュラム
ユーザー空間とカーネルの境界
- プログラムはカーネルに頼んで生きている reading
- プログラムがカーネルに何を頼むかを数える lab
- クイズ: ユーザー空間とカーネルの境界 quiz
CPU を分け合うルール
- 使用率グラフに出てこない時間 reading
- CPU を分け合うルールを手で変えてみる lab
- クイズ: CPU を分け合うルール quiz
ページキャッシュと OOM
- MemFree が小さいのは警報ではない reading
- キャッシュはなぜ OOM を起こさないのか lab
- クイズ: ページキャッシュと OOM quiz
名前空間と cgroup で作る箱
- コンテナというカーネルオブジェクトは存在しない reading
- Docker なしでコンテナを作る lab
- クイズ: 名前空間と cgroup quiz
カーネルにもともとある計測器
- 約束された場所と任意の場所 reading
- カーネルの中にすでにある計測器をオンにする lab
- クイズ: カーネルにもともとある計測器 quiz
bpftrace のワンライナー
- 事件が起きた場所で数える reading
- 一行の eBPF で運用の問いに答える lab
- クイズ: bpftrace のワンライナー quiz
ロード・アタッチ・検証器
- 検証器はすべての分かれ道を歩いてみる reading
- 検証器が拒否した理由を一行ずつ読む lab
- クイズ: ロード・アタッチ・検証器 quiz
libbpf と CO-RE
- フィールドの位置ではなく名前を記録する reading
- 一度コンパイルして、どのカーネルでも動く lab
- クイズ: libbpf と CO-RE quiz
XDP と tc
- パケットがソケットバッファになる前に reading
- ドライバの手前でパケットを数えて落とす lab
- クイズ: XDP と tc quiz
止める BPF、seccomp と BPF LSM
- 見る BPF と止める BPF reading
- クイズ: seccomp と BPF LSM quiz