<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      ebpf學習筆記(一)——ebpf簡介與環境配置

      參考書:《Learning-eBPF》

      電子書鏈接: Learning-eBPF

      ebpf簡介

      BPF是“Berkeley Packet Filter”的簡稱。它于 1997 年首次引入 Linux(內核版本 2.1.75),在tcpdump中它被用作捕獲要跟蹤的數據包的有效方法。

      最開始BPF確實只用于網絡數據包過濾方面,但隨著技術的應用,大家開始發覺到BPF在其它領域的重要作用。畢竟,誰能拒絕一個能在內核態高效實現程序員所寫的應用程序而不用重新編譯內核的工具呢?

      引用書中對于BPF工作的簡短介紹:

      我們今天所說的“eBPF”起源于 BSD 數據包過濾器,該過濾器于 1993 年在勞倫斯伯克利國家實驗室的 Steven McCanne 和 Van Jacobson 撰寫的一篇論文1 中首次描述。本文討論一種可以運行 filterspseudomachine

      這些程序是用 BPF 指令集編寫的,BPF 指令集是一組通用的 32 位指令,與匯編語言非常相似。下面是一個直接摘自該論文的示例:

        ldh     [12] 
        jeq     #ETHERTYPE IP, L1, L2 
        L1:     ret     #TRUE 
        L2:     ret     #0
      

      這一小段代碼過濾掉不是 Internet 協議(IP)的數據包。此過濾器的輸入是以太網數據包,第一條指令 (**ldh**) 加載從此數據包中的字節 12 開始的 2 字節值。在下一條指令 (**jeq**) 中,將該值與表示 IP 數據包的值進行比較。如果匹配,則執行將跳轉到標記為 **L1** 的指令,并通過返回非零值(此處標識為 **#TRUE**)來接受數據包。如果不匹配,則數據包不是 IP 數據包,并通過返回 0 來拒絕。

      重要的是,過濾器的作者可以編寫自己的自定義程序,以便在內核中執行,這就是 eBPF 的核心功能

      BPF 從 2014 年的內核版本 3.18 開始演變為我們所說的“extend BPF”“eBPF”。現在我們說BPF和eBPF都是指一個東西。(Linux內核代碼里還是采用BPF的名稱)

      在這其中BPF發生重大變化:

      • BPF 指令集經過徹底修改,在 64 位機器上更加高效,解釋器也被完全重寫
      • 引入了 eBPF maps,這是 BPF 程序和用戶空間應用程序可以訪問的數據結構,允許它們在它們之間共享信息。
      • 添加了 bpf() 系統調用,以便用戶空間程序可以與內核中的 eBPF 程序進行交互。
      • 添加了多個 BPF 幫助程序函數。
      • 添加了 eBPF verifier,以確保 eBPF 程序可以安全運行。

      環境配置

      安裝依賴

      sudo apt-get install -y apt-transport-https ca-certificates curl clang llvm jq
      sudo apt-get install -y libelf-dev libpcap-dev libbfd-dev binutils-dev build-essential make 
      sudo apt-get install -y linux-tools-common linux-tools-$(uname -r) 
      sudo apt-get install -y bpfcc-tools
      

      安裝bpftool

      克隆bpftool
      git clone --recurse-submodules https://github.com/libbpf/bpftool.git

      如目錄內沒有libbpf文件夾,需要在克隆目錄內克隆libbpf
      git clone https://github.com/libbpf/libbpf.git

      在系統內安裝libbpf(注意需要使用較新版本的clang,否則編譯libbpf出錯)

      $ cd bpftool/src 
      # make install
      
      posted @ 2025-07-26 15:29  Darkexpeller  閱讀(99)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产亚洲精品成人aa片新蒲金| 又爽又黄无遮挡高潮视频网站| 澳门永久av免费网站| 国产香蕉97碰碰久久人人| 亚洲中文字幕乱码一区| 国产办公室秘书无码精品99| 西充县| 亚洲岛国av一区二区| 玩弄漂亮少妇高潮白浆| 国产不卡一区二区精品| 成年黄页网站大全免费无码| 亚洲精品国产一区二区三区在线观看 | 无码欧亚熟妇人妻AV在线外遇| 国产精品无码av不卡| 97se亚洲综合自在线| 欧美黑人乱大交| 五月丁香激激情亚洲综合| 依依成人精品视频在线观看| 刚察县| 日韩不卡在线观看视频不卡| 精品国偷自产在线视频99| 老妇肥熟凸凹丰满刺激| 久久国产精品老女人| 亚洲第三十四九中文字幕| 骚虎视频在线观看| 国产精品日本一区二区不卡视频| 亚洲av日韩av永久无码电影| 亚洲综合精品第一页| 天天做天天躁天天躁| 色欲综合久久中文字幕网| 国产老熟女乱子一区二区| 欧美怡春院一区二区三区| 亚洲中少妇久久中文字幕| 国产激情艳情在线看视频| 亚洲夜色噜噜av在线观看| 中文字幕日韩精品亚洲一区| 亚洲av永久无码天堂影院| 久久天天躁夜夜躁狠狠820175| 久久精品国产中文字幕| 国产免费午夜福利在线播放| 麻花传媒在线观看免费|