Fil-C 0.682 — siguria e memories pa shkrimin e ri


2

Lëshimi i Fil-C 0.682 - një kompilator C dhe C++, që siguron një siguri të plotë të punës me kujtesën (memory safety) dhe jep garanci më të larta se shumë gjuhë të tjera, si për shembull, Rust. Projekti po zhvillohet nga Filip Pizlo, i cili nuk ka nevojë për prezantime.

Fil-C është i bazuar në kodin burimor Clang/LLVM 20.x dhe lejon kompilarin kode tradicionale në C/C++ me garancinë e parandalimit të të gjitha dobësive kryesore (out-of-bounds access, use-after-free, double free, type confusion). Ndryshe nga ASan ose MTE, Fil-C përdor një model objektesh të sigurt dhe prinzipialisht nuk përmban të meta si bloket unsafe.

Gjatë vitit të kaluar, projekti ka kaluar nga një provë konceptuale e mundësive në një mjet të plotë me një ekosistem të madh.

Karakteristikat kryesore dhe detajet teknike:

  • InvisiCaps 2.0 dhe zhvillimi i modelit Capability: ËshtĂ« rishikuar ndjeshĂ«m sistemi i autorizimeve (capabilities), qĂ« ndjek kufijtĂ« dhe llojet e treguesve pa e ndryshuar madhĂ«sinĂ« e tyre 64-bit nĂ« hapĂ«sirĂ«n e adresave C. ËshtĂ« optimizuar ruajtja e capability, janĂ« ulur shpenzimet dhe Ă«shtĂ« shtuar mbĂ«shtetje e saktĂ« pĂ«r union, memcpy, operacione atomike me struktura dhe kalimin e mandatoreve pĂ«rmes assemblerit inline.
  • Grumbulluesi paralel i plehrave (FUGC): NĂ« grumbulluesin e plehrave nĂ« kohĂ« ekzekutimi Grumbulluesi i JashtĂ«zakonshĂ«m i Plehrave tĂ« Fil janĂ« shtuar grumbullimi paralel, mbĂ«shtetje pĂ«r objekte tĂ« komplikuara si mbylljet dhe Funkcioni Indirekt GNU.
  • MbĂ«shtetje pĂ«r ARM64: JemĂ« realizuar nga zero njĂ« backend, runtime, ngarkues dhe ABI pĂ«r arkitekturĂ«n ARM64 (Linux/aarch64), projekti ka kaluar nĂ« fazĂ«n e testimit beta nĂ« kĂ«tĂ« platformĂ«.
  • Assembleri i sigurt dhe SIMD: ËshtĂ« shtuar mundĂ«sia unike e ekzekutimit tĂ« copĂ«zave assembleri tĂ« sigurta (duke pĂ«rfshirĂ« blloqet assembleri tĂ« OpenSSL) me ruajtjen e kontrollit tĂ« autorizimeve. ËshtĂ« realizuar mbĂ«shtetje e plotĂ« pĂ«r instruksioneve vektoriale SSE, AVX, AVX2 dhe AVX512 (duke pĂ«rfshirĂ« ngarkim/ruajtje tĂ« maskuar, zgjerim/compression, sfence dhe prefetsh).
  • Analiza e Ikjes: Duke filluar nga versioni 0.671 Ă«shtĂ« implementuar analiza statike e ikjeve tĂ« kujtesĂ«s nga fushat e stack-ut. Kjo Ă«shtĂ« bĂ«rĂ« ndryshimi mĂ« i madh optimizues pĂ«r vitin: shpejtĂ«sia e ekzekutimit tĂ« QuickJS Ă«shtĂ« rritur mĂ« shumĂ« se 6 herĂ«, ndĂ«rsa shumica e programeve tĂ« tjera mbi 10%.
  • Kompatibiliteti me C++ dhe standardet moderne: ËshtĂ« realizuar mbĂ«shtetje pĂ«r pĂ«rjashtime C++, forca e shfuqizimit tĂ« stack-ut, ucontext, kalimet e llogaritura, std::optional dhe treguesit pĂ«r anĂ«tarĂ«t e klasave.
  • Mbrojtja nga optimizimet e rrezikshme UB tĂ« LLVM: Fil-C nĂ« fakt çaktivizoi optimizimet agresive tĂ« LLVM qĂ« varen nga Undefined Behavior (UB). NĂ« veçanti, Ă«shtĂ« detyruar tĂ« çaktivizohet aliasing i rreptĂ« dhe Ă«shtĂ« aktivizuar ekuivalenti -fwrapv, qĂ« parandalon heqjen e papĂ«rshtatshme tĂ« kontrollimeve tĂ« sigurisĂ« nga kompajleri.
  • Kalimi nĂ« LLVM/Clang 20: Kompajleri Ă«shtĂ« transferuar nĂ« bazĂ«n e kodit Clang 20 (nga versioni Fil-C 0.670), qĂ« ka siguruar pĂ«rmirĂ«sim tĂ« pajtueshmĂ«risĂ« dhe portabilitetit tĂ« kodit tĂ« gjeneruar.
  • Zgjerimi i Linux ABI dhe FFI tĂ« brezit tĂ« ri: ËshtĂ« realizuar emulimi dhe mbĂ«shtjellje tĂ« sigurta pĂ«r dhjetĂ«ra thirrje sistemike nĂ« Linux (statx, openat2, pidfd, epoll, splice, futex, timer API etj.), si dhe mbĂ«shtetje pĂ«r dlopen, dlvsym, libffi dhe layer-in FFI pĂ«r ndĂ«rveprimin me kodin e jashtĂ«m.
  • Kongres i ri i thirrjeve dhe API i runtime: ABI i brendshĂ«m i thirrjes sĂ« funksioneve Ă«shtĂ« optimizuar pĂ«r tĂ« reduktuar overhead-in. JanĂ« shtuar API tĂ« reja, pĂ«rfshirĂ« zlock_runtime_threads() (ngritja e thread-eve pĂ«r ndĂ«rtimin e sandviçeve strikte), si dhe profiler-i i thjeshtĂ« i sampling dhe mjete pĂ«r dump-in e memories.
  • NjĂ« distribucion i plotĂ« userspace /opt/fil: njĂ« ambient sistemor i sigurt i bazuar nĂ« glibc 2.40, duke pĂ«rfshirĂ« OpenSSH, OpenSSL, sudo, git, curl, wget, rsync, tmux, make, grep, si dhe bibliotekat sistemore (PAM, Kerberos, SELinux, ICU).

Versionet binare të gatshme shpërndahen në dy variante: autonome të bazuara në musl (filc) dhe një ambient të plotë sistemor /opt/fil për arkitekturën x86_64 dhe ARM64.

GitHub projekti

Gjithashtu tĂ« theksojmĂ« se ekziston edhe njĂ« distribucion Linux i sigurt pĂ«r memorien — Pizlix

Burimi: linux.org.ru

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster