ИздаванС Π½Π° ядрото Asterinas 0.18, написано Π½Π° Rust ΠΈ ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎ с Linux

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π΅Π½ Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΡŠΡ‚ Asterinas вСрсия 0.18, ΠΊΠΎΠΉΡ‚ΠΎ Ρ€Π°Π·Π²ΠΈΠ²Π° ядро, написано Π½Π° Π΅Π·ΠΈΠΊΠ° Rust ΠΈ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΎ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π² ΠΎΠ±Ρ‰ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈ систСми. Π―Π΄Ρ€ΠΎ прСдоставя ABI (Application Binary Interface), ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎ с ядрото Π½Π° Linux ΠΈ способно Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° вмСсто Π½Π΅Π³ΠΎ. ΠŸΠ°Ρ€Π°Π»Π΅Π»Π½ΠΎ сС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π° Π΄ΠΈΡΡ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΈΠ²ΡŠΡ‚ Asterinas NixOS, ΠΊΠΎΠΉΡ‚ΠΎ ΡΡŠΡ‡Π΅Ρ‚Π°Π²Π° ядрото Asterinas с систСмната срСда NixOS. ΠšΠΎΠ΄ΡŠΡ‚ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° сС разпространява ΠΏΠΎΠ΄ лицСнзия MPL (Mozilla Public License).

Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π² ядрото са Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ ΠΎΠΊΠΎΠ»ΠΎ 240 систСмни извиквания Π½Π° Linux. Π’ дистрибутива Asterinas NixOS Π΅ Π²Π΅Ρ€ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° Π½Π°Π΄ 100 ΠΏΠ°ΠΊΠ΅Ρ‚Π°, Π±Π°Π·ΠΈΡ€Π°Π½ΠΈ Π½Π° ядрото Asterinas, ΠΎΡ‚ NixOS. Π‘Ρ€Π΅Π΄ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Π½ΠΈΡ‚Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ са: 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 ΠΈ Codex.

Π―Π΄Ρ€ΠΎΡ‚ΠΎ осигурява пълна ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° x86-64, частична ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° RISC-V 64 ΠΈ x86-64 с изолация, Π±Π°Π·ΠΈΡ€Π°Π½Π° Π½Π° Intel TDX, Π° ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° ΠΈ Π½Π°Ρ‡Π°Π»Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° LoongArch 64. ΠŸΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π½ΠΈ области Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ са систСмитС, ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с Linux ABI, Π½ΠΎ изискващи ΠΏΠΎ-високо Π½ΠΈΠ²ΠΎ Π½Π° Π·Π°Ρ‰ΠΈΡ‚Π°. НапримСр, Asterinas ΠΏΡ€Π΅Π΄Π»Π°Π³Π° Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° систСмни срСди Π·Π° Π·Π°Ρ‰ΠΈΡ‚Π΅Π½ΠΈ, Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½ΠΈ машини, ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΊΠ°Ρ‚ΠΎ ARM CCA, AMD SEV ΠΈ Intel TDX, Π° ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° ΠΈ отстрана Π½Π° хост-систСмата, осигуряваща стартиранС Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ.

Π—Π° намаляванС Π½Π° вСроятността ΠΎΡ‚ Π³Ρ€Π΅ΡˆΠΊΠΈ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° с ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°, ΠΊΠΎΠΈΡ‚ΠΎ са основСн ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ Π½Π° Π½Π°ΠΉ-опаснитС уязвимости, ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Asterinas Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ Π΅Π·ΠΈΠΊΡŠΡ‚ Rust ΠΈ Ρ‚Π°ΠΊΡ‚ΠΈΠΊΠ° Π½Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° unsafe-Π±Π»ΠΎΠΊΠΎΠ²Π΅. Π―Π΄Ρ€ΠΎΡ‚ΠΎ Π΅ построСно с Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° framekernel, Π² която сС ΠΎΠΏΠΈΡ‚Π²Π°Ρ‚ Π΄Π° ΡΡŠΡ‡Π΅Ρ‚Π°ΡΡ‚ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈΡ‚Π΅ Π½Π° изолацията Π½Π° микроядра с СфСктивността Π½Π° ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½ΠΈΡ‚Π΅ ядра.

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈΡ‚Π΅ Π½Π° ядрото Π² Asterinas сС Ρ€Π°Π·ΠΏΠΎΠ»Π°Π³Π°Ρ‚ Π² ΠΎΠ±Ρ‰ΠΎ адрСсно пространство, Π° бСзопасността сС постига Π½Π° Π½ΠΈΠ²ΠΎ Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° бСзопасния ΠΊΠΎΠ΄ ΠΈ ΠΊΠΎΠ΄Π°, Π² ΠΊΠΎΠΉΡ‚ΠΎ Π½Π΅ са ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ с бСзопасността. Π―Π΄Ρ€ΠΎΡ‚ΠΎ Π΅ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΎ Π½Π° Π΄Π²Π΅ части, написани Π½Π° Rust: OS Framework ΠΈ OS Services. Π’ OS Services Π΅ Π·Π°Π±Ρ€Π°Π½Π΅Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° unsafe-Π±Π»ΠΎΠΊΠΎΠ²Π΅, Π° всички нискоуровнСви ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, изискващи изпълнСниС Π½Π° ΠΊΠΎΠ΄ Π² Π±Π»ΠΎΠΊΠΎΠ²Π΅ unsafe, са прСмСстСни Π² OS Framework ΠΈ са Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΈ само Ρ‡Ρ€Π΅Π· високопрофилСн API. Всички систСмни извиквания, Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΈ систСми ΠΈ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΈ сС Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Ρ‚ Π½Π° Π½ΠΈΠ²ΠΎΡ‚ΠΎ Π½Π° OS Services ΠΈ Π½Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‚ unsafe-Π±Π»ΠΎΠΊΠΎΠ²Π΅.

Π—Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° систСмни услуги ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π½Π° ядрото сС ΠΏΡ€Π΅Π΄Π»Π°Π³Π° инструмСнтариум OSDK (Operating System Development Kit), ΠΊΠΎΠΉΡ‚ΠΎ прСдоставя ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° cargo-osdk Π·Π° създаванС, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½Π΅, тСстванС ΠΈ стартиранС Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ‚Π° систСма. Π—Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ Π΅ ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Π½ Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ OSTD (Operating System Standard Library), Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‰ рСдакция Π½Π° стандартнитС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Rust (crate std), Π°Π΄Π°ΠΏΡ‚ΠΈΡ€Π°Π½Π° Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ‚Π° систСма.

Π‘Ρ€Π΅Π΄ измСнСнията Π² вСрсия 0.18:

  • Π’ Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° усилията Π·Π° осигуряванС Π½Π° стартиранС Π½Π° Asterinas ΠΊΠ°Ρ‚ΠΎ гостуваща систСма Π² VM ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ Kata Containers ΠΈ Confidential Containers Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° пространства Π½Π° ΠΈΠΌΠ΅Π½Π° IPC ΠΈ cgroup, nsfs (/proc/[pid]/ns), cgroups, virtio-fs (Π·Π° Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ ΠΎΠ±Ρ‰Π°Ρ‚Π° с хост систСмата Ρ„Π°ΠΉΠ»ΠΎΠ²Π°Ρ‚Π° систСма), virtio-rng (/dev/hwrng Π·Π° Снтропия към Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° Π½Π° псСвдослучайни числа) ΠΈ vsock (Π·Π° взаимодСйствиС ΠΌΠ΅ΠΆΠ΄Ρƒ хостовата ΠΈ гостуващата систСми).
  • Π Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ Π΅ систСмСн ΠΏΠΎΠ²ΠΈΠΊ ptrace ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ Π·Π° отстраняванС Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ Π² пространството Π½Π° потрСбитСля с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° GDB ΠΈ strace.
  • ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π° Π΅ Π½ΠΎΠ²Π° имплСмСнтация Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π°Ρ‚Π° систСма ext2 ΠΈ Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ NVMe. Π’ VFS Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΡŠΠΌ Dentry (Directory Entry) ΠΈ Π΅ ΠΏΡ€Π΅Ρ€Π°Π±ΠΎΡ‚Π΅Π½Π° имплСмСнтацията Π½Π° страницовия кСш.
  • Π’ дистрибуцията Asterinas NixOS Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° стартиранС Π½Π° Codex, QEMU ΠΈ Firefox.
  • Π”ΠΎΠ±Π°Π²Π΅Π½ΠΈ са систСмни ΠΏΠΎΠ²ΠΈΡ†ΠΈ pidfd_getfd, pidfd_send_signal, pivot_root.
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π½Π°Ρ‡Π°Π»Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° IPv6.
  • Π Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° Π΅ систСма Π·Π° capabilities Π·Π° Π΄Π΅Π»Π΅Π³ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΎΡ‚Π΄Π΅Π»Π½ΠΈ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ.
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π½Π°Ρ‡Π°Π»Π½Π° рСализация Π½Π° Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° LSM (Linux Security Modules).

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster