Десета верзија закрпа за Линук кернел са подршком за Руст језик

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

Как и прошлый вариант патчей выпуск v10 урезан до самого необходимого минимума, достаточного для сборки простого модуля ядра, написанного на языке Rust. Отличия от прошлой версии сводятся к мелким правкам, замене sizeof на ARRAY_SIZE в kallsyms.c и адаптации патчей к ядру v6.0-rc7. Предполагается, что минимальный патч, размер которого сокращён с с 40 до 13 тысяч строк кода, упростит принятие поддержки Rust в основной состав ядра. После обеспечения минимальной поддержи планируется постепенно наращивать имеющуюся функциональность, перенося и другие изменения из ветки Rust-for-Linux.

Предложене измене омогућавају коришћење Руста као другог језика за развој драјвера и модула кернела. Подршка за Руст је представљена као опција која није подразумевано омогућена и не доводи до тога да Руст буде укључен као обавезна зависност изградње за кернел. Коришћење Руст-а за развој драјвера ће вам омогућити да креирате сигурније и боље драјвере уз минималан напор, без проблема као што су приступ меморији након ослобађања, нулте референце показивача и прекорачење бафера.

Руковање безбедно за меморију обезбеђено је у Русту у време компајлирања кроз проверу референци, праћење власништва над објектом и животног века објекта (обим), као и кроз процену исправности приступа меморији током извршавања кода. Руст такође пружа заштиту од прекорачења целог броја, захтева обавезну иницијализацију вредности променљивих пре употребе, боље обрађује грешке у стандардној библиотеци, подразумевано примењује концепт непроменљивих референци и променљивих, нуди снажно статичко куцање како би се минимизирале логичке грешке.

Извор: опеннет.ру

Додај коментар