Версияи нави часпакҳо барои ядрои Linux бо дастгирии забони Rust

Мигел Охеда, муаллифи лоиҳаи Rust-for-Linux, баровардани ҷузъҳои v5-ро барои таҳияи драйверҳои дастгоҳ бо забони Rust барои баррасӣ аз ҷониби таҳиягарони ядрои Linux пешниҳод кард. Ин нашри шашуми часпакҳо бо дарназардошти версияи аввал аст, ки бе рақами версия нашр шудааст. Дастгирии Rust таҷрибавӣ ҳисобида мешавад, аммо аллакай ба филиали linux-навбат дохил карда шудааст ва барои оғоз кардани кор оид ба эҷоди қабатҳои абстраксия дар зерсистемаҳои ядро, инчунин навиштани драйверҳо ва модулҳо ба қадри кофӣ таҳия шудааст. Таҳия аз ҷониби Google ва ISRG (Гурӯҳи Таҳқиқоти Амнияти Интернет) маблағгузорӣ мешавад, ки муассиси лоиҳаи Let's Encrypt мебошад ва HTTPS ва рушди технологияҳоро барои беҳтар кардани амнияти интернет мусоидат мекунад.

Ёдовар мешавем, ки тағйироти пешниҳодшуда имкон медиҳад, ки Rust ҳамчун забони дуюм барои таҳияи драйверҳо ва модулҳои ядроӣ истифода шавад. Дастгирии Rust ҳамчун варианте пешниҳод карда мешавад, ки бо нобаёнӣ фаъол нест ва боиси он намегардад, ки Rust ҳамчун вобастагии зарурии сохтмон барои ядро ​​дохил карда шавад. Истифодаи Rust барои таҳияи драйвер ба шумо имкон медиҳад, ки драйверҳои бехатартар ва беҳтарро бо саъю кӯшиши кам эҷод кунед, ки аз мушкилоте ба монанди дастрасии хотира пас аз озодшавӣ, истинодҳои нул нишоннамо ва изофаи буфер озод карда шаванд.

Муомилоти аз хотираи бехатар дар Rust дар вақти тартибдиҳӣ тавассути санҷиши истинод, нигоҳ доштани моликияти объект ва мӯҳлати умри объект (миқёс), инчунин тавассути арзёбии дурустии дастрасии хотира ҳангоми иҷрои код таъмин карда мешавад. Rust инчунин муҳофизатро аз фаромадани ададҳо таъмин мекунад, пеш аз истифода оғозкунии ҳатмии арзишҳои тағирёбандаро талаб мекунад, хатогиҳоро дар китобхонаи стандартӣ беҳтар идора мекунад, консепсияи истинодҳо ва тағирёбандаҳоро ба таври нобаёнӣ татбиқ мекунад, чопкунии қавии статикиро барои кам кардани хатогиҳои мантиқӣ пешниҳод мекунад.

Варианти нави часпакҳо барои аз байн бурдани шарҳҳое, ки ҳангоми муҳокимаи нашри якум, дуюм, сеюм, чорум ва панҷуми часпакҳо дода шудаанд, идома медиҳад. Дар версияи нав:

  • Маҷмӯа барои баровардани Rust 1.59.0 навсозӣ шудааст. Варианти китобхонаи ҷудошуда инчунин бо версияи нави Rust ҳамоҳанг карда мешавад, ки тавлиди эҳтимолии ҳолати "ваҳшат" -ро ҳангоми рух додани хатогиҳо, ба монанди аз кор рафтани хотира, нест мекунад. Қобилияти истифодаи замимаҳои ассемблер («хусусият (global_asm)») устувор карда шуд.
  • Дастгирии иловагӣ барои эҷоди барномаҳои мизбон дар Rust, ки ҳангоми таҳияи ядро ​​истифода мешаванд.
  • Ба ҷои интиқоли файлҳои мушаххасоти платформаи мақсадноки қаблан тавлидшуда, онҳо дар асоси конфигуратсияи ядро ​​​​ба таври динамикӣ тавлид мешаванд.
  • Илова кардани параметри ядрои HAVE_RUST барои фаъол кардани меъморие, ки Rust-ро дастгирӣ мекунанд.
  • Абстраксияҳо барои истифода дар рамзи Rust барои генератори рақамҳои псевдо-тасодуфӣ пешниҳод карда мешаванд.
  • Иҷозати истифодаи рамзҳои хатогӣ бе префикси "Error::" (масалан, "return Err(EINVAL)") барои тақрибии коркарди рамзҳои хато дар C.
  • Навъи "CString" барои сатрҳои фармоишии C илова карда шуд. Навъҳои форматкунанда ва буферӣ якҷоя карда шудаанд.
  • Навъҳои Bool ва LockInfo илова карда шуданд.
  • Татбиқи қуфлҳои чархзанӣ содда карда шудааст.

Манбаъ: opennet.ru

Илова Эзоҳ