{"id":182796,"date":"2026-08-10T19:41:22","date_gmt":"2026-08-10T17:41:22","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/fil-c-0-682-memory-safety-bez-perepisyvaniya"},"modified":"2026-08-10T19:41:22","modified_gmt":"2026-08-10T17:41:22","slug":"fil-c-0-682-memory-safety-bez-perepisyvaniya","status":"publish","type":"post","link":"https:\/\/prohoster.info\/et\/blog\/novosti-interneta\/fil-c-0-682-memory-safety-bez-perepisyvaniya","title":{"rendered":"Fil-C 0.682 \u2014 m\u00e4luh\u00fcved ilma \u00fcmberkirjutamiseta","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><noindex>          <a rel=\"nofollow\" id=\"memories_button\" href=\"#\" title=\"J\u00e4lgida\"><i class=\"icon-bell\"><\/i><\/a><br \/>2                            <\/p>\n<p>Fil-C 0.682 v\u00e4ljaanne \u2014 C ja C++ kompilaator, mis tagab t\u00e4ieliku m\u00e4lukaitse (memory safety) ja annab suuremad garantiid kui paljud teised keeled, n\u00e4iteks Rust. Projekti arendab Filip Pizlo, kes ei vaja tutvustamist.<\/p>\n<p>Fil-C p\u00f5hineb Clang\/LLVM 20.x koodibaasil ja v\u00f5imaldab kompileerida traditsioonilist C\/C++ koodi, tagades k\u00f5igi peamiste haavatavuste v\u00e4ltimise (out-of-bounds access, use-after-free, double free, type confusion). Erinevalt ASan'ist v\u00f5i MTE'st, kasutab Fil-C rangelt ohutut objekti mudelit ja p\u00f5him\u00f5tteliselt ei sisalda see auke nagu unsafe plokid.<\/p>\n<p>Eelmise aasta jooksul on projekt arenenud kontseptuaalsest t\u00f5estusest t\u00e4ielikuks t\u00f6\u00f6riistaks, millel on suur \u00f6kos\u00fcsteem.<\/p>\n<p><strong>Peamised omadused ja tehnilised detailid:<\/strong><\/p>\n<ul>\n<li><strong>InvisiCaps 2.0 ja Capability mudeli areng:<\/strong> Oluliselt on \u00fcmber t\u00f6\u00f6tatud volituste s\u00fcsteem (capabilities), mis j\u00e4lgivad piiride ja n\u00e4idikute t\u00fc\u00fcpe, muutmata nende 64-bitise suurust C-aadressiruumis. Optimiseeritud on capability talletamine, kulusid on v\u00e4hendatud, samuti on lisatud korrektne tugi union'ile, memcpy'le, aatomsetele operatsioonidele struktuuridega ja mandaadi edastamiseks inline-assembleri kaudu.<\/li>\n<li><strong>Paralleelne pr\u00fcgikoristus (FUGC):<\/strong> Runtime pr\u00fcgikoristaja <em>Fil\u2019i uskumatu pr\u00fcgikoguja<\/em> on lisatud paralleelne kogu, tugi keerukatele objektidele, nagu sulud ja GNU Indirect Function.<\/li>\n<li><strong>ARM64 tugi:<\/strong> Peaaegu nullist on rakendatud back-end, runtime, loader ja ABI ARM64 (Linux\/aarch64) arhitektuurile, projekt on l\u00e4inud beta-testimise faasi sellel platvormil.<\/li>\n<li><strong>Ohutu inline-assembler ja SIMD:<\/strong> On lisatud ainulaadne v\u00f5imalus teostada <strong>ohutuid assembleri sisendeid<\/strong> (sealhulgas assembleri plokid OpenSSL) s\u00e4ilitades volituste kontrolli. On rakendatud t\u00e4ielik tugi vektorialgoritmidele SSE, AVX, AVX2 and AVX512 (sealhulgas masked load\/store, expand\/compress, sfence ja prefetch).<\/li>\n<li><strong>Escape anal\u00fc\u00fcs:<\/strong> Alates versioonist 0.671 on rakendatud staatiline anal\u00fc\u00fcs m\u00e4luleketest staki aladelt. See on olnud aasta suurim optimeerimis muudatus: QuickJS k\u00e4itamise kiirus on kasvanud rohkem kui 6 korda ja enamikul teistest programmidest rohkem kui 10%.<\/li>\n<li><strong>C++ ja kaasaegsete standarditega \u00fchilduvus:<\/strong> C++ v\u00e4ljal\u00fclitamise toetamine, pilveseisundi v\u00f5imalus, ucontext, arvutatud \u00fcleminekud, std::optional ja klassi liikmete n\u00e4itajad.<\/li>\n<li><strong>Kaitse ohtlike UB-optimisatsioonide eest LLVM:<\/strong> Fil-C on sisuliselt keelatud LLVM-i agressiivsed optimisatsioonid, mis tuginevad m\u00e4\u00e4ratlemata k\u00e4itumisele (UB). Erinevalt sellest on ranget aliasingut keelatud ja sisse l\u00fclitatud sarnane -fwrapv, mis takistab kompilatsiooni vale turvavaatluse eemaldamist.<\/li>\n<li><strong>\u00dcleminek LLVM\/Clang 20-le:<\/strong> Kompilaator on viidud Clang 20 koodibaasile (Fil-C versioonist 0.670), mis tagab parema \u00fchilduvuse ja \u00fclekantavuse koodigeneratsioonis.<\/li>\n<li><strong>Linuxi ABI ja j\u00e4rgmise p\u00f5lvkonna FFI laiendamine:<\/strong> On ellu viidud emulatsioon ja turvalised \u00fcmbrikud k\u00fcmnete Linuxi s\u00fcsteemik\u00f5nede (statx, openat2, pidfd, epoll, splice, futex, timer API jne), samuti toeks dlopen, dlvsym, libffi ja FFI-kiht v\u00e4lise koodiga suhtlemiseks.<\/li>\n<li><strong>Uus k\u00f5nede konventsioon ja t\u00f6\u00f6aja API:<\/strong> On optimeeritud funktsioonide k\u00f5ne sisemine ABI \u00fcle, et v\u00e4hendada koormust. Lisatud uued API-d, sealhulgas zlock_runtime_threads() (moodustamiseks rangete liivakastide kinnitamine), samuti sisseehitatud prooviv\u00f5tja profiler ja m\u00e4ludumpt\u00f6\u00f6riistad.<\/li>\n<li><strong>T\u00e4ielik userspace-distro \/opt\/fil:<\/strong> ohutu s\u00fcsteemikeskkond, mis p\u00f5hineb glibc 2.40-l, h\u00f5lmab OpenSSH-d, OpenSSL-i, sudo, git, curl, wget, rsync, tmux, make, grep ja ka s\u00fcsteemiraamatukogusid (PAM, Kerberos, SELinux, ICU).<\/li>\n<\/ul>\n<p>Valmis binaarsed kogumikud jagatakse kahe versioonina: iseseisev musl p\u00f5hinev (filc) ja t\u00e4ielik s\u00fcsteemikeskkond \/opt\/fil arhitektuuridele x86_64 ja ARM64.<\/p>\n<p> <noindex><\/p>\n<p><a rel=\"nofollow\" href=\"https:\/\/github.com\/pizlonator\/fil-c\">Projekti GitHub<\/a><\/p>\n<p><\/noindex> <noindex><\/p>\n<p>Peame m\u00e4rkima, et on olemas ka turvaline m\u00e4ludistro Linux \u2014 <a rel=\"nofollow\" href=\"https:\/\/www.linux.org.ru\/news\/opensource\/18235548\">Pizlix<\/a><\/p>\n<p><\/noindex><\/p>\n<p>Allikas: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.linux.org.ru\/news\/security\/18353368\">linux.org.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>2 \u0421\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u0432\u044b\u043f\u0443\u0441\u043a Fil-C 0.682 \u2014 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 C \u0438 C++, \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u044e\u0449\u0435\u0433\u043e \u043f\u043e\u043b\u043d\u0443\u044e \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043f\u0430\u043c\u044f\u0442\u044c\u044e (memory safety) \u0438 \u0434\u0430\u044e\u0449\u0435\u0433\u043e \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0438 \u0431\u041e\u043b\u044c\u0448\u0438\u0435, \u0447\u0435\u043c \u043c\u043d\u043e\u0433\u0438\u0435 \u0434\u0440\u0443\u0433\u0438\u0435 \u044f\u0437\u044b\u043a\u0438, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, Rust. \u041f\u0440\u043e\u0435\u043a\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0424\u0438\u043b\u0438\u043f\u043e\u043c \u041f\u0438\u0437\u043b\u043e (Filip Pizlo), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u0445 \u043d\u0435 \u043d\u0443\u0436\u0434\u0430\u0435\u0442\u0441\u044f. Fil-C \u043e\u0441\u043d\u043e\u0432\u0430\u043d \u043d\u0430 \u043a\u043e\u0434\u043e\u0432\u043e\u0439 \u0431\u0430\u0437\u0435 Clang\/LLVM 20.x \u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0440\u0430\u0434\u0438\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u043a\u043e\u0434 \u043d\u0430 C\/C++ [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":9,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-182796","post","type-post","status-publish","format-standard","hentry","category-novosti-interneta"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"2 \u0421\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u0432\u044b\u043f\u0443\u0441\u043a Fil-C 0.682 \u2014 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 C \u0438 C++, \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u044e\u0449\u0435\u0433\u043e \u043f\u043e\u043b\u043d\u0443\u044e \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u044b \u0441.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Emin Berklin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/et\/blog\/novosti-interneta\/fil-c-0-682-memory-safety-bez-perepisyvaniya\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.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\udd47Fil-C 0.682 \u2014 memory safety \u0431\u0435\u0437 \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u044b\u0432\u0430\u043d\u0438\u044f | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"2 \u0421\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u0432\u044b\u043f\u0443\u0441\u043a Fil-C 0.682 \u2014 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 C \u0438 C++, \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u044e\u0449\u0435\u0433\u043e \u043f\u043e\u043b\u043d\u0443\u044e \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u044b \u0441.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/blog\/novosti-interneta\/fil-c-0-682-memory-safety-bez-perepisyvaniya\" \/>\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-08-10T17:41:22+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-08-10T17:41:22+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Fil-C 0.682 \u2014 m\u00e4lu ohutus ilma \u00fcmberkirjutamiseta | ProHoster","description":"Fil-C 0.682 v\u00e4ljaanne \u2014 C ja C++ kompilator, tagades t\u00e4ieliku t\u00f6\u00f6ohutuse.","canonical_url":"https:\/\/prohoster.info\/et\/blog\/novosti-interneta\/fil-c-0-682-memory-safety-bez-perepisyvaniya","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\udd47Fil-C 0.682 \u2014 memory safety \u0431\u0435\u0437 \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u044b\u0432\u0430\u043d\u0438\u044f | ProHoster","og:description":"2 \u0421\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u0432\u044b\u043f\u0443\u0441\u043a Fil-C 0.682 \u2014 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 C \u0438 C++, \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u044e\u0449\u0435\u0433\u043e \u043f\u043e\u043b\u043d\u0443\u044e \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u044b \u0441.","og:url":"https:\/\/prohoster.info\/et\/blog\/novosti-interneta\/fil-c-0-682-memory-safety-bez-perepisyvaniya","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-08-10T17:41:22+00:00","article:modified_time":"2026-08-10T17:41:22+00:00","article:publisher":"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\/182796","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\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=182796"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/182796\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=182796"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=182796"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=182796"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}