{"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\/sv\/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>Presenteras <strong><a rel=\"nofollow\" href=\"https:\/\/github.com\/multikernel\/kernelscript\">KernelScript<\/a><\/strong> \u2014 ett experimentellt programmeringsspr\u00e5k f\u00f6r utveckling av eBPF-program, anv\u00e4ndarspecifika laddare och k\u00e4rnf\u00f6rl\u00e4ngningar f\u00f6r Linux fr\u00e5n en enda kodbas. Projektet utvecklar <strong>Multikernel Technologies<\/strong>, ett f\u00f6retag som fr\u00e4mjar split-kernel \/ multikernel-arkitekturen f\u00f6r Linux. Grundaren av f\u00f6retaget, Cong Wang, ber\u00e4ttade om KernelScript p\u00e5 Linux Foundation Open Source Summit; projektkoden publicerades p\u00e5 GitHub under licensen <strong>Apache 2.0<\/strong>.<\/p>\n<p><\/noindex><\/noindex><br \/>\n<noindex><\/p>\n<p>eBPF (Extended Berkeley Packet Filter) \u2014 \u00e4r en teknologi som m\u00f6jligg\u00f6r k\u00f6rning av sm\u00e5 program direkt i Linux-k\u00e4rnan utan att beh\u00f6va \u00e4ndra dess kod, vilket skyddar systemets stabilitet. eBPF hj\u00e4lper till att l\u00f6sa m\u00e5nga uppgifter, fr\u00e5n prestanda\u00f6vervakning till s\u00e4kerhets\u00e5tg\u00e4rder och n\u00e4tverksoptimering. Till exempel, med hj\u00e4lp av eBPF kan man sp\u00e5ra systemanrop, n\u00e4tverkstrafik och andra h\u00e4ndelser i realtid. Detta g\u00f6r det m\u00f6jligt att identifiera flaskhalsar i prestanda och optimera systemet (<a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/companies\/selectel\/articles\/887272\/\">Habr<\/a>).<\/p>\n<p><\/noindex><\/p>\n<p>Id\u00e9n med KernelScript \u00e4r att g\u00f6ra utvecklingen av eBPF mindre sm\u00e4rtsam \u00e4n n\u00e4r man anv\u00e4nder kombinationen C + libbpf, samtidigt som man inte begr\u00e4nsas till enbart sp\u00e5rning, som med bpftrace. Utvecklarna beskriver spr\u00e5ket som ett typ-s\u00e4kert DSL som f\u00f6renar <strong>eBPF<\/strong>, anv\u00e4ndarutrymme och kernelspace-utveckling: fr\u00e5n en enda k\u00e4llfil m\u00e5ste kompilatorn generera kod f\u00f6r eBPF-program, anv\u00e4ndarutrymmesdel och integration med k\u00e4rnmoduler via kfunc.<\/p>\n<p>Uttalade funktioner f\u00f6r KernelScript:<\/p>\n<ul>\n<li>\n<p><strong>Kompilering f\u00f6r olika m\u00e5l fr\u00e5n en enda fil<\/strong> \u2014 funktioner med attribut som @xdp, @tc, @helper och @kfunc tilldelas automatiskt den n\u00f6dv\u00e4ndiga delen: XDP\/TC-program, hj\u00e4lpfunktioner, k\u00e4rnfunktioner eller vanlig anv\u00e4ndarkod.<\/p>\n<\/li>\n<li>\n<p><strong>Automatisering av tail calls<\/strong> \u2014 ist\u00e4llet f\u00f6r manuell inst\u00e4llning av programarray och anrop av bpf_tail_call() erbjuds utvecklaren att skriva vanliga anrop till andra funktioner, medan kompilatorn genererar l\u00e5g niv\u00e5 eBPF-kod.<\/p>\n<\/li>\n<li>\n<p><strong>F\u00f6renklad hantering av dynptr och eBPF maps<\/strong> \u2014 spr\u00e5ket d\u00f6ljer en del av det manuella arbetet med bpf_ringbuf_reserve_dynptr, bpf_dynptr_write och liknande API. eBPF-kartor kan anv\u00e4ndas som globala variabler \u00e5tkomliga av olika program.<\/p>\n<\/li>\n<li>\n<p><strong>Livscykelhantering av program<\/strong> \u2014 eBPF-program representeras som typade v\u00e4rden, vilket, enligt f\u00f6rfattarnas avsikt, m\u00f6jligg\u00f6r f\u00f6rhindrande av fel som f\u00f6rs\u00f6k att k\u00f6ra attach() innan en framg\u00e5ngsrik load().<\/p>\n<\/li>\n<li>\n<p><strong>St\u00f6d f\u00f6r kfunc<\/strong> \u2014 KernelScript g\u00f6r det m\u00f6jligt att deklarera funktioner med attributet @kfunc, som k\u00f6rs i k\u00e4rnans utrymme och kan anropas fr\u00e5n eBPF-program; automatisk generering av kernel module och BTF-registreringar lovas f\u00f6r dem.<\/p>\n<\/li>\n<li>\n<p><strong>St\u00f6d f\u00f6r de grundl\u00e4ggande typerna av eBPF-program<\/strong> \u2014 exempel p\u00e5 XDP, TC, probe-program och perf_event visas i README, inklusive arbete med h\u00e5rdvaru prestanda r\u00e4knare.<\/p>\n<\/li>\n<\/ul>\n<p>F\u00f6rfattarna understryker att KernelScript inte \u00e4r en ers\u00e4ttning f\u00f6r Linux-k\u00e4rnan eller en ny eBPF-runtime. Det \u00e4r snarare en kompilator och ett h\u00f6gre niv\u00e5spr\u00e5k som ska generera bekanta l\u00e5gniv\u00e5komponenter: eBPF-kod, userspace-laddare, Makefile och, vid behov, kernel module.<\/p>\n<p>Projektet b\u00f6r fortfarande betraktas som ett tidigt experiment. I arkivet anges klart att KernelScript \u00e4r i ett <strong>beta<\/strong>stadium, d\u00e4r syntax och API kan \u00e4ndras utan att s\u00e4kerst\u00e4lla bak\u00e5tkompatibilitet, och det rekommenderas f\u00f6r n\u00e4rvarande inte att anv\u00e4nda det i produktionsmilj\u00f6er.<\/p>\n<p>K\u00e4lla: <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.4 - 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\/sv\/blog\/news\/kernelscript-0-1-0\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sv_SE\" \/>\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\/sv\/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 har introducerats \u2014 ett experimentellt programmeringsspr\u00e5k f\u00f6r utveckling av eBPF-program.","canonical_url":"https:\/\/prohoster.info\/sv\/blog\/news\/kernelscript-0-1-0","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sv_SE","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\/sv\/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\/sv\/wp-json\/wp\/v2\/posts\/181745","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/comments?post=181745"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/181745\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media?parent=181745"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/categories?post=181745"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/tags?post=181745"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}