Një kornizë në Rust mund të zbatohet në Kernel për të përmirësuar drejtuesit

Kernel Linux i ndryshkur

Josh Triplett, një kompani me bazë Intel dhe anëtar i komitetit të mbikëqyrjes së zhvillimit Crates.io, tashmë prezantoi një grup pune disa ditë më parë në fjalimin e tij në Samitin e Teknologjisë me Burim të Hapur e cila synon të sjellë Rustin në të njëjtin nivel me C në programimin e kernelit Linux.

Në grupin e punës, i cili është në proces të krijimit, Zhvilluesit e ndryshkut, së bashku me inxhinierët Intel, do të përgatisin specifikimet që mund të nxjerrë në pah funksionalitetin që Rust duhet të zbatojë për programimin brenda kernelit Linux. Programimi i sistemit shpesh kërkon manipulime të nivelit të ulët, të tilla si ekzekutimi i udhëzimeve të privilegjuara të procesorit dhe marrja e informacionit të detajuar në lidhje me statusin e procesorit.

Nga aftësitë e ngjashme që janë zhvilluar tashmë për Rust, mbështetet për strukturat pa emër, sindikatat (union), insertet e mbledhësit (makro "asm!") dhe formatin e numrit të pikës lundruese BFLOAT16.

Josh beson se e ardhmja e programimit të sistemit qëndron te Rust, dhe gjuha C në realitetet moderne pretendon të jetë vendi i Assembler në të kaluarën. Rust nuk lehtëson vetëm zhvilluesit nga problemet specifike të gjuhës C që lindin për shkak të punës në nivel të ulët me kujtesën, por gjithashtu siguron zbatueshmëri në zhvillimin e paradigmave moderne të programimit.

Gjatë diskutimit të fjalimit të Josh, ideja u shpreh për:

shtoni aftësinë për të zhvilluar drejtuesit në gjuhën Rust në kernelin Linux, i cili do të lejojë me përpjekje minimale për të krijuar drejtues më të mirë dhe më të sigurt që lehtësojnë probleme të tilla si hyrja në zonën e kujtesës pas lirimit të saj, referencën e treguesve null dhe daljen më tej përtej kufijve të tamponit.

Greg Kroah-Hartman, përgjegjës për mirëmbajtjen e një dege të qëndrueshme të kernelit Linux, dhex shprehu gatishmëri për të shtuar një kornizë të shoferit Rust në kernel nëse ka ndonjë përparësi reale mbi C, për shembull, ai do të sigurojë lidhje të sigurta mbi API-në bazë. Gjithashtu, Greg e konsideron këtë kornizë vetëm si një opsion që nuk është aktiv si parazgjedhje, në mënyrë që të mos përfshijë Rustin në numrin e varësive të montimit bazë.

Doli se disa ekipe tashmë po punojnë në këtë drejtim. Për shembull, zhvilluesit e Fish in a Barrel përgatitën një pako mjetesh për të shkruar module të ngarkueshme për kernelin Linux në gjuhën Rust, duke përdorur një sërë shtresash abstrakte në krye të ndërfaqeve dhe strukturave të kernelit për të rritur sigurinë.

Shtresat e ndërmjetme gjenerohen automatikisht bazuar në skedarët e kokave të kernelit të disponueshëm duke përdorur programin bindgen. Zhurma përdoret për të ndërtuar shtresa të ndërmjetme. Modulet e mbledhura, përveç shtresave, përdorin paketën staticlib.

Në të njëjtën kohë, një projekt tjetër është duke u zhvilluar, i përqendruar në zhvillimin e kontrollorëve për sistemet e ngulitura dhe pajisjet e Internetit të Gjërave, të cilat gjithashtu përdor bindgen për të gjeneruar jakë të bazuara në skedarët e kokave të kernelit.

Kuadri ju lejon të përmirësoni sigurinë e drejtuesit pa bërë ndryshime në kernel; Në vend që të krijohen nivele shtesë izolimi për drejtuesit në bërthamë, është propozuar të bllokohen problemet në fazën e përpilimit duke përdorur një gjuhë Rust më të sigurt.

Prodhuesit e pajisjeve supozohet të jenë në gjendje ta zhvillojnë këtë qasje me nxitim pa një auditim të duhur.

Jo i gjithë funksionaliteti i planifikuar është zbatuar ende, por korniza është tashmë mjaft e përshtatshme për punë dhe përdoret për të shkruar një drejtues që punon për kontrolluesin e furnizuar LAN9512 USB Ethernet në bordin Raspberry Pi 3.

U shkrua shoferi ekzistues smsc95xx si një zbatim referimi kur shkruani shoferin e Rustit në gjuhën C.

Isshtë vërejtur se madhësia e modulit dhe pjesa e sipërme e komponentit të ekzekutimit nuk janë të rëndësishme kur zhvilloni një drejtues për Rust, i cili ju lejon të përdorni kornizën për pajisjet e kufizuara në burime.

Fuente: https://hub.packtpub.com


Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: AB Internet Networks 2008 SL
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.

  1.   L1ch dijo

    Nuk mund të gjej informacion për një shofer smsc95xx në burim ose që diçka do të zbatohet në Rust në Linux.