Asterinas projesi, genel amaçlı işletim sistemlerinde kullanılmak üzere Rust dilinde yazılmış bir çekirdek olan 0.18 sürümünü yayınladı. Çekirdek, çekirdekle uyumlu bir ABI (Uygulama İkili Arayüzü) sağlıyor. Linux ve bunun yerine kullanılabilir. Asterinas çekirdeğini NixOS sistem ortamıyla birleştiren Asterinas NixOS dağıtımı paralel olarak geliştirilmektedir. Projenin kodu MPL (Mozilla Kamu Lisansı) altında dağıtılmaktadır.
Şu anda çekirdekte yaklaşık 240 sistem çağrısı uygulanmaktadır. LinuxAsterinas NixOS dağıtımı, 100'den fazla NixOS paketiyle Asterinas çekirdeği üzerinde çalışacak şekilde doğrulanmıştır. Desteklenen paketler şunlardır: 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 ve Codex.
Çekirdek, x86-64 mimarisi için tam destek, RISC-V 64 ve Intel TDX tabanlı izolasyonlu x86-64 için kısmi destek ve LoongArch 64 mimarisi için başlangıç desteği sağlar. Öncelikli uygulama alanları arasında aşağıdaki sistemler yer almaktadır: Linux ABI'ler, ancak daha yüksek bir güvenlik seviyesi gerektiriyor. Örneğin, Asterinas güvenli bir sistem ortamı oluşturmak için önerilmiştir. Sanal makinelerBu izolasyon için ARM CCA, AMD SEV ve Intel TDX gibi teknolojiler kullanılırken, ana sistem tarafında da konteynerlerin başlatılmasını sağlayan unsurlar yer almaktadır.
En tehlikeli güvenlik açıklarının ana kaynağı olan bellek hatalı olasılığını azaltmak için Asterinas, Rust dilini ve sınırlı sayıda güvenli olmayan blok kullanımını kullanır. Çekirdek, mikro çekirdeklerin izolasyon yeteneklerini monolitik çekirdeklerin verimliliğiyle birleştirmeyi amaçlayan framekernel mimarisi kullanılarak oluşturulmuştur.
Asterinas'taki çekirdek bileşenleri paylaşılan bir adres alanında bulunur ve güvenlik, güvenli kodun potansiyel olarak savunmasız olabilecek koddan mantıksal olarak ayrılmasıyla sağlanır. Çekirdek, her ikisi de Rust dilinde yazılmış iki bölüme ayrılmıştır: İşletim Sistemi Çerçevesi ve İşletim Sistemi Hizmetleri. İşletim Sistemi Hizmetleri, güvenli olmayan blokların kullanımını yasaklar ve güvenli olmayan bloklarda kod yürütülmesini gerektiren tüm düşük seviyeli işlemler İşletim Sistemi Çerçevesine taşınır ve yalnızca yüksek seviyeli bir API aracılığıyla erişilebilir. Tüm sistem çağrıları, dosya sistemleri ve sürücüler İşletim Sistemi Hizmetleri düzeyinde uygulanır ve güvenli olmayan bloklar içeremez.
Sistem servisleri ve çekirdek modülleri geliştirmek için, işletim sistemi bileşenlerini oluşturmak, derlemek, test etmek ve çalıştırmak için cargo-osdk yardımcı programını sağlayan OSDK (İşletim Sistemi Geliştirme Kiti) sunulmaktadır. Geliştiriciler ayrıca, işletim sistemi bileşenlerinde kullanılmak üzere uyarlanmış Rust standart kütüphanelerinin (crate std) bir sürümünü içeren OSTD (İşletim Sistemi Standart Kütüphanesi) setini de kullanabilirler.
0.18 sürümündeki değişiklikler arasında:
- Asterinas'ın Kata Containers ve Confidential Containers VM konteynerlerinde konuk sistem olarak çalışmasını sağlamak amacıyla yapılan çalışmaların bir parçası olarak, IPC ve cgroup ad alanları, nsfs (/proc/[pid]/ns), cgroups, virtio-fs (ana sistemle paylaşılan bir dosya sistemine erişim için), virtio-rng (/dev/hwrng, sözde rastgele sayı üreteci için entropi) ve vsock (ana sistem ile konuk sistem arasında iletişim için) desteği uygulanmıştır.
- GDB ve strace kullanarak ptrace sistem çağrısını ve kullanıcı alanı hata ayıklama özelliklerini uyguladım.
- Ext2 dosya sisteminin yeni bir uygulaması önerildi ve bir NVMe sürücüsü eklendi. VFS'ye bir Dentry (Dizin Girişi) mekanizması eklendi ve sayfa önbelleği uygulaması yeniden tasarlandı.
- Asterinas NixOS dağıtımı, Codex, QEMU ve Firefox'u çalıştırma özelliğine sahiptir.
- pidfd_getfd, pidfd_send_signal, pivot_root sistem çağrıları eklendi.
- Baş harf eklendi IPv6 desteği.
- Bireysel ayrıcalıklı işlemleri devretmek için bir yetenek sistemi uygulanmıştır.
- LSM çerçevesinin ilk uygulaması eklendi (Linux Güvenlik Modülleri).
Kaynak: opennet.ru
