在Linux的Windows子系統(WSL)受到了操作系統的各種用戶的好評之後, 微軟決定從Linux社區借用另一項重要技術,eBPF(伯克利擴展數據包過濾器)並將其帶到Windows。
公司 說這不是eBPF的分支, 是的,它將在現有項目(包括IOVisor uBPF項目和PREVAIL驗證程序)中使用,以在其自己的操作系統(包括Windows 10和Windows Server 2016(或更高版本))上運行eBPF API和程序。
在過去的五年中,微軟在本世紀初仍然將Linux視為計算機行業的癌症,它已成為內核開發的最大貢獻者之一。
使用WSL,他為Windows上的多個應用程序鋪平了道路,使系統管理員和程序員可以直接從Windows使用Linux工具和服務,而無需虛擬化任何其他東西或構建複雜的基礎架構。
現在,Microsoft選擇將eBPF添加到Windows中,如下所示: 這是一項以可編程性和敏捷性著稱的技術, 特別是擴展操作系統內核,以用於諸如DoS攻擊防護和可觀察性之類的用例。
它是基於註冊表的虛擬機 旨在通過Linux內核上的JIT編譯在64位定制RISC架構上運行。 因此,eBPF程序特別適合於系統調試和分析,例如文件系統監視和日誌調用。
已將eBPF與Linux內核的關係與JavaScript與Web頁面的關係進行了比較允許通過加載正在運行的eBPF程序來修改Linux內核的行為,而無需修改內核源代碼或加載內核模塊。
eBPF代表了過去十年中最大的Linux內核創新之一。 並且由於有一些使該技術適應其他操作系統的興趣,因此Microsoft決定嘗試Windows軟件。 這個名為ebpf-for-windows的項目是開源的,可以在GitHub上找到。
“ ebpf-for-windows項目旨在使開發人員能夠在現有Windows版本中使用熟悉的eBPF工具鍊和應用程序編程接口(API),” Dave Thaler在周一的博客中表示,微軟協理軟件工程師和Poorna Gaddehosur,微軟高級軟件工程師。
“基於其他人的工作,該項目採用了幾個現有的開源eBPF項目,並添加了中間層以在Windows之上運行。”
該公司沒有將其稱為eBPF分支。 因此,Windows開發人員將能夠使用clang之類的工具來生成字節碼。
可以插入任何應用程序或與Windows netsh命令行一起使用的源代碼的eBPF。 據該公司稱,這是通過使用Libbpf API的共享庫完成的。
該庫在Windows安全環境中通過PREVAIL傳遞EBPF字節碼,該內核環境允許內核組件信任使用可信密鑰簽名的用戶模式守護程序。
微軟工程師說,該項目旨在使用Linux和Windows上都存在的鉤子和幫助程序為eBPF代碼提供支持。
他們說:``Linux提供了許多鏈接和幫助程序,其中某些鏈接和幫助程序是非常特定於Linux的(例如,使用內部Linux數據結構),不適用於其他平台。''
終於 如果您有興趣了解更多信息, 您可以查看詳細信息 在下面的鏈接中。 對於那些對GitHub上的eBPF存儲庫感興趣的人,他們可以從 以下鏈接。