ะัะตะดััะฐะฒะปะตะฝ ัะตะปะธะท ะฟัะพะตะบัะฐ Asterinas 0.18, ัะฐะทะฒะธะฒะฐััะตะณะพ ัะดัะพ, ะฝะฐะฟะธัะฐะฝะฝะพะต ะฝะฐ ัะทัะบะต Rust ะธ ะฟัะตะดะฝะฐะทะฝะฐัะตะฝะฝะพะต ะดะปั ะธัะฟะพะปัะทะพะฒะฐะฝะธั ะฒ ะพะฟะตัะฐัะธะพะฝะฝัั ัะธััะตะผะฐั ะพะฑัะตะณะพ ะฝะฐะทะฝะฐัะตะฝะธั. ะฏะดัะพ ะฟัะตะดะพััะฐะฒะปัะตั ABI (Application Binary Interface), ัะพะฒะผะตััะธะผัะน ั ัะดัะพะผ Linux ะธ ัะฟะพัะพะฑะฝัะน ะธัะฟะพะปัะทะพะฒะฐัััั ะฒะผะตััะพ ะฝะตะณะพ. ะะฐัะฐะปะปะตะปัะฝะพ ัะฐะทะฒะธะฒะฐะตััั ะดะธัััะธะฑััะธะฒ Asterinas NixOS, ัะพัะตัะฐััะธะน ัะดัะพ Asterinas ั ัะธััะตะผะฝัะผ ะพะบััะถะตะฝะธะตะผ NixOS. ะะพะด ะฟัะพะตะบัะฐ ัะฐัะฟัะพัััะฐะฝัะตััั ะฟะพะด ะปะธัะตะฝะทะธะตะน MPL (Mozilla Public License).
ะ ะฝะฐััะพััะตะต ะฒัะตะผั ะฒ ัะดัะต ัะตะฐะปะธะทะพะฒะฐะฝะพ ะพะบะพะปะพ 240 ัะธััะตะผะฝัั ะฒัะทะพะฒะพะฒ Linux. ะ ะดะธัััะธะฑััะธะฒะต Asterinas NixOS ะฒะตัะธัะธัะธัะพะฒะฐะฝะฐ ัะฐะฑะพัะฐ ะฟะพะฒะตัั ัะดัะฐ Asterinas ะฑะพะปะตะต 100 ะฟะฐะบะตัะพะฒ ะธะท 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
