Kerla loyihasi Linux-ga mos keladigan yadroni Rust tilida ishlab chiqmoqda

Kerla loyihasi Rust tilida yozilgan operatsion tizim yadrosini ishlab chiqmoqda. Yangi yadro dastlab Linux yadrosi bilan ABI darajasida moslikni ta'minlashga qaratilgan bo'lib, bu Linux uchun tuzilgan o'zgartirilmagan bajariladigan fayllarni Kerla asosidagi muhitda ishlashiga imkon beradi. Kod Apache 2.0 va MIT litsenziyalari ostida tarqatiladi. Loyiha C tilida yozilgan Resea mikroyadroli operatsion tizimini yaratish bilan mashhur yapon dasturchisi Seiya Nuta tomonidan ishlab chiqilmoqda.

Rivojlanishning hozirgi bosqichida Kerla faqat x86_64 tizimlarida ishlashi mumkin va yozish, stat, mmap, quvur va so'rov kabi asosiy tizim chaqiruvlarini amalga oshiradi, signallarni, nomsiz quvurlarni va kontekstli kalitlarni qo'llab-quvvatlaydi. Jarayonlarni boshqarish uchun fork, wait4 va execve kabi qo'ng'iroqlar taqdim etiladi. Tty va psevdo-terminallarni (pty) qo'llab-quvvatlash mavjud. Hozirda qo'llab-quvvatlanadigan fayl tizimlari initramfs (ildiz fayl tizimini o'rnatish uchun ishlatiladi), tmpfs va devfs. Smoltcp kutubxonasi asosida amalga oshirilgan TCP va UDP rozetkalarini qo'llab-quvvatlaydigan tarmoq stekasi taqdim etiladi.

Ishlab chiqaruvchi virtio-net drayveri bilan QEMU yoki Firecracker virtual mashinasida ishlaydigan yuklash muhitini tayyorladi, siz allaqachon SSH orqali ulanishingiz mumkin. musl tizim kutubxonasi sifatida, BusyBox esa foydalanuvchi yordamchi dasturlari sifatida ishlatiladi.

Kerla loyihasi Linux-ga mos keladigan yadroni Rust tilida ishlab chiqmoqda

Kerla yadrosi yordamida o'z yuklash initramflarini yaratishga imkon beruvchi Docker-ga asoslangan qurish tizimi tayyorlangan. Alohida-alohida, baliqqa o'xshash nsh dasturiy ta'minot qobig'i va Wayland protokoli asosidagi Kazari GUI stek ishlab chiqilmoqda.

Kerla loyihasi Linux-ga mos keladigan yadroni Rust tilida ishlab chiqmoqda

Loyihada Rust tilidan foydalanish xavfsiz dasturlash usullaridan foydalangan holda koddagi xatolar sonini kamaytirish va xotira bilan ishlashda muammolarni aniqlash samaradorligini oshirish imkonini beradi. Rust kompilyatsiya vaqtida xotira xavfsizligini mos yozuvlarni tekshirish, ob'ektga egalik qilish va ob'ektning ishlash muddatini kuzatish (ko'lamlar) va ish vaqtida xotiraga kirishning to'g'riligini baholash orqali amalga oshiradi. Bundan tashqari, Rust butun sonlarning to'lib ketishidan himoya qiladi, foydalanishdan oldin o'zgaruvchan qiymatlarni ishga tushirishni talab qiladi, sukut bo'yicha o'zgarmas havolalar va o'zgaruvchilar tushunchasini qo'llaydi, mantiqiy xatolarni minimallashtirish uchun kuchli statik yozishni taklif qiladi va kirish qiymatlari bilan ishlashni soddalashtiradi naqsh mosligi tufayli..

OS yadrosi kabi past darajadagi komponentlarni ishlab chiqish uchun Rust xom ko'rsatkichlar, tuzilmalarni o'rash, assemblerning inline qo'shimchalari va assembler fayllarini o'rnatish uchun yordam beradi. Standart kutubxonaga bog'lanmasdan ishlash uchun satrlar, vektorlar va bit bayroqlari bilan operatsiyalarni bajarish uchun alohida quti paketlari mavjud. Yana bir afzallik - kod sifatini baholash (linter, zang-analizator) va birlik testlarini yaratish uchun o'rnatilgan vositalar, ular nafaqat haqiqiy apparatda, balki QEMUda ham bajarilishi mumkin.

Manba: opennet.ru

a Izoh qo'shish