Lëshimi i bërthamës Asterinas 0.18, e shkruar në gjuhën Rust dhe e pajtueshme me Linux

Projekti Asterinas 0.18 është lançuar, i cili zhvillon bërthamën e shkruar në gjuhën Rust dhe është e destinuar për t'u përdorur në sisteme operative të qëllimeve të përgjithshme. Bërthama ofron një ABI (Application Binary Interface), e cila është e përputhshme me bërthamën Linux dhe mund të përdoret si një zëvendësim për të. Paralelisht, distribuimi Asterinas NixOS po zhvillohet, që kombinon bërthamën Asterinas me ambientin sistemik NixOS. Kodi i projektit shpërndahet nën licencën MPL (Mozilla Public License).

Aktualisht, bërthama implementon rreth 240 thirrje sistemike të Linux. Në distribuimin Asterinas NixOS, është verifikuar funksionimi mbi bërthamën Asterinas të më shumë se 100 pakove nga NixOS. Ndër paketat e mbështetura janë: Xfce, Firefox, bash, systemd, Podman, QEMU, rsync, Apache httpd, nginx, SQLite, Redis, Clang, GCC, Go, Lua, Node.js, OpenJDK, Perl, PHP, Python, Ruby, Rust, Git, FFmpeg, PyTorch, TensorFlow, Ollama dhe Codex.

Bërthama siguron mbështetje të plotë për arkitekturën x86-64, mbështetje të pjesshme për RISC-V 64 dhe x86-64 me izolim të bazuar në Intel TDX, si dhe mbështetje fillestare për arkitekturën LoongArch 64. Njëra nga fushat prioritare të përdorimit përmend sistemet që janë të lidhura me Linux ABI, por kërkojnë një nivel më të lartë mbrojtjeje. Për shembull, Asterinas rekomandohet për të formuar një ambient sistemik të mbrojtur. makinat virtuale, për izolimin e të cilave përdoren teknologji si ARM CCA, AMD SEV dhe Intel TDX, si dhe në anën e sistemit pritës, i cili siguron ekzekutimin e konteinerëve.

Për të reduktuar probabilitetin e shfaqjes së gabimeve gjatë punës me memorie, që janë burimi kryesor i vulnerabiliteteve më të rrezikshme, në shkruarjen e Asterinas është përdorur gjuha Rust dhe taktika e përdorimit të kufizuar të bllokimeve unsafe. Bërthama është ndërtuar duke përdorur arkitekturën framekernel, në të cilën është përpjekur të kombinohen mundësitë e izolimit të mikro-bërthamave me efikasitetin e bërthamave monolite.

Komponentët e bërthamës në Asterinas vendosen në një hapësirë adresash të përbashkët, ndërsa siguria arrihet në nivelin e ndarjes logjike të kodit të sigurt dhe kodit, në të cilin nuk përjashtohet ndodhia e problemeve me sigurinë. Bërthama është e ndarë në dy pjesë, të shkruara në Rust: OS Framework dhe OS Services. Në OS Services është e ndaluar përdorimi i bllokimeve unsafe, dhe të gjitha operacionet e nivelit të ulët që kërkojnë ekzekutimin e kodit në bllokime unsafe janë transferuar në OS Framework dhe janë të disponueshme vetëm përmes një API të nivelit të lartë. Të gjitha thirrjet sistemike, sistemet e skedarëve dhe drejtuarësit implementohen në nivelin OS Services dhe nuk mund të përfshijnë bllokime unsafe.

Për zhvillimin e shërbimeve sistemore dhe moduleve të bërthamës, ofrohet mjeti OSDK (Operating System Development Kit), i cili siguron utilitarin cargo-osdk për krijimin, ndërtimin, testimin dhe ekzekutimin e komponentëve të sistemit operativ. Për zhvilluesit është përgatitur një grup bibliotekash OSTD (Operating System Standard Library), duke përfshirë një version të bibliotekave standarde të Rust (crate std), të adaptuar për përdorim në komponentët e sistemit operativ.

Mes ndryshimeve në versionin 0.18:

  • NĂ« kuadĂ«r tĂ« punĂ«s pĂ«r tĂ« siguruar funksionimin e Asterinas si njĂ« sistem i ftuar nĂ« VM-konteinerat e Kata Containers dhe Confidential Containers, Ă«shtĂ« realizuar mbĂ«shtetje pĂ«r hapĂ«sirat e emrave IPC dhe cgroup, nsfs (/proc/[pid]/ns), cgroups, virtio-fs (pĂ«r qasje nĂ« sistemin e skedarĂ«ve tĂ« pĂ«rbashkĂ«t me sistemin mikpritĂ«s), virtio-rng (/dev/hwrng pĂ«r entropi nĂ« gjeneratorin e numrave tĂ« rastĂ«sishĂ«m) dhe vsock (pĂ«r ndĂ«rveprimin midis sistemeve mikpritĂ«se dhe ftuese).
  • ËshtĂ« realizuar thirrja e sistemit ptrace dhe mundĂ«sitĂ« pĂ«r debugging nĂ« hapĂ«sirĂ«n e pĂ«rdoruesit duke pĂ«rdorur GDB dhe strace.
  • ËshtĂ« propozuar njĂ« implementim i ri i sistemit tĂ« skedarĂ«ve ext2 dhe Ă«shtĂ« shtuar njĂ« drejtues NVMe. NĂ« VFS Ă«shtĂ« shtuar mekanizmi Dentry (Directory Entry) dhe Ă«shtĂ« rishikuar realizimi i caches sĂ« faqeve.
  • NĂ« distribucionin Asterinas NixOS Ă«shtĂ« realizuar mundĂ«sia pĂ«r tĂ« ekzekutuar Codex, QEMU dhe Firefox.
  • JanĂ« shtuar thirrjet e sistemit pidfd_getfd, pidfd_send_signal, pivot_root.
  • ËshtĂ« shtuar implementimi fillestar mbĂ«shtetje IPv6.
  • ËshtĂ« realizuar sistemi i capabilities pĂ«r delegimin e operacioneve tĂ« veçanta me privilegje.
  • ËshtĂ« shtuar implementimi fillestar i framework-ut LSM (Linux Security Modules).

Burimi: opennet.ru

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