摘要:
DLL Characteristics DLL Characteristics是Optional Header的一個Word字段。位置處于OptionalHeader+0x46處,即文件偏移+0x16E處 Constant Value Description 0x0001 Reserved, mus
閱讀全文
摘要:
MapReduce 論文《MapReduce: Simplified Data Processing on Large Clusters》筆記 Programming Model 概述 Map-Reduce是一種分布式系統的處理流程 按照論文圖中所示,Map階段實現的是對原始數據(raw data)
閱讀全文
摘要:
The bpf() System Call 正如你在第1章中看到的,當用戶空間應用程序希望內核代表它們執行某些操作時,它們會使用系統調用API發出請求。因此,如果一個用戶空間應用程序想要將一個eBPF程序加載到內核中,必然涉及一些系統調用。實際上,有一個名為bpf()的系統調用,在本章中我將向你展示
閱讀全文
摘要:
Function Calls 在早期,eBPF 程序不允許調用 helper function 以外的函數。為解決這個問題,可以考慮使用“always inline” static __always_inline void my_function(void *ctx, int val) 通過內聯函數
閱讀全文
摘要:
eBPF “Hello World” for a Network Interface 該程序在網絡數據包到達時會寫入一行跟蹤 #include <linux/bpf.h> #include <bpf/bpf_helpers.h> int counter = 0; SEC("xdp") int hel
閱讀全文
摘要:
eBPF Map eBPF map是一類數據結構, 通過一個映射表在多個eBPF程序之間共享數據.當然也包括用戶空間應用程序與內核中運行的eBPF代碼進行通訊。 典型用途 User space寫入要由 eBPF 程序檢索的配置信息 有一個用于存儲state的eBPF程序,其它eBPF可以檢索這個狀態
閱讀全文
摘要:
(英文書看嘛了,我好像在翻譯?) Hello World Code #!/usr/bin/python from bcc import BPF program = r""" int hello(void *ctx) { bpf_trace_printk("Hello World!"); return
閱讀全文
摘要:
參考書:《Learning-eBPF》 電子書鏈接: Learning-eBPF ebpf簡介 BPF是“Berkeley Packet Filter”的簡稱。它于 1997 年首次引入 Linux(內核版本 2.1.75),在tcpdump中它被用作捕獲要跟蹤的數據包的有效方法。 最開始BPF確實
閱讀全文