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

Мигел Оједа, авторот на проектот Rust-for-Linux, предложи издавање на v10 компоненти за развој на двигатели на уреди во јазикот Rust за разгледување од развивачите на кернелот на Linux. Ова е единаесеттото издание на закрпи, земајќи ја предвид првата верзија, објавена без број на верзијата. Вклучувањето на поддршката за Rust е одобрено од Linusum Torvalds за вклучување во кернелот 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.

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

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

Извор: opennet.ru

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