---
# System prepended metadata

title: '1.4 : 透過 eBPF 觀察作業系統行為'
tags: [Linux 核心設計]

---

Linux 核心設計: 透過 eBPF 觀察作業系統行為
===
:::warning
注意！這是上課筆記
:::

:::info
原始課程在這裡
- [影片](https://www.youtube.com/watch?v=UmCnh6mELwA)
- [講義](https://hackmd.io/@sysprog/linux-ebpf?type=view)

Original by [jserv](http://wiki.csie.ncku.edu.tw/User/jserv)
:::

---



| Section | Time| Description |
| -------- | -------- | -------- |
| 1 | [00:00:11](https://youtu.be/UmCnh6mELwA?si=kqRqXcW6sZnqmwQ8&t=11) | 1. 如何學習 Linux kernel. (不要 舉燭，要用系統的方式學習)<br>2. 介紹 「你所不知道的Ｃ語言」<br>3. 介紹 「現代處理器設計」<br>4. 介紹 「手機裡頭的 ARM 處理器」<br>5. 介紹 「作業系統概念與文藝復興」 |
| 2 | [00:24:50](https://youtu.be/UmCnh6mELwA?si=7NQCCSuwxCGBViQf&t=1490) | 1. Dynamic tracing<br>2. 活體分析。<br>3. DTrace / SystemTap / ktap(已經無維護). |
| 3 | [00:41:50](https://youtu.be/UmCnh6mELwA?si=b_EiDLktwAs5qpZE&t=2510) | 1. demo<br>2. 使用 strace 執行時間會變長 |
| 4 | [00:48:00](https://youtu.be/UmCnh6mELwA?si=rc2L75nzzegc0oQO&t=2880) | 1. Linux bcc / BPF Tracing Tools<br>2. Linux 效能分析：perf<br>3. 馬拉松按碼錶 和 百米賽跑按碼錶。<br>4. ptrace |
| 5 | [00:59:09](https://youtu.be/UmCnh6mELwA?si=A4O12jJ2CEtNTkX_&t=3549) | 1. 早期 linux debug 經驗談。<br>2. eBPF is in-kernel virtual machine.<br>3. XDP : 偵測惡意封包<br>4. 奇怪的針灸同事。<br>5. linux elf verifier ：對執行檔做簽章和驗證。 |
| 6 | [01:16:00](https://youtu.be/UmCnh6mELwA?si=NiFXtl6oFSRXFMoS&t=4560) | 1. kprobes : 執行時期安插程式碼, bytecode 在安全的 sandbox 上執行。<br>2. 從封包過濾 的 背景知識開始講起。<br>3. tcpdump<br>4. demo<br>5. 解析封包：ARP / IP / expression / -d / -dd / -ddd |
| 7 | [01:39:13](https://youtu.be/UmCnh6mELwA?si=gRDlWJyo9Rvj5P-z&t=5953) | 1. amacc<br>2. XDP |
| 8 | [01:49:50](https://youtu.be/UmCnh6mELwA?si=gDbVIuW3bKE84doq&t=6590) | 1. BPF JIT compiler<br>2. seccomp : 特定 process 只能呼叫特定 system call。<br>3. cBPF(classical) 和 eBPF(extended) 的差別。 |
| 9 | [01:58:42](https://youtu.be/UmCnh6mELwA?si=9RWlkdzlXF4vLp0S&t=7122) | 1. 強大網友的投影片講解。<br>2. kernel instrumentation : 動態改變 kernel 行為。 |
| 10 | [02:06:13](https://youtu.be/UmCnh6mELwA?si=So3TM6j4wuRfQFvc&t=7573) | 1. SDN / NFV<br>2. 開發工具<br>3. IO Visor Project<br>4. BCC : BPF Compiler Collection |
| 11 | [02:20:00](https://youtu.be/UmCnh6mELwA?si=axQkKE39qkHEX1Mc&t=8400) | 1. Kernel Analysis Using eBPF 的演講<br>2. SystemTap<br>3. BPF bytecode 實驗 |
| 12 | [02:41:30](https://youtu.be/UmCnh6mELwA?si=f8pmfxBw12zBwh0D&t=9690) | 1. clone<br>2. 利用 eBPF 追蹤 clone 系統呼叫的行為。<br>3. 總結 |