Çapa çaremîn a patchên ji bo kernel Linux bi piştgiriya ji bo zimanê Rust

Мигель Охеда (Miguel Ojeda), автор проекта Rust-for-Linux, предложил для рассмотрения разработчиками ядра Linux четвёртый вариант компонентов для разработки драйверов устройств на языке Rust. Поддержка Rust рассматривается как экспериментальная, но уже согласована для включения в ветку linux-next и достаточно развита для начала работы по созданию слоёв абстракции над подсистемами ядра, а также для написания драйверов и модулей. Разработка финансируется компанией Google и организацией ISRG (Internet Security Research Group), которая является учредителем проекта Let’s Encrypt и способствует продвижению HTTPS и развитию технологий для повышения защищённости интернета.

Bînin bîra xwe ku guheztinên pêşniyarkirî dihêle ku hûn Rust wekî zimanek duyemîn ji bo pêşvebirina ajokar û modulên kernel bikar bînin. Piştgiriya Rust wekî vebijarkek ku ji hêla xwerû ve nehatiye çalak kirin tê pêşkêş kirin û nahêle ku Rust wekî pêwendiyek çêkirî ya pêdivî ya ji bo kernelê tevbigere. Bikaranîna Rust ji bo pêşkeftina ajokerê dê bihêle ku hûn bi hewildanek hindiktirîn ajokarên ewledar û çêtir biafirînin, ji pirsgirêkên wekî gihandina bîranînê piştî azadkirinê, veqetandina nîşana betal, û derbasbûna tamponê.

Desthilatdariya ewledar a bîranînê di Rust de di dema berhevkirinê de bi kontrolkirina referansê, şopandina xwedaniya tiştan û dema jiyanê (çarçove) û her weha bi nirxandina rastbûna gihîştina bîranînê di dema darvekirina kodê de tê peyda kirin. Rust di heman demê de parastinê li hember hejmarên bêkêmasî peyda dike, hewce dike ku guhêrbar berî bikarbînê werin destpêkirin, di pirtûkxaneya standard de xeletiyan çêtir digire, têgeha referansên neguhêrbar û guhêrbar ji hêla xwerû ve bicîh tîne, û nivîsandina statîk a bihêz pêşkêşî dike da ku xeletiyên mantiqî kêm bike.

В новом варианте патчей продолжено устранение замечаний, высказанных в процессе обсуждения первой, второй и третьей редакций патчей. В новой версии:

  • Осуществлён переход на использование в качестве эталонного компилятора стабильного выпуска Rust 1.58.0. Из необходимых для проекта изменений, который пока ещё не включены в основной состав инструментария Rust, отмечаются флаг «-Zsymbol-mangling-version=v0» (ожидается в Rust 1.59.0) и режим «maybe_uninit_extra» (ожидается в Rust 1.60.0).
  • Добавлены автоматические проверки наличия подходящего инструментария Rust и расширены возможности по тестированию поддержки Rust в системе.
  • Предложены новые абстракции для доступа из кода на языке Rust к таблицам идентификаторов устройств («IdArray» и «IdTable»).
  • Добавлены прослойки для обращения к функциям, связанным с таймером (clock framework).
  • Драйверы для платформ теперь определены через реализацию типажей.
  • Добавлен новый макрос для упрощения регистрации драйверов платформ, а также предложен новый шаблон типового драйвера.
  • Добавлены макросы для структур «dev_*».
  • Добавлены методы «{read,write}*_relaxed» для типа IoMem<T>.
  • Удалено свойство FileOpener для упрощения операций с файлами.
  • В число аргументов, передаваемых при регистрации драйвера, добавлен параметр «ThisModule».
  • Предложен типовой шаблон для создания модулей ядра на языке Rust.

Source: opennet.ru

Add a comment