{"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\/et\/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>Esitletud <strong><a rel=\"nofollow\" href=\"https:\/\/github.com\/multikernel\/kernelscript\">KernelScript<\/a><\/strong> \u2014 eksperimenteeritud programmeerimiskeel eBPF-programmide, kasutajaliidese laadijate ja Linuxi tuuma laienduste arendamiseks \u00fches koodibaasis. Projekt arendab <strong>Multikernel Technologies<\/strong>, ettev\u00f5te, mis tutvustab split-kernel \/ multikernel arhitektuuri Linuxile. KernelScript'i tutvustas ettev\u00f5tte asutaja Cong Wang Linux Foundationi avatud l\u00e4htekoodi tippkohtumisel; projekti kood on avaldatud GitHubis litsentsi alusel <strong>Apache 2.0<\/strong>.<\/p>\n<p><\/noindex><\/noindex><br \/>\n<noindex><\/p>\n<p>eBPF (Extended Berkeley Packet Filter) on tehnoloogia, mis v\u00f5imaldab k\u00e4ivitada v\u00e4ikeseid programme otse Linuxi tuumas, puutumatuks muudetud koodi ja ohustamata s\u00fcsteemi stabiilsust. eBPF aitab lahendada mitmeid \u00fclesandeid, alates j\u00f5udluse j\u00e4lgimisest kuni turvalisuse ja v\u00f5rgu optimeerimiseni. N\u00e4iteks eBPF abil saab j\u00e4lgida s\u00fcsteemik\u00f5nesid, v\u00f5rgu liiklust ja muid s\u00fcndmusi reaalajas. See v\u00f5imaldab leida j\u00f5udluse kitsaskohti ja optimeerida s\u00fcsteemi (<a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/companies\/selectel\/articles\/887272\/\">Habr<\/a>).<\/p>\n<p><\/noindex><\/p>\n<p>KernelScript'i idee on teha eBPF arendamine v\u00e4hem vaevarikka, kui kasutada C + libbpf kombinatsiooni, ning mitte piirduda ainult j\u00e4lgimisega nagu bpftrace. Arendajad kirjeldavad keelt kui t\u00fc\u00fcbisohked DSL, mis \u00fchendab <strong>eBPF<\/strong>, kasutajaliidese ja kernelspace arendust: \u00fchest allikafailist peab kompilaator genereerima koodi eBPF-programmide, userspace osa ja integreerimise jaoks kernel moodulitega kfunc kaudu.<\/p>\n<p>KernelScript'i v\u00e4lja kuulutatud v\u00f5imed:<\/p>\n<ul>\n<li>\n<p><strong>Mitme sihiga kompileerimine \u00fchest failist<\/strong> \u2014 funktsioonid, mille atribuudid n\u00e4evad v\u00e4lja nagu @xdp, @tc, @helper ja @kfunc, suunatakse automaatselt \u00f5igesse ossa: XDP\/TC programmile, helper-funktsioonile, kernel-funktsioonile v\u00f5i tavaliseks userspace koodiks.<\/p>\n<\/li>\n<li>\n<p><strong>Tagaautomaatika tail calls<\/strong> \u2014 selle asemel, et k\u00e4sitsi seadistada program array ja kutsuda bpf_tail_call(), pakuvad arendajad kirjutada tavalisi funktsioonik\u00f5nesid, j\u00e4ttes madala taseme eBPF koodi genereerimise kompilaatori \u00fclesandeks.<\/p>\n<\/li>\n<li>\n<p><strong>Lihtsustatud t\u00f6\u00f6 dynptr ja eBPF kaardiga<\/strong> \u2014 keel varjab osa k\u00e4sitsi t\u00f6\u00f6st bpf_ringbuf_reserve_dynptr, bpf_dynptr_write ja sarnaste API-dega. eBPF kaarte saab kasutada globaalsetena, millele erinevad programmid p\u00e4\u00e4sevad juurde.<\/p>\n<\/li>\n<li>\n<p><strong>Programmide eluts\u00fckli kontroll<\/strong> \u2014 eBPF-programmid on esitatud kui t\u00fc\u00fcbitud v\u00e4\u00e4rtused, mis, autorite kavatsuse kohaselt, peaksid kompilatsiooni etapis ennetama vigu, nagu katse sooritada attach() enne edukat load().<\/p>\n<\/li>\n<li>\n<p><strong>Kfunci tugi<\/strong> \u2014 KernelScript v\u00f5imaldab deklareerida funktsioone @kfunc atribuudi abil, mis k\u00e4ivad tuumaruumi ja mida saab kutsuda eBPF programmidega; nende jaoks lubatakse automaatne kernel mooduli ja BTF registrite genereerimine.<\/p>\n<\/li>\n<li>\n<p><strong>Peamiste eBPF programmide t\u00fc\u00fcpide toimetamine<\/strong> \u2014 README-s on n\u00e4idatud n\u00e4iteid XDP, TC, probe-programmide ja perf_event jaoks, sealhulgas t\u00f6\u00f6tlus seadme j\u00f5udluse arvestitega.<\/p>\n<\/li>\n<\/ul>\n<p>Autorid r\u00f5hutavad eraldi, et KernelScript ei asenda Linuxi kernelit ega ole uus eBPF runtime. See on pigem kompilaator ja tippkeel, mis peaks genereerima tuttavaid madala taseme komponente: eBPF koodi, kasutusruumi laadijaid, Makefile'i ning vajadusel kernel mooduli.<\/p>\n<p>Praegu on projekti m\u00f5istmine varases katsefaasis. Repos on selgelt m\u00e4rgitud, et KernelScript on <strong>beta<\/strong>, s\u00fcntaks ja API v\u00f5ivad muutuda ilma tagasitoe s\u00e4ilitamiseta, ning selle kasutamine tootmises ei ole praegu soovitatav.<\/p>\n<p>Allikas: <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.1.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\/et\/blog\/news\/kernelscript-0-1-0\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\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\/et\/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":"Esitleme KernelScripti \u2014 katseprogramm, mida kasutatakse eBPF programmide arendamiseks.","canonical_url":"https:\/\/prohoster.info\/et\/blog\/news\/kernelscript-0-1-0","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","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\/et\/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\/et\/wp-json\/wp\/v2\/posts\/181745","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=181745"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/181745\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=181745"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=181745"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=181745"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}