Në konferencën që po zhvillohet këto ditë, Maintainers Summit, u diskutuan rezultatet e eksperimenteve për shtimin në kernelin Linux të mundësisë për të zhvilluar komponente në gjuhën Rust. Participantët e pranishëm e njohën eksperimentin si të suksesshëm dhe vendosën të kalojnë mbështetje për gjuhën Rust në kategorinë e pjesëve kryesore të kernelit, duke hequr etiketën e funksionalitetit eksperimental.
Tre vjet mĂ« parĂ«, mundĂ«sia pĂ«r tĂ« zhvilluar drejtues dhe module nĂ« gjuhĂ«n Rust u shtua nĂ« kernelin 6.1. QĂ« atĂ«herĂ«, nĂ« kernel janĂ« pĂ«rfshirĂ« abstraksione pĂ«r zhvillimin e drejtuesve nĂ« Rust pĂ«r GPU, FS, pajisje bllokuese, adapterĂ« rrjeti dhe pajisje USB. ĂshtĂ« zhvilluar drejtuesi Nova pĂ«r GPU NVIDIA, asahi pĂ«r GPU Apple AGX, Tyr pĂ«r GPU ARM Mali, rust_ext2 me FS Ext2. NjĂ« implementim IPC Binder i shkruar nĂ« Rust Ă«shtĂ« pranuar nĂ« kernel. Projekti RROS zhvillon njĂ« nĂ«nsistem real-time pĂ«r kernelin Linux, i shkruar nĂ« Rust. MbĂ«shtetja pĂ«r Rust nuk Ă«shtĂ« aktive nga e drejta pĂ«r default dhe nuk çon nĂ« pĂ«rfshirjen e Rust nĂ« numrin e varĂ«sive tĂ« detyrueshme pĂ«r ndĂ«rtimin e kernelit.
Sipas mbështetësve të promovimit të Rust, ky gjuhë përjashton shumicën e gabimeve që identifikohen në kernel dhe që shkaktohen nga veçoritë e gjuhës C (rasti i veçantë), çka lejon që gjatë rishikimit të fokusohemi në gabimet logjike dhe gjendjet e garës. Rust ndihmon për të eliminuar probleme siq janë aksesimi në kujtesë pas lirimit të saj, dalja jashtë kufijve të tamponit, lirimi i gabuar i burimeve gjatë menaxhimit të gabimeve dhe kontrollet e harruara të kodit të gabimit të kthyer. Përdorimi i Rust për kodin e ri gjithashtu ofron mundësinë për të shkurtuar kohën e zhvillimit, përmes zvogëlimit të shpenzimeve për debuggim dhe ekzistencës së garancive strikte në gjuhë që identifikojnë gabimet në një fazë të hershme të shkruarjes së kodit.
Kundërshtarët e zbatimit të Rust në kernel e konsiderojnë të papranueshme përdorimin e disa gjuhëve programuese në projekte komplekse - krijimi i bazave të kodit të përziera e komplikon punën e mbajtësve, pasi i vë ata në varësi nga kodi në një gjuhë tjetër. Për shembull, me prani të mbështetjeve në Rust, zhvilluesit e nënsistemeve që janë shkruar në C duhet të mendojnë për ndikimin e ndryshimeve në vazhdimësinë e funksionimit të mbështetjeve.
Burimi: opennet.ru
