包含在 GCC 編譯器套件中
除了用於生成字節碼的後端之外,GCC 還包括用於 eBPF 的 libgcc 連接埠和用於生成 ELF 檔案的工具,這些工具使得可以使用核心提供的載入器在 eBPF 虛擬機器中執行程式碼。 在 GCC 中支援 eBPF 的補丁是由 Oracle 的工程師準備的,他們已經
eBPF 程式可以用 C 語言的子集定義、編譯並載入到核心中。 在執行之前,eBPF 解釋器會檢查字節碼是否使用了允許的指令,並對程式碼施加某些規則(例如,無循環)。
最初,基於 LLVM 的工具用於在 Linux 上編譯 eBPF。 GCC 中的 eBPF 支援很有趣,因為它允許您使用一個工具包來建立 Linux 核心和 eBPF 程序,而無需安裝額外的依賴項。
以 eBPF 程式的形式,您可以建立網路操作處理程序、過濾流量、管理頻寬、監控系統、攔截系統呼叫、控制存取、統計操作的頻率和時間,以及使用 kprobes/uprobes/tracepoints 執行追蹤。
來源: opennet.ru