KernelScript 0.1.0

Xa los ntawm KernelScript — ib hom lus programming sim rau kev tsim cov kev pab cuam eBPF, cov neeg siv loaders, thiab cov kernel extensions Linux los ntawm ib lub hauv paus code. Qhov project no tab tom raug tsim kho Cov Txuj Ci Ntau Lub Kernel, ib lub tuam txhab txhawb nqa kev sib cais-kernel / multikernel architecture rau LinuxTus tsim lub tuam txhab, Cong Wang, tau hais txog KernelScript ntawm Linux Lub Rooj Sab Laj Qhib Qhov Rooj Sib Tham; cov lej ntawm qhov project tau tshaj tawm rau ntawm GitHub raws li daim ntawv tso cai Apache 2.0.


eBPF (Extended Berkeley Packet Filter) yog ib txoj thev naus laus zis uas tso cai rau cov kev pab cuam me me khiav ncaj qha rau hauv lub kernel. Linux, yam tsis kov nws cov lej lossis ua rau lub kaw lus ruaj khov. eBPF pab nrog ntau yam haujlwm, los ntawm kev saib xyuas kev ua tau zoo mus rau kev ruaj ntseg thiab kev txhim kho network. Piv txwv li, eBPF tuaj yeem saib xyuas kev hu xov tooj ntawm lub kaw lus, kev sib txuas lus hauv network, thiab lwm yam xwm txheej hauv lub sijhawm tiag tiag. Qhov no tso cai rau koj txheeb xyuas cov teeb meem kev ua tau zoo thiab txhim kho koj lub kaw lus.Hab).

Lub tswv yim tom qab KernelScript yog ua kom kev tsim kho eBPF tsis mob npaum li siv C + libbpf ua ke, thaum tseem mus dhau qhov kev taug qab zoo li bpftrace. Cov neeg tsim khoom piav qhia cov lus ua hom-nyab xeeb DSL uas sib koom ua ke eBPF ua, userspace, thiab kernelspace kev txhim kho: los ntawm ib qho ntaub ntawv qhov chaw, tus compiler yuav tsum tsim cov code rau eBPF cov kev pab cuam, qhov userspace ib feem, thiab kev koom ua ke nrog cov kernel modules ntawm kfunc.

KernelScript cov peev xwm tau hais tseg:

  • Kev sau ua ke rau ntau lub hom phiaj los ntawm ib daim ntawv xwb — cov haujlwm nrog cov cwj pwm zoo li @xdp, @tc, @helper, thiab @kfunc raug muab faib rau qhov raug: ib qho XDP/TC program, ib qho helper function, ib qho kernel function, lossis ib qho userspace code.

  • Automation ntawm cov lus hu tail — es tsis txhob teeb tsa qhov program array thiab hu rau bpf_tail_call(), tus tsim tawm raug hais kom sau ib qho kev hu tsis tu ncua rau lwm lub luag haujlwm thiab tawm hauv kev tsim cov lej eBPF qis rau tus compiler.

  • Ua haujlwm yooj yim nrog dynptr thiab eBPF maps — cov lus zais qee qhov kev ua haujlwm tes nrog bpf_ringbuf_reserve_dynptr, bpf_dynptr_write, thiab cov API zoo sib xws. eBPF maps tuaj yeem siv ua cov hloov pauv thoob ntiaj teb uas nkag tau los ntawm cov kev pab cuam sib txawv.

  • Kev tswj hwm lub neej ntawm software — Cov kev pab cuam eBPF yog sawv cev ua cov nqi ntaus ntawv, uas, raws li cov kws sau ntawv, tso cai rau kev tiv thaiv qhov yuam kev thaum lub sijhawm sau, xws li sim ua kom tiav attach() ua ntej kev thauj khoom tiav().

  • kev txhawb nqa kfunc — KernelScript tso cai rau koj tshaj tawm cov haujlwm nrog @kfunc attribute uas ua haujlwm hauv kernel qhov chaw thiab tuaj yeem hu los ntawm eBPF cov kev pab cuam; kev tsim cov kernel module thiab BTF kev sau npe tau cog lus rau lawv.

  • Kev txhawb nqa rau cov hom kev pab cuam eBPF loj — README qhia cov piv txwv rau XDP, TC, cov kev pab cuam probe, thiab perf_event, suav nrog kev ua haujlwm nrog cov khoom siv kho vajtse.

Cov kws sau ntawv hais meej tias KernelScript tsis yog qhov hloov pauv rau lub kernel. Linux los yog lub sijhawm khiav eBPF tshiab. Qhov no yog ib qho compiler thiab ib hom lus theem siab uas yuav tsum tsim cov khoom theem qis uas paub zoo: eBPF code, userspace loaders, Makefiles, thiab, yog tias tsim nyog, ib lub kernel module.

Tam sim no, qhov project no yuav tsum raug suav hais tias yog ib qho kev sim thaum ntxov. Lub chaw khaws ntaub ntawv qhia meej tias KernelScript tab tom nyob rau theem kev tsim kho. beta, cov syntax thiab API yuav hloov pauv yam tsis muaj kev sib raug zoo rov qab, thiab nws siv hauv kev tsim khoom tseem tsis tau pom zoo.

Tau qhov twg los: linux.org.ru ua

Yuav txhim khu kev qha hosting rau cov chaw nrog DDoS tiv thaiv, VPS VDS servers 🔥 Yuav lub vev xaib hosting txhim khu kev qha nrog kev tiv thaiv DDoS, VPS VDS servers | ProHoster