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

Мигел Оједа, аутор пројекта Руст-фор-Линук, предложио је четврту верзију компоненти за развој драјвера уређаја на језику Руст на разматрање од стране програмера Линук кернела. Подршка за Руст се сматра експерименталном, али је већ договорена за укључивање у линук-нект грану и довољно је зрела да започне рад на креирању слојева апстракције над подсистемима кернела, као и писању драјвера и модула. Развој финансирају Гугл и ИСРГ (Интернет Сецурити Ресеарцх Гроуп), који је оснивач пројекта Лет'с Енцрипт и промовише ХТТПС и развој технологија за побољшање безбедности на Интернету.

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

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

Нова верзија закрпа наставља да елиминише коментаре дате током дискусије о првом, другом и трећем издању закрпа. У новој верзији:

  • Прелазак на коришћење стабилног издања Руста 1.58.0 као референтног компајлера је направљен. Међу променама неопходним за пројекат, које још увек нису укључене у главни пакет алата за Руст, „-Зсимбол-манглинг-версион=в0“ заставица (очекује се у Руст 1.59.0) и режим „маибе_унинит_ектра“ (очекује се у Руст 1.60.0 .XNUMX) су забележени.
  • Додате су аутоматске провере доступности одговарајућих Руст алата и проширена могућност тестирања подршке за Руст у систему.
  • Предложене су нове апстракције за приступ табелама идентификатора уређаја („ИдАрраи“ и „ИдТабле“) из Руст кода.
  • Додати слојеви за приступ функцијама везаним за тајмер (оквир сата).
  • Драјвери платформе су сада дефинисани кроз имплементације особина.
  • Додан је нови макро како би се поједноставила регистрација драјвера платформе, а предложен је и нови генерички шаблон драјвера.
  • Додати макрои за "дев_*" структуре.
  • Додате методе „{реад,врите}*_релакед“ за тип ИоМем .
  • Уклоњено је својство ФилеОпенер да би се поједноставиле операције са датотекама.
  • Параметар „ТхисМодуле“ је додат аргументима прослеђеним приликом регистрације драјвера.
  • Предложен је стандардни шаблон за креирање модула кернела на језику Руст.

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

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