Rust për Linux në telashe, tension dhe mosmarrëveshje tashmë kanë dalë në dritë 

Rust për problemet me Linux

Duket se ky vit nuk do të jetë viti i Linux-it, pasi edhe pse në tremujorin e fundit të vitit të kaluar gjithçka dukej sikur Linux dhe desktopët do të ngriheshin në 2025, gjërat nuk janë gjithmonë ashtu siç duken.

Dhe vetëm pak ditë më parë, Christoph Hellwig, një figurë e shquar në mirëmbajtjen e nënsistemeve kritike si DMA, KVM, Slab Allocator dhe PowerPC në kernel Linux , e bëri të qartë refuzimin e tij të mbështetjes së patch-eve që lehtësojnë zhvillimin e drajverëve në Rust.

Christoph Hellwig përmend se patch-et në fjalë propozonin përfshirjen e mbështjellësve rreth funksioneve të nënsistemit DMA për të lejuar që drajverët e shkruar në Rust ta përdorin atë. Megjithatë, ai argumenton se kjo strategji e ndërlikon mirëmbajtjen e kodit dhe se qartësia e ndërfaqeve C duhet të ruhet , duke shmangur zgjerimin e abstraksioneve që mund të pengojnë integrimin me pjesën tjetër të kernelit.

Problemet e përzierjes së gjuhëve në një projekt

Sipas Hellwig, problemi kryesor qëndron në faktin se integrimi i kodit Rust krijon varësi që i detyrojnë zhvilluesit e nënsistemit C të marrin në konsideratë ndikimin e modifikimeve të tyre në kodin lidhës Rust. Kjo do të thotë se çdo përshtatje në strukturat ose funksionet e brendshme të C mund të kërkojë ndryshime paralele në kodin Rust, duke krijuar një skenar që është i vështirë për t'u mirëmbajtur në planin afatgjatë.

Për të shmangur këtë situatë, Hellwig rekomandoi që drajverët në Rust të qasen drejtpërdrejt në API-në native të DMA në C, në vend që të përdorin mbështjellës shtesë që, sipas mendimit të tij, do të kompromentonin mirëmbajtjen e bërthamës.

Zhvilluesit që propozuan patch-et argumentuan se ata do të mirëmbanin kodin Rust dhe, për këtë qëllim, i kishin organizuar lidhjet në një nën-drejtori specifike (rust/kernel/dma.rs). Megjithatë, Hellwig i vuri veton këtyre propozimeve, duke paralajmëruar se nuk kishte nevojë të merrte përsipër përgjegjësinë e integrimit të kodit nga gjuhë të tjera në nën-sistemet kryesore.

Për më tepër, ai komentoi fuqishëm se nëse doni ta transformoni kernelin në një mozaik të shumë gjuhëve, duhet të filloni me drejtuesit e Rust në vend që të impononi këtë kompleksitet në fusha themelore.

Polemikat u intensifikuan kur figura si Jason Gunthorpe, mirëmbajtës i TPM, VFIO dhe Infiniband në NVIDIA, ndanë shembuj se si ndryshimet në nënsistemet e memories, ndërsa ishin të sakta nga perspektiva e kodit C, shkaktuan probleme gjatë përpjekjes për të kompiluar bërthamën me mbështetjen e Rust. Këto incidente treguan se lidhjet midis C dhe Rust mund të sjellin varësi shtesë që pengojnë zhvillimin e koordinuar.

Vlen të përmendet se diskutimi nuk u kufizua vetëm në aspektet teknike. Héctor Martín sugjeroi që zgjidhja mund të ishte miratimi i lidhjes direkt përmes Linus Torvalds, duke anashkaluar mirëmbajtësin e nënsistemit DMA. Megjithatë, kjo qasje mund të prishë strukturën tradicionale hierarkike të zhvillimit të bërthamës.

Hektori gjithashtu vuri në dukje sjelljet që ai i konsideronte toksike, madje duke përmendur se kritikat e Hellwig, në të cilat ai e krahasoi Rust-in me një "tumor kanceroz", kishin kontribuar në zhgënjimin e tij dhe, në fund të fundit, në vendimin e tij për t'u larguar si mirëmbajtës i platformës ARM/Apple në bërthamën kryesore. Pavarësisht dorëheqjes së tij, platforma do të vazhdojë të mbështetet nga Sven Peter, i cili është zotuar të vazhdojë mirëmbajtjen e saj.

Linus Torvalds u bashkua në bisedë , duke theksuar se procesi i zhvillimit të bërthamës , ndonëse i papërsosur, po funksionon dhe se diskutimet teknike duhet të përqendrohen te patch-et , pa u ndikuar nga presionet e jashtme ose ngacmimet në mediat sociale. Për Torvalds , fokusi duhet të jetë thjesht teknik, duke lënë mënjanë mosmarrëveshjet personale.

Refuzimi i Christoph Hellwig për të inkorporuar mbështjellëset Rust në nënsistemin DMA nxjerr në pah tensionet midis zhvilluesve të kernelit Linux. Ndërsa disa e shohin Rust si një mjet të fuqishëm për krijimin e projekteve të reja, të tjerë kanë frikë se integrimi i shumë gjuhëve mund të pengojë mirëmbajtjen dhe qëndrueshmërinë e bazës së kodit.

Situata mbetet një temë debati dhe mund të ketë implikime të rëndësishme për të ardhmen e mbështetjes së Rust në kernel. Sidoqoftë, ajo që është e qartë është se komuniteti i zhvilluesve të Linux vazhdon të përballet me sfida komplekse, ku vendimet teknike duhet të merren në konsideratë me kujdes për të siguruar qëndrueshmërinë afatgjatë të projektit.


Shto si burim të preferuar në Google