{"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\/fr\/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>Pr\u00e9sent\u00e9 <strong><a rel=\"nofollow\" href=\"https:\/\/github.com\/multikernel\/kernelscript\">KernelScript<\/a><\/strong> \u2014 un langage de programmation exp\u00e9rimental pour le d\u00e9veloppement de programmes eBPF, de chargeurs personnalis\u00e9s et d'extensions du noyau Linux \u00e0 partir d'une seule base de code. Le projet est d\u00e9velopp\u00e9 <strong>Multikernel Technologies<\/strong>, une soci\u00e9t\u00e9 qui promeut l'architecture split-kernel \/ multikernel pour Linux. Cong Wang, le fondateur de la soci\u00e9t\u00e9, a pr\u00e9sent\u00e9 KernelScript lors du Linux Foundation Open Source Summit; le code du projet est publi\u00e9 sur GitHub sous licence <strong>Apache 2.0<\/strong>.<\/p>\n<p><\/noindex><\/noindex><br \/>\n<noindex><\/p>\n<p>eBPF (Extended Berkeley Packet Filter) \u2014 une technologie qui permet d'ex\u00e9cuter de petits programmes directement dans le noyau Linux, sans toucher \u00e0 son code et sans compromettre la stabilit\u00e9 du syst\u00e8me. eBPF aide \u00e0 r\u00e9soudre de nombreux probl\u00e8mes, allant de la surveillance des performances \u00e0 la s\u00e9curit\u00e9 et \u00e0 l'optimisation r\u00e9seau. Par exemple, gr\u00e2ce \u00e0 eBPF, il est possible de suivre les appels syst\u00e8me, le trafic r\u00e9seau et d'autres \u00e9v\u00e9nements en temps r\u00e9el. Cela permet d'identifier les goulets d'\u00e9tranglement en mati\u00e8re de performances et d'optimiser le syst\u00e8me (<a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/companies\/selectel\/articles\/887272\/\">Habr<\/a>).<\/p>\n<p><\/noindex><\/p>\n<p>L'id\u00e9e de KernelScript est de rendre le d\u00e9veloppement eBPF moins douloureux qu'en utilisant une combinaison C + libbpf, tout en ne se limitant pas seulement au tra\u00e7age, comme avec bpftrace. Les d\u00e9veloppeurs d\u00e9crivent le langage comme un DSL typ\u00e9 s\u00e9curis\u00e9, qui combine <strong>eBPF<\/strong>, le d\u00e9veloppement dans l'espace utilisateur et dans l'espace noyau : \u00e0 partir d'un seul fichier source, le compilateur doit g\u00e9n\u00e9rer du code pour les programmes eBPF, la partie espace utilisateur et l'int\u00e9gration avec les modules du noyau via kfunc.<\/p>\n<p>Fonctionnalit\u00e9s d\u00e9clar\u00e9es de KernelScript :<\/p>\n<ul>\n<li>\n<p><strong>Compilation pour diff\u00e9rentes cibles \u00e0 partir d'un seul fichier<\/strong> \u2014 les fonctions avec des attributs comme @xdp, @tc, @helper et @kfunc sont automatiquement attribu\u00e9es \u00e0 la partie n\u00e9cessaire : programme XDP\/TC, fonction helper, fonction du noyau ou code de l'espace utilisateur ordinaire.<\/p>\n<\/li>\n<li>\n<p><strong>Automatisation des appels de queue<\/strong> \u2014 au lieu d'une configuration manuelle du tableau de programmes et des appels \u00e0 bpf_tail_call(), on propose aux d\u00e9veloppeurs d'\u00e9crire un simple appel \u00e0 une autre fonction, laissant la g\u00e9n\u00e9ration de code eBPF de bas niveau au compilateur.<\/p>\n<\/li>\n<li>\n<p><strong>Travail simplifi\u00e9 avec dynptr et cartes eBPF<\/strong> \u2014 le langage cache une partie du travail manuel avec bpf_ringbuf_reserve_dynptr, bpf_dynptr_write et des API similaires. Les cartes eBPF peuvent \u00eatre utilis\u00e9es comme des variables globales accessibles par diff\u00e9rents programmes.<\/p>\n<\/li>\n<li>\n<p><strong>Contr\u00f4le du cycle de vie des programmes<\/strong> \u2014 les programmes eBPF sont repr\u00e9sent\u00e9s comme des valeurs typ\u00e9es, ce qui, selon les auteurs, permet de pr\u00e9venir lors de la compilation des erreurs comme la tentative d'ex\u00e9cuter attach() avant un chargement r\u00e9ussi.<\/p>\n<\/li>\n<li>\n<p><strong>Support de kfunc<\/strong> \u2014 KernelScript permet de d\u00e9clarer des fonctions avec l'attribut @kfunc, qui s'ex\u00e9cutent dans l'espace noyau et peuvent \u00eatre appel\u00e9es depuis des programmes eBPF ; pour elles, la g\u00e9n\u00e9ration automatique des modules du noyau et des enregistrements BTF est promise.<\/p>\n<\/li>\n<li>\n<p><strong>Support des principaux types de programmes eBPF<\/strong> \u2014 le README pr\u00e9sente des exemples pour XDP, TC, les programmes probe et perf_event, y compris le travail avec des compteurs de performance mat\u00e9riels.<\/p>\n<\/li>\n<\/ul>\n<p>Les auteurs soulignent s\u00e9par\u00e9ment que KernelScript n'est pas un substitut au noyau Linux ou un nouvel environnement d'ex\u00e9cution eBPF. C'est plut\u00f4t un compilateur et un langage de haut niveau qui doit g\u00e9n\u00e9rer des composants bas niveau familiers : le code eBPF, des chargeurs d'espace utilisateur, un Makefile et, si n\u00e9cessaire, un module du noyau.<\/p>\n<p>Pour l'instant, le projet doit \u00eatre consid\u00e9r\u00e9 comme une exp\u00e9rience pr\u00e9coce. Le d\u00e9p\u00f4t indique clairement que KernelScript est en phase <strong>beta<\/strong>, la syntaxe et l'API peuvent changer sans conserver de compatibilit\u00e9 ascendante, et son utilisation en production n'est pas encore recommand\u00e9e.<\/p>\n<p>Source : <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 - 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\/fr\/blog\/news\/kernelscript-0-1-0\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\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\/fr\/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":"KernelScript a \u00e9t\u00e9 pr\u00e9sent\u00e9 \u2014 un langage de programmation exp\u00e9rimental pour le d\u00e9veloppement de programmes eBPF.","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/news\/kernelscript-0-1-0","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"fr_FR","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\/fr\/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\/fr\/wp-json\/wp\/v2\/posts\/181745","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/comments?post=181745"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/181745\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=181745"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=181745"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=181745"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}