Rust tilini qo'llab-quvvatlaydigan Linux yadrosi uchun yamoqlarning o'ninchi versiyasi

Rust-for-Linux loyihasi muallifi Migel Ojeda Linux yadrosini ishlab chiquvchilari ko‘rib chiqish uchun Rust tilida qurilma drayverlarini ishlab chiqish uchun v10 komponentlarini chiqarishni taklif qildi. Bu versiya raqamisiz chop etilgan birinchi versiyani hisobga olgan holda yamoqlarning o'n birinchi nashri. Rust qo'llab-quvvatlashini kiritish Linux 6.1 yadrosiga kiritish uchun Linusum Torvalds tomonidan ma'qullangan, bu kutilmagan muammolarni oldini oladi. Ishlanma Google va ISRG (Internet Security Research Group) tomonidan moliyalashtiriladi, u Let's Encrypt loyihasining asoschisi bo'lib, HTTPS va Internet xavfsizligini yaxshilash uchun texnologiyalarni rivojlantirishga yordam beradi.

Yamoqlarning oldingi versiyasi singari, v10 versiyasi Rust-da yozilgan oddiy yadro modulini yaratish uchun etarli bo'lgan minimal darajaga qisqartirilgan. Oldingi versiyadan farqlar kallsyms.c da sizeof ni ARRAY_SIZE bilan almashtirib, yamoqlarni v6.0-rc7 yadrosiga moslashtirgan kichik tahrirlar bilan bog'liq. Hajmi 40 dan 13 ming qator kodgacha qisqartirilgan minimal yamoq Rust qo'llab-quvvatlashini asosiy yadroga qabul qilishni soddalashtirishi kutilmoqda. Minimal yordamni taqdim etgandan so'ng, Rust-for-Linux filialidan boshqa o'zgarishlarni o'tkazib, mavjud funksionallikni bosqichma-bosqich oshirish rejalashtirilgan.

Taklif etilayotgan o'zgarishlar Rust tilidan drayverlar va yadro modullarini ishlab chiqish uchun ikkinchi til sifatida foydalanish imkonini beradi. Zangni qo'llab-quvvatlash sukut bo'yicha yoqilmagan variant sifatida taqdim etiladi va Rust yadro uchun zarur bo'lgan qurilish bog'liqligi sifatida kiritilishiga olib kelmaydi. Drayvlarni ishlab chiqish uchun Rust-dan foydalanish sizga minimal kuch sarflagan holda xavfsizroq va yaxshiroq drayverlarni yaratishga imkon beradi, ular bo'shatilgandan so'ng xotiraga kirish, null ko'rsatkichni o'zgartirish va buferni ortiqcha yuklash kabi muammolardan xoli bo'ladi.

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. Rust shuningdek, butun sonlarning to'lib ketishidan himoya qiladi, foydalanishdan oldin o'zgaruvchan qiymatlarni ishga tushirishni talab qiladi, standart kutubxonada xatolarni yaxshiroq boshqarishga ega, sukut bo'yicha o'zgarmas havolalar va o'zgaruvchilar tushunchasidan foydalanadi va mantiqiy xatolarni minimallashtirish uchun kuchli statik yozishni taklif qiladi.

Manba: opennet.ru

a Izoh qo'shish