ការបោះពុម្ពលើកទីប្រាំនៃបំណះសម្រាប់ខឺណែលលីនុចជាមួយនឹងការគាំទ្រសម្រាប់ភាសា Rust

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

សូមចាំថាការផ្លាស់ប្តូរដែលបានស្នើឡើងធ្វើឱ្យវាអាចប្រើ Rust ជាភាសាទីពីរសម្រាប់បង្កើតកម្មវិធីបញ្ជា និងម៉ូឌុលខឺណែល។ ការគាំទ្រច្រែះត្រូវបានបង្ហាញជាជម្រើសដែលមិនត្រូវបានបើកតាមលំនាំដើម ហើយមិនមានលទ្ធផលដែល Rust ត្រូវបានដាក់បញ្ចូលជាការពឹងផ្អែកលើការស្ថាបនាដែលត្រូវការសម្រាប់ខឺណែលនោះទេ។ ការប្រើប្រាស់ Rust សម្រាប់ការអភិវឌ្ឍន៍កម្មវិធីបញ្ជានឹងអនុញ្ញាតឱ្យអ្នកបង្កើតកម្មវិធីបញ្ជាដែលមានសុវត្ថិភាព និងប្រសើរជាងមុន ជាមួយនឹងការខិតខំប្រឹងប្រែងតិចតួចបំផុត ដោយមិនមានបញ្ហាដូចជាការចូលប្រើអង្គចងចាំបន្ទាប់ពីការដោះលែង ការបដិសេធទ្រនិចគ្មានន័យ និងការដំណើរការលើសចំណុះ។

សុវត្ថិភាពនៃអង្គចងចាំត្រូវបានផ្តល់ជូននៅក្នុង Rust នៅពេលចងក្រងតាមរយៈការត្រួតពិនិត្យឯកសារយោង ការរក្សាដាននៃភាពជាម្ចាស់វត្ថុ និងអាយុកាលរបស់វត្ថុ (វិសាលភាព) ក៏ដូចជាតាមរយៈការវាយតម្លៃភាពត្រឹមត្រូវនៃការចូលប្រើអង្គចងចាំអំឡុងពេលដំណើរការកូដ។ ច្រែះក៏ផ្តល់ការការពារប្រឆាំងនឹងចំនួនគត់លើសចំណុះ ទាមទារការចាប់ផ្តើមចាំបាច់នៃតម្លៃអថេរមុនពេលប្រើ ដោះស្រាយកំហុសបានប្រសើរជាងនៅក្នុងបណ្ណាល័យស្តង់ដារ អនុវត្តគោលគំនិតនៃសេចក្តីយោងដែលមិនអាចផ្លាស់ប្តូរបាន និងអថេរតាមលំនាំដើម ផ្តល់នូវការវាយអក្សរឋិតិវន្តខ្លាំង ដើម្បីកាត់បន្ថយកំហុសឡូជីខល។

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

  • В систему непрерывной интеграции на базе поддерживаемого компанией Intel бота 0DAY/LKP добавлена проверка компонентов для поддержки Rust и началась публикация отчётов о тестировании. Готовится интеграция поддержки Rust в систему автоматизированного тестирования KernelCI. Тестирование на базе GitHub CI переведено на использование контейнеров.
  • Модули ядра на Rust избавлены от необходимости определения crate-атрибутов «#![no_std]» и «#![feature(…)]».
  • Добавлена поддержка единичных сборочных целей (.o, .s, .ll и .i).
  • В рекомендациях по оформлению кода определены правила в отношении разделения комментариев («//») и документирования кода («///»).
  • Переработан скрипт is_rust_module.sh.
  • Добавлена поддержка статических (глобальных общих переменных) примитивов синхронизации, основанных на реализации «CONFIG_CONSTRUCTORS».
  • Упрощено управление блокировками: Guard и GuardMut объединены и один параметризованный тип.
  • Предоставлена возможность определения дополнительных параметров при регистрации устройств.
  • Добавлена абстракция «RwSemaphore», выступающая в роли обвязки над Си-структурой rw_semaphore.
  • Для использования mmap добавлен новый модуль mm и абстракция VMA (обвязка над структурой vm_area_struct).
  • Драйвер GPIO PL061 переведён на использование макроса «dev_*!».
  • ការសម្អាតទូទៅនៃកូដត្រូវបានអនុវត្ត។

ប្រភព: opennet.ru

បន្ថែមមតិយោបល់