Hoʻokomo ʻia i loko o ka GCC compiler suite
Ma waho aʻe o kahi backend no ka hanauna bytecode, ua loaʻa iā GCC kahi awa libgcc no ka eBPF a me nā mea hana no ka hana ʻana i nā faila ELF e hiki ai ke hoʻokō i ke code ma ka mīkini virtual eBPF me ka hoʻohana ʻana i nā mea hoʻoili i hāʻawi ʻia i ka kernel. Ua hoʻomākaukau ʻia nā ʻāpana e kākoʻo i ka eBPF ma GCC e nā ʻenekinia mai Oracle, nāna i hana mua
Hiki ke wehewehe ʻia nā papahana no ka eBPF ma kahi ʻāpana o ka ʻōlelo C, i hui ʻia a hoʻouka ʻia i loko o ka kernel. Ma mua o ka hoʻokō ʻana, nānā ka unuhi ʻōlelo eBPF i ka bytecode no ka hoʻohana ʻana i nā ʻōlelo kuhikuhi i ʻae ʻia a kau i kekahi mau lula ma ke code (no ka laʻana, ʻaʻohe puka lou).
I ka wā mua, ua hoʻohana ʻia nā mea hana LLVM e hōʻuluʻulu i ka eBPF ma Linux. He mea hoihoi ke kākoʻo eBPF ma GCC no ka mea hiki iā ʻoe ke hoʻohana i hoʻokahi pahu hana e kūkulu i ka Linux kernel a me nā polokalamu eBPF, me ka ʻole o ka hoʻokomo ʻana i nā mea hilinaʻi hou.
Ma ke ʻano o nā polokalamu eBPF, hiki iā ʻoe ke hana i nā mea lawelawe ʻoihana pūnaewele, kānana kaʻa, hoʻokele i ka bandwidth, nā ʻōnaehana nānā, nā kelepona ʻōnaehana intercept, ka hoʻokele ʻana, helu i ka pinepine a me ka manawa o nā hana, a hana i ka ʻimi ʻana me ka hoʻohana ʻana i nā kprobes/uprobes/tracepoints.
Source: opennet.ru