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

Rust-for-Linux loyihasi muallifi Migel Ojeda Linux yadrosini ishlab chiquvchilari ko‘rib chiqish uchun Rust tilida qurilma drayverlarini ishlab chiqish uchun v5 komponentlarini chiqarishni taklif qildi. Bu versiya raqamisiz chop etilgan birinchi versiyani hisobga olgan holda yamoqlarning oltinchi nashri. Rust qo'llab-quvvatlashi eksperimental hisoblanadi, lekin u allaqachon Linux-keyingi filialiga kiritilgan va yadro quyi tizimlari ustida abstraktsiya qatlamlarini yaratish, shuningdek, drayverlar va modullarni yozish bo'yicha ishlarni boshlash uchun etarlicha rivojlangan. Ishlanma Google va ISRG (Internet Security Research Group) tomonidan moliyalashtiriladi, u Let's Encrypt loyihasining asoschisi bo‘lib, HTTPS va Internet xavfsizligini yaxshilash bo‘yicha texnologiyalarni rivojlantirishga yordam beradi.

Eslatib o'tamiz, 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.

Yamoqlarning yangi versiyasi yamoqlarning birinchi, ikkinchi, uchinchi, to'rtinchi va beshinchi nashrlarini muhokama qilish paytida bildirilgan sharhlarni yo'q qilishda davom etmoqda. Yangi versiyada:

  • Rust 1.59.0 versiyasini chiqarish uchun asboblar to'plami yangilandi. Aloqa kutubxonasining bir varianti ham Rustning yangi versiyasi bilan sinxronlashtiriladi, bu esa xatolar yuzaga kelganda, masalan, xotira yo'qligida "vahima" holatining yuzaga kelishini yo'q qiladi. Assembler qo'shimchalaridan foydalanish imkoniyati (“xususiyat (global_asm)”) barqarorlashtirildi.
  • Yadro kompilyatsiyasi paytida ishlatiladigan Rust-da xost dasturlarini yaratish uchun qo'shimcha yordam.
  • Oldindan yaratilgan maqsadli platforma spetsifikatsiyasi fayllarini yetkazib berish oʻrniga, ular yadro konfiguratsiyasi asosida dinamik ravishda yaratiladi.
  • Rust-ni qo'llab-quvvatlaydigan arxitekturalarni yoqish uchun HAVE_RUST yadro parametri qo'shildi.
  • Abstraktsiyalar apparat psevdo-tasodifiy raqamlar generatori uchun Rust kodida foydalanish uchun taklif etiladi.
  • C tilidagi xato kodlari bilan ishlashni taxminiy baholash uchun "Xato::" prefiksisiz xato kodlaridan foydalanishga ruxsat berilgan (masalan, "qaytish Err(EINVAL)").
  • Maxsus C-satrlari uchun "CString" turi qo'shildi. Formatter va Bufer turlari birlashtirildi.
  • Bool va LockInfo turlari qo'shildi.
  • Spin qulflarini amalga oshirish soddalashtirildi.

Manba: opennet.ru

a Izoh qo'shish