Paglabas ng Asterinas 0.18 kernel, na nakasulat sa Rust at tugma sa Linux

Inilabas ng proyektong Asterinas ang bersyon 0.18, isang kernel na isinulat sa Rust at idinisenyo para sa paggamit sa mga pangkalahatang operating system. Nagbibigay ang kernel ng ABI (Application Binary Interface) na tugma sa kernel. Linux at maaaring gamitin sa halip. Ang distribusyon ng Asterinas NixOS, na pinagsasama ang kernel ng Asterinas sa kapaligiran ng sistema ng NixOS, ay binubuo nang sabay-sabay. Ang code ng proyekto ay ipinamamahagi sa ilalim ng MPL (Mozilla Public License).

Sa kasalukuyan, mayroong humigit-kumulang 240 system calls na ipinatupad sa kernel. LinuxNapatunayang tumatakbo ang distribusyon ng Asterinas NixOS sa ibabaw ng kernel ng Asterinas na may mahigit 100 pakete ng NixOS. Kabilang sa mga sinusuportahang pakete ang: 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, at Codex.

Ang kernel ay nagbibigay ng buong suporta para sa arkitektura ng x86-64, bahagyang suporta para sa RISC-V 64 at x86-64 na may isolation batay sa Intel TDX, pati na rin ang paunang suporta para sa arkitektura ng LoongArch 64. Kabilang sa mga prayoridad na lugar ng aplikasyon ang mga sistemang batay sa Linux Mga ABI, ngunit nangangailangan ng mas mataas na antas ng seguridad. Halimbawa, ang Asterinas ay iminungkahi para gamitin sa paglikha ng isang ligtas na kapaligiran ng sistema. mga virtual na makina, para sa paghihiwalay kung saan ginagamit ang mga teknolohiyang tulad ng ARM CCA, AMD SEV at Intel TDX, pati na rin sa panig ng host system, na nagsisiguro sa paglulunsad ng mga container.

Upang mabawasan ang posibilidad ng mga error sa memorya, ang pangunahing pinagmumulan ng mga pinaka-mapanganib na kahinaan, ginagamit ng Asterinas ang wikang Rust at limitadong paggamit ng mga hindi ligtas na bloke. Ang kernel ay binuo gamit ang arkitektura ng framekernel, na nagtatangkang pagsamahin ang mga kakayahan sa paghihiwalay ng mga microkernel sa kahusayan ng mga monolithic kernel.

Ang mga bahagi ng kernel sa Asterinas ay matatagpuan sa isang shared address space, at ang seguridad ay nakakamit sa pamamagitan ng lohikal na paghihiwalay ng secure code mula sa code na maaaring maging vulnerable. Ang kernel ay nahahati sa dalawang bahagi, parehong nakasulat sa Rust: OS Framework at OS Services. Ipinagbabawal ng OS Services ang paggamit ng mga unsafe block, at lahat ng low-level na operasyon na nangangailangan ng code execution sa mga unsafe block ay inililipat sa OS Framework at maa-access lamang sa pamamagitan ng isang high-level na API. Lahat ng system call, file system, at driver ay ipinapatupad sa antas ng OS Services at hindi maaaring magsama ng mga unsafe block.

Para sa pagbuo ng mga serbisyo ng sistema at mga kernel module, ang OSDK (Operating System Development Kit) ay ibinibigay, na nagbibigay ng cargo-osdk utility para sa paglikha, pagbuo, pagsubok, at pagpapatakbo ng mga bahagi ng operating system. Maaari ring gamitin ng mga developer ang set ng OSTD (Operating System Standard Library), na kinabibilangan ng isang edisyon ng mga Rust standard libraries (crate std) na inangkop para magamit sa mga bahagi ng operating system.

Kabilang sa mga pagbabago sa bersyon 0.18:

  • Bilang bahagi ng pagsisikap na matiyak na ang Asterinas ay tumatakbo bilang isang guest system sa mga Kata Container at Confidential Container VM container, naipatupad ang suporta para sa mga IPC at cgroup namespace, nsfs (/proc/[pid]/ns), cgroups, virtio-fs (para sa pag-access sa isang file system na nakabahagi sa host system), virtio-rng (/dev/hwrng para sa entropy para sa pseudo-random number generator), at vsock (para sa komunikasyon sa pagitan ng host at guest system).
  • Ipinatupad ang ptrace system call at mga kakayahan sa pag-debug ng user-space gamit ang GDB at strace.
  • Isang bagong implementasyon ng ext2 file system ang iminungkahi, at isang NVMe driver ang idinagdag. Isang mekanismo ng Dentry (Directory Entry) ang idinagdag sa VFS, at ang implementasyon ng page cache ay muling idinisenyo.
  • Ang distribusyon ng Asterinas NixOS ay may kakayahang magpatakbo ng Codex, QEMU, at Firefox.
  • Idinagdag ang mga system call na pidfd_getfd, pidfd_send_signal, at pivot_root.
  • Добавлена начальная Suporta sa IPv6.
  • Isang sistema ng mga kakayahan ang ipinatupad para sa pagtatalaga ng mga indibidwal na may pribilehiyong operasyon.
  • Idinagdag ang paunang implementasyon ng balangkas ng LSM (Linux Mga Module ng Seguridad).

Pinagmulan: opennet.ru

Bumili ng maaasahang pagho-host para sa mga site na may proteksyon ng DDoS, mga server ng VPS VDS 🔥 Bumili ng maaasahang website hosting na may proteksyon ng DDoS, VPS VDS servers | ProHoster