eBPF入門する
この記事はITRC Advent Calendar 2020 の 3 日目の記事です.
前の記事は@site0801 の nested 対応してるクラウド事業者リスト です.
次の記事は@bluekey0725 の TUN モジュールによる Docker のロードエラーと linux カーネル です.
はじめに
この記事は 2020/10/28 - 29 に開催された、eBPF summit の Day 1 の「A Beginner’s Guide to eBPF Programming」の内容を受けて書いています.
eBPF summit の内容は公開されています.
実際に自分の環境で公開されているコードを実行してみました.
環境
- OS: Gnu/Linux Ubuntu20.04
 - Python: 3.8
 
ソースコードはプレゼンを行った lizrice 氏の GitHub にて公開されています.それを使わせていただきました. https://github.com/lizrice/ebpf-beginners
やること
clone システムコールの監視を行います.
ターミナルを2つ開き,1つのターミナルで監視するプログラムを実行,もう1つのターミナルでlsコマンドを実行し、clone システムコールを発行します.
結果
ID 0 が追加されたところが,root ユーザでlsコマンドを実行したところです.
$ sudo python3 ebpf.py
No entries yet
No entries yet
ID 1000: 1
ID 1000: 1
ID 1000: 1
ID 1000: 1
ID 1000: 2
ID 1000: 2	ID 0: 1
ID 1000: 2	ID 0: 1
ID 1000: 2	ID 0: 1
ID 1000: 2	ID 0: 1
ID 1000: 3	ID 0: 1
ID 1000: 6	ID 0: 1
ID 1000: 7	ID 0: 1