{"id":181745,"date":"2026-05-26T02:49:17","date_gmt":"2026-05-26T00:49:17","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/kernelscript-0-1-0"},"modified":"2026-05-26T02:49:17","modified_gmt":"2026-05-26T00:49:17","slug":"kernelscript-0-1-0","status":"publish","type":"post","link":"https:\/\/prohoster.info\/ro\/blog\/news\/kernelscript-0-1-0","title":{"rendered":"KernelScript 0.1.0","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><noindex>      <noindex><\/p>\n<p>Prezentat <strong><a rel=\"nofollow\" href=\"https:\/\/github.com\/multikernel\/kernelscript\">KernelScript<\/a><\/strong> \u2014 un limbaj experimental de programare pentru dezvoltarea programelor eBPF, bootloaderilor personalizate \u0219i extensiilor kernel Linux dintr-o singur\u0103 baz\u0103 de cod. Proiectul dezvolt\u0103 <strong>Multikernel Technologies<\/strong>, companie care promoveaz\u0103 arhitectura split-kernel \/ multikernel pentru Linux. Cong Wang, fondatorul companiei, a discutat despre KernelScript la Linux Foundation Open Source Summit; codul proiectului este publicat pe GitHub sub licen\u021b\u0103 <strong>Apache 2.0<\/strong>.<\/p>\n<p><\/noindex><\/noindex><br \/>\n<noindex><\/p>\n<p>eBPF (Extended Berkeley Packet Filter) \u2014 este o tehnologie care permite rularea unor programe mici direct \u00een kernel Linux, f\u0103r\u0103 a modifica codul acestuia \u0219i f\u0103r\u0103 a afecta stabilitatea sistemului. eBPF ajut\u0103 la rezolvarea multor probleme, de la monitorizarea performan\u021bei p\u00e2n\u0103 la asigurarea securit\u0103\u021bii \u0219i optimizarea re\u021belei. De exemplu, cu ajutorul eBPF, se pot urm\u0103ri apelurile de sistem, traficul de re\u021bea \u0219i alte evenimente \u00een timp real. Acest lucru permite identificarea blocajelor \u00een performan\u021b\u0103 \u0219i optimizarea sistemului (<a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/companies\/selectel\/articles\/887272\/\">Habr<\/a>).<\/p>\n<p><\/noindex><\/p>\n<p>Ideea KernelScript este de a face dezvoltarea eBPF mai pu\u021bin dureroas\u0103 dec\u00e2t utilizarea combina\u021biei C + libbpf, f\u0103r\u0103 a se limita doar la trasare, a\u0219a cum face bpftrace. Dezvoltatorii descriu limbajul ca fiind un DSL sigur din punct de vedere al tipurilor, care combin\u0103 <strong>eBPF<\/strong>, dezvoltarea \u00een spa\u021biul utilizatorului \u0219i kernelspace: dintr-un singur fi\u0219ier surs\u0103, compilatorul ar trebui s\u0103 genereze cod pentru programele eBPF, partea de userspace \u0219i integrarea cu modulele kernel prin kfunc.<\/p>\n<p>Func\u021bionalit\u0103\u021bile declarate ale KernelScript:<\/p>\n<ul>\n<li>\n<p><strong>Compilare pentru diverse destina\u021bii dintr-un singur fi\u0219ier<\/strong> \u2014 func\u021biile cu atribute precum @xdp, @tc, @helper \u0219i @kfunc sunt automat asociate p\u0103r\u021bii corecte: programului XDP\/TC, func\u021biei helper, func\u021biei kernel sau codului normal din userspace.<\/p>\n<\/li>\n<li>\n<p><strong>Automatizarea apelurilor tail<\/strong> \u2014 \u00een loc de configurarea manual\u0103 a array-ului program \u0219i apelurilor bpf_tail_call(), dezvoltatorului i se propune s\u0103 scrie un apel obi\u0219nuit la o alt\u0103 func\u021bie, l\u0103s\u00e2nd generarea codului eBPF de nivel inferior compilatorului.<\/p>\n<\/li>\n<li>\n<p><strong>Lucru simplificat cu dynptr \u0219i h\u0103r\u021bi eBPF<\/strong> \u2014 limbajul ascunde o parte din munca manual\u0103 cu bpf_ringbuf_reserve_dynptr, bpf_dynptr_write \u0219i API-uri similare. H\u0103r\u021bile eBPF pot fi utilizate ca variabile globale, accesibile din diferite programe.<\/p>\n<\/li>\n<li>\n<p><strong>Controlul ciclului de via\u021b\u0103 al programelor<\/strong> \u2014 programele eBPF sunt reprezentate ca valori tipizate, ceea ce, conform autorilor, permite prevenirea erorilor la etapa de compilare, cum ar fi \u00eencercarea de a efectua attach() \u00eenainte de a \u00eenc\u0103rca cu succes.<\/p>\n<\/li>\n<li>\n<p><strong>Suport pentru kfunc<\/strong> \u2014 KernelScript permite declararea de func\u021bii cu atributul @kfunc, care se execut\u0103 \u00een spa\u021biul nucleului \u0219i pot fi apelate din programele eBPF; pentru acestea este promisa generarea automat\u0103 a modulului kernel \u0219i a \u00eenscrierilor BTF.<\/p>\n<\/li>\n<li>\n<p><strong>Suport pentru principalele tipuri de programe eBPF<\/strong> \u2014 \u00een README sunt prezentate exemple pentru programele XDP, TC, probe \u0219i perf_event, inclusiv lucrul cu contoarele de performan\u021b\u0103 hardware.<\/p>\n<\/li>\n<\/ul>\n<p>Autorii subliniaz\u0103 \u00een mod special c\u0103 KernelScript nu este un \u00eenlocuitor pentru nucleul Linux sau un nou runtime eBPF. Este mai degrab\u0103 un compilator \u0219i un limbaj de nivel \u00eenalt, care ar trebui s\u0103 genereze componentele de baz\u0103 familiare: cod eBPF, \u00eenc\u0103rc\u0103toare pentru userspace, Makefile \u0219i, dac\u0103 este necesar, un modul kernel.<\/p>\n<p>Deocamdat\u0103, proiectul trebuie v\u0103zut ca un experiment timpuriu. \u00cen repository este indicat clar c\u0103 KernelScript se afl\u0103 \u00een stadiul <strong>beta<\/strong>, sintaxa \u0219i API-ul pot suferi modific\u0103ri f\u0103r\u0103 a p\u0103stra compatibilitatea invers\u0103, iar utilizarea sa \u00een produc\u021bie nu este recomandat\u0103 momentan.<\/p>\n<p>Sursa: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.linux.org.ru\/news\/opensource\/18301757\">linux.org.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d KernelScript \u2014 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0439 \u044f\u0437\u044b\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 eBPF-\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c, \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u043e\u0432 \u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439 \u044f\u0434\u0440\u0430 Linux \u0438\u0437 \u0435\u0434\u0438\u043d\u043e\u0439 \u043a\u043e\u0434\u043e\u0432\u043e\u0439 \u0431\u0430\u0437\u044b. \u041f\u0440\u043e\u0435\u043a\u0442 \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u0442 Multikernel Technologies, \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f, \u043f\u0440\u043e\u0434\u0432\u0438\u0433\u0430\u044e\u0449\u0430\u044f \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0443 split-kernel \/ multikernel \u0434\u043b\u044f Linux. \u041e KernelScript \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u043b \u043e\u0441\u043d\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Cong Wang \u043d\u0430 Linux Foundation Open Source Summit; \u043a\u043e\u0434 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u043d\u0430 GitHub \u043f\u043e\u0434 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0435\u0439 Apache 2.0. eBPF (Extended [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":8,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-181745","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d KernelScript \u2014 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0439 \u044f\u0437\u044b\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 eBPF-\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Erik Peterson\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/ro\/blog\/news\/kernelscript-0-1-0\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"ro_RO\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47KernelScript 0.1.0 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d KernelScript \u2014 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0439 \u044f\u0437\u044b\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 eBPF-\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/ro\/blog\/news\/kernelscript-0-1-0\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-05-26T00:49:17+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-05-26T00:49:17+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47KernelScript 0.1.0 | ProHoster","description":"A fost prezentat KernelScript \u2014 un limbaj experimental de programare pentru dezvoltarea programelor eBPF.","canonical_url":"https:\/\/prohoster.info\/ro\/blog\/news\/kernelscript-0-1-0","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"ro_RO","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47KernelScript 0.1.0 | ProHoster","og:description":"\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d KernelScript \u2014 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0439 \u044f\u0437\u044b\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 eBPF-\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c.","og:url":"https:\/\/prohoster.info\/ro\/blog\/news\/kernelscript-0-1-0","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2026-05-26T00:49:17+00:00","article:modified_time":"2026-05-26T00:49:17+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":[],"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/181745","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/comments?post=181745"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/181745\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=181745"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=181745"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=181745"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}