KernelScript 0.1.0

Waiho ʻia e KernelScript — he ʻōlelo papahana hoʻokolohua no ka hoʻomohala ʻana i nā polokalamu eBPF, nā mea hoʻouka mea hoʻohana, a me nā hoʻonui kernel Linux mai kahi kumu code hoʻokahi. Ke hoʻomohala ʻia nei ka papahana Nā ʻenehana Multikernel, he hui e hoʻolaha ana i ka hoʻolālā ʻana o ka split-kernel/multikernel no LinuxUa kamaʻilio ka mea nāna i hoʻokumu i ka hui, ʻo Cong Wang, e pili ana iā KernelScript ma Linux Foundation Open Source Summit; ua paʻi ʻia ke code papahana ma GitHub ma lalo o kahi laikini Apache 2.0.


ʻO eBPF (Extended Berkeley Packet Filter) kahi ʻenehana e hiki ai i nā polokalamu liʻiliʻi ke holo pololei i loko o ka kernel. Linux, me ka hoʻopā ʻole ʻana i kāna code a i ʻole e hoʻopilikia i ke kūpaʻa o ka ʻōnaehana. Kōkua ʻo eBPF me nā ʻano hana like ʻole, mai ka nānā ʻana i ka hana a hiki i ka palekana a me ka hoʻonui ʻana i ka pūnaewele. No ka laʻana, hiki iā eBPF ke nānā i nā kelepona ʻōnaehana, ke kaʻa pūnaewele, a me nā hanana ʻē aʻe i ka manawa maoli. Hiki iā ʻoe ke ʻike i nā bottlenecks hana a hoʻonui i kāu ʻōnaehana.Habr).

ʻO ka manaʻo ma hope o KernelScript, ʻo ia ka hoʻolilo ʻana i ka hoʻomohala ʻana o ka eBPF i mea ʻoi aku ka paʻakikī ma mua o ka hoʻohana ʻana i ka hui pū ʻana o C + libbpf, ʻoiai e hele ana ma mua o ka hahai wale ʻana e like me bpftrace. Ua wehewehe nā mea hoʻomohala i ka ʻōlelo ma ke ʻano he DSL palekana e hoʻohui pū ana. ʻO eBPF, ka wahi mea hoʻohana, a me ka hoʻomohala ʻana o ka kernelspace: mai kahi faila kumu hoʻokahi, pono ka mea hōʻuluʻulu e hana i ke code no nā polokalamu eBPF, ka ʻāpana userspace, a me ka hoʻohui ʻana me nā modula kernel ma o kfunc.

Nā mana i hōʻike ʻia e KernelScript:

  • Ke hōʻuluʻulu ʻana no nā kumu like ʻole mai kahi faila hoʻokahi — ua hoʻoili ʻia nā hana me nā ʻano e like me @xdp, @tc, @helper, a me @kfunc i ka ʻāpana kūpono: kahi polokalamu XDP/TC, kahi hana kōkua, kahi hana kernel, a i ʻole ke code userspace maʻamau.

  • Hoʻopaʻa ʻakomi o nā kāhea huelo — ma kahi o ka hoʻonohonoho lima ʻana i ka pūʻulu papahana a me ke kāhea ʻana iā bpf_tail_call(), ua noi ʻia ka mea hoʻomohala e kākau i kahi kāhea maʻamau i kahi hana ʻē aʻe a waiho i ka hana ʻana o ke code eBPF haʻahaʻa i ka mea hōʻuluʻulu.

  • Hana maʻalahi me nā palapala ʻāina dynptr a me eBPF — hūnā ka ʻōlelo i kekahi o nā hana lima me bpf_ringbuf_reserve_dynptr, bpf_dynptr_write, a me nā API like. Hiki ke hoʻohana ʻia nā palapala ʻāina eBPF ma ke ʻano he mau loli honua i hiki ke komo ʻia e nā polokalamu like ʻole.

  • Ka mana o ke ola o ka polokalamu — Hōʻike ʻia nā polokalamu eBPF ma ke ʻano he mau waiwai i paʻi ʻia, kahi, e like me nā mea kākau, e ʻae ai i ka pale ʻana i nā hewa i ka manawa hōʻuluʻulu, e like me ka hoʻāʻo ʻana e hoʻokō i ka attach() ma mua o kahi load() holomua.

  • kākoʻo kfunc — Hiki iā KernelScript iā ʻoe ke haʻi i nā hana me ka hiʻohiʻona @kfunc e hoʻokō ana ma ka hakahaka kernel a hiki ke kāhea ʻia mai nā polokalamu eBPF; ua hoʻohiki ʻia ka hana ʻakomi o ka module kernel a me nā hoʻopaʻa inoa BTF no lākou.

  • Kākoʻo no nā ʻano papahana eBPF nui — Hōʻike ka README i nā laʻana no XDP, TC, nā polokalamu probe, a me perf_event, me ka hana pū ʻana me nā helu hana lako.

Ua hoʻomaopopo pono nā mea kākau ʻaʻole ʻo KernelScript kahi pani no ka kernel. Linux a i ʻole ka manawa holo eBPF hou. ʻOi aku kēia i kahi mea hōʻuluʻulu a me kahi ʻōlelo pae kiʻekiʻe e pono e hoʻopuka i nā ʻāpana pae haʻahaʻa maʻamau: code eBPF, nā mea hoʻouka wahi mea hoʻohana, Makefiles, a, inā pono, kahi module kernel.

I kēia manawa, pono e manaʻo ʻia ka papahana he hoʻokolohua mua. Ua ʻōlelo maopopo ka waihona e aia ʻo KernelScript i ke kahua hoʻomohala. Hoʻokolohua, hiki ke loli ke ʻano hana a me ka API me ka ʻole o ka mālama ʻana i ka hoʻohālikelike hope, a ʻaʻole i ʻōlelo ʻia kona hoʻohana ʻana i ka hana ʻana.

Source: linux.org.ru

E kūʻai i ka hoʻokipa hilinaʻi no nā pūnaewele me ka pale DDoS, nā kikowaena VPS VDS 🔥 E kūʻai i ka hoʻokipa pūnaewele hilinaʻi me ka pale DDoS, nā kikowaena VPS VDS | ProHoster