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

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

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

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

Најприметније промене у новој верзији закрпа:

  • Код за доделу меморије је ослобођен од потенцијалног генерисања "панике" стања када се појаве грешке као што је недостатак меморије. Укључена је и варијанта Руст аллоц библиотеке, која прерађује код за руковање грешкама, али крајњи циљ је да се пренесу све функције потребне за кернел у главно издање аллоц-а (промене су већ припремљене и пренете у стандардно Руст библиотека).
  • Уместо ноћних верзија, сада можете да користите бета издања и стабилна издања рустц компајлера за компајлирање кернела са Руст подршком. Тренутно се рустц 1.54-бета1 користи као референтни компајлер, али након што издање 1.54 буде објављено крајем месеца, биће подржано као референтни компајлер.
  • Додата подршка за писање тестова коришћењем стандардног атрибута „#[тест]“ за Руст и могућност коришћења доцтестова за документовање тестова.
  • Додата подршка за АРМ32 и РИСЦВ архитектуре поред претходно подржаних к86_64 и АРМ64.
  • Побољшане имплементације ГЦЦ Руста (ГЦЦ фронтенд за Руст) и рустц_цодеген_гцц (рустц бацкенд за ГЦЦ), који сада пролази све основне тестове.
  • Предлаже се нови ниво апстракције за употребу у Руст програмима механизама кернела написаних у Ц-у, као што су црвено-црна стабла, објекти са бројем референци, креирање дескриптора датотеке, задаци, датотеке и И/О вектори.
  • Компоненте за развој драјвера имају побољшану подршку за модул филе_оператионс, макро модула!, регистрацију макроа и рудиментарне драјвере (пробајте и уклоните).
  • Биндер сада подржава прослеђивање дескриптора датотека и ЛСМ кука.
  • Предлаже се функционалнији пример Руст драјвера - бцм2835-рнг за хардверски генератор случајних бројева Распберри Пи плоча.

Поред тога, помињу се пројекти неких компанија који се односе на употребу Руста у кернелу:

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

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

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