Чини се да ова година неће бити година Линукса, јер иако је у последњем кварталу прошле године све изгледало као да ће Линук и десктоп рачунари кренути 2025. године, ствари нису увек онако како изгледају.
И пре само неколико дана, Кристоф Хелвиг, истакнута личност у одржавању критичних подсистема као што су DMA, KVM, Slab Allocator и PowerPC у Линуксовом језгру , јасно је ставио до знања да одбацује подршку закрпама које олакшавају развој драјвера у Русту.
Кристоф Хелвиг помиње да су спорне закрпе предложиле укључивање омотача око функција DMA подсистема како би се омогућило драјверима написаним у Русту да га користе. Међутим, он тврди да ова стратегија компликује одржавање кода и да треба сачувати јасноћу C интерфејса , избегавајући проширење апстракција које би могле да ометају интеграцију са остатком језгра.
Проблеми мешања језика у пројекту
Према Хелвигу, главни проблем лежи у чињеници да интеграција Rust кода ствара зависности које приморавају програмере C подсистема да размотре утицај својих модификација на Rust линкинг код. То значи да би свако прилагођавање интерних C структура или функција могло захтевати паралелне измене Rust кода, стварајући сценарио који је тешко одржати на дужи рок.
Да би се избегла ова ситуација, Хелвиг је препоручио да драјвери у Русту директно приступају изворном DMA API-ју у C-у, уместо да прибегавају додатним омотачима који би, по његовом мишљењу, угрозили одржавање језгра.
Програмери који су предложили закрпе тврдили су да ће задржати Rust код и да су у том циљу организовали линкове у посебном поддиректоријуму (rust/kernel/dma.rs). Међутим, Хелвиг је ставио вето на ове предлоге, упозоравајући да не мора да преузме одговорност за интеграцију кода из других језика у основне подсистеме.
Поред тога, снажно је коментарисао да ако желите да трансформишете кернел у мозаик више језика, требало би да почнете са Руст-овим драјверима уместо да намећете ову сложеност у фундаменталним областима.
Контроверза се интензивирала када су личности попут Џејсона Ганторпа, одржаваоца TPM-а, VFIO-а и Infiniband-а у NVIDIA-и, поделиле примере како су промене меморијских подсистема, иако исправне из перспективе C кода, изазвале проблеме при покушају компајлирања језгра са подршком за Rust. Ови инциденти су показали да везе између C-а и Rust-а могу увести додатне зависности које ометају координисани развој.
Вреди напоменути да дискусија није била ограничена само на техничке аспекте. Ектор Мартин је предложио да би решење могло бити усвајање везе директно преко Линуса Торвалдса, заобилазећи одржаваоца DMA подсистема. Међутим, овај приступ би могао да поремети традиционалну хијерархијску структуру развоја језгра.
Хектор је такође указао на понашања која је сматрао токсичним, чак је поменуо да је Хелвигова критика, у којој је упоредио Руста са „канцерозним тумором“, допринела његовој фрустрацији и, на крају крајева, његовој одлуци да се повуче са места одржаваоца ARM/Apple платформе у главном језгру. Упркос његовој оставци, платформу ће наставити да подржава Свен Петер, који се обавезао да ће наставити њено одржавање.
Линус Торвалдс се придружио разговору , наглашавајући да процес развоја језгра , иако несавршен, функционише и да би техничке дискусије требало да се фокусирају на закрпе , без утицаја спољних притисака или узнемиравања на друштвеним мрежама. За Торвалдса , фокус би требало да буде искључиво технички, остављајући личне спорове по страни.
Одбијање Кристофа Хелвига да угради Руст омоте у ДМА подсистем наглашава тензије између програмера Линук кернела. Док неки виде Руст као моћан алат за креирање нових пројеката, други страхују да би интеграција више језика могла да омета одржавање и доследност кодне базе.
Ситуација остаје предмет дебате и могла би имати значајне импликације на будућност подршке за Руст у језгру. У сваком случају, оно што је јасно јесте да се заједница развојних инжењера Линукса и даље суочава са сложеним изазовима, где техничке одлуке морају бити пажљиво размотрене како би се осигурала дугорочна одрживост пројекта.