eBPF在cloud native好熱門,趁著這個機會來學學eBPF是什麼以及到底怎麼開發,探索現有的eBPF相關專案,例如bcc和cilium。
今天我們要介紹eBPF的另外一個重要組件map,前一天提到trace_printk只適合用在除錯階段,輸出eBPF的執行資訊到user space,然而我們需要...
接續前面的內容,今天我們要來研究怎麼透過map與user space的程式溝通。 和其他eBPF的操作一樣,我們透過bpf的system call去與kerne...
eBPF的基本知識部分來到了第10章,剛好也就是這個部分的最後一章,今天我們要來聊的是tail call的功能。 tail call簡單來說就是在eBPF程式內...
前面兩周的時間我們完成了eBPF基本架構和功能的介紹,接下來一周的時間我們的主題會放在之前在在Day5的範例程式碼有出現過的BCC這個eBPF Project的...
首先bcc的安裝大概有幾種方式 透過各大發行板的套件管理工具安裝 直接使用原始碼編譯安裝 透過docker image執行對於前兩著,bcc官方的文件列舉了需...
我們今天要來看的是tools/tcpconnect.py這支程式。原始碼在這邊。 這隻程式會追蹤紀錄kernel發起的TCP連線 python3 tools/t...
我們接續昨天繼續講tcpconnect的程式碼。 後半部分的eBPG程式碼定義了trace_connect_return,這個函數會被attach到tcp_v4...
我們今天要來看的是bcc的另外一個範例 examples/networking/http_filter/http-parse-simple.py (原始碼)首先...
前一天我們介紹了http-parse-simple,他利用了socket filter的eBPF program來過濾http封包,然而在解析的過程中保留了兩個...
接旭昨天,我們可以更深入的了解一下eBPF對BPF_ABS做了什麼事情,在verifier這個神奇的地方搜尋BPF_ABS這個instruction,會找到下面...