Mjadala mkali kuhusu kujumuisha Rust kwenye kernel ya Linux umekuwa ukiendelea kwa muda mrefu katika jamii ya wadukuzi. Wengi wetu tunatambua hype na kusitasita juu yake. Kufikia sasa, mijadala mingi imelenga masuala ya mara moja, kama vile manufaa ya usalama ya Rust na changamoto za kuijumuisha katika mfumo ikolojia uliopo wa C. Sasa kwa kuwa Linus Torvalds yuko kwenye bodi na wazo hili , Rust tayari imeanza kuingia katika msimbo wa chanzo wa mfumo wetu wa uendeshaji tunaopenda.
Kwa hivyo, swali la kweli sio kama kutumia Rust kwenye kernel ya Linux, lakini jinsi . Baada ya yote, kutu si tu lugha nyingine ya programu; pia ni falsafa ya muundo kamili. Sio uboreshaji wa C na hitilafu chache za uharibifu wa kumbukumbu, lakini mfumo wa kuandika msimbo ambao unalazimisha kanuni kali, na hivyo kuzuia makosa mengi yanayoweza kutokea. Ninaamini kuwa hii ndio kipengele muhimu tunachohitaji kuzingatia wakati wa kupachika Rust kwenye kernel ya Linux.
Kulingana na utafiti kuhusu ambidexterity ya shirika , miradi mikubwa sana kama vile Linux lazima iendelee kushiriki katika aina mbili za shughuli ili kusalia kubadilika, kufaa, na kufaulu:
Utafiti pia unaonyesha kuwa shughuli za unyonyaji zenye mwelekeo wa muda mfupi huwa zinaondoa shughuli za utafutaji zenye mwelekeo wa muda mrefu . Hii ni kama kutaka kujifunza ujuzi mpya au kufanya kazi kwenye mradi usio wa kawaida lakini kila wakati unatanguliza kazi za kila siku badala yake. Vile vile hutumika kwa miradi mikubwa kama Linux; ikiwa wanazingatia sana ufanisi wa muda mfupi, wana hatari ya kuwa kizamani kwa muda mrefu. Ulimwengu unaendelea kubadilika huku mradi ukisalia sawa, na kufanya matoleo yake yanazidi kutokuwa na umuhimu kwa mahitaji ya watumiaji yanayoendelea.
Kwa upande mmoja, kutumia Rust ni jaribio lisilo la kawaida ambalo linaweza kuzingatiwa kama shughuli ya uchunguzi wa Linux. Kwa mtazamo huu, ujumuishaji wa Rust una msingi mzuri. Hata hivyo, kwa upande mwingine, tofauti na C—ambayo inakumbatia kila aina ya ukichaa na tabia isiyobainishwa kwa mikono wazi, na kuifanya kuwa lugha ya kawaida kwa udukuzi wa kiwango cha chini—Rust ina urasimu wa ndani unaotekeleza njia fulani iliyoundwa ya kuandika msimbo. Kwa maana fulani, Rust hufanya kazi kama lugha ya programu na mfumo wa usimamizi wa mchakato, sawa na mbinu kama Six Sigma. Njia mahususi, iliyopangwa ya kuandika msimbo bila shaka inaweza kusaidia kurahisisha michakato na kuboresha matokeo ya muda mfupi, kama vile udhaifu wa usalama na masuala ya kutegemewa. Hata hivyo, kama ilivyo kwa mifumo mingine ya usimamizi wa mchakato , ugumu huu pia huleta hatari kwa wepesi wa muda mrefu na kubadilika.
Kwa hivyo, sifa za Rust katika kurahisisha michakato na kuzifanya kuwa salama zinaweza kung'aa haswa katika vipengee vya kernel ambapo kubadilika kwa muda mrefu sio muhimu sana. Kwa mfano, viendeshi vya kifaa huingiliana moja kwa moja na pembejeo za nje na ni vipengele vya hatari kubwa kwa suala la usalama wa kumbukumbu na kuegemea. Kwa hivyo, inaeleweka kuziandika na Rust. Pia huwa na muda mfupi wa kuishi, kwani vifaa vipya mara nyingi hubadilisha vya zamani. Kwa maneno mengine, wasiwasi kwamba mbinu ya kutu inaweza kupunguza uchunguzi, au uwezekano kwamba hatimaye tunaweza kutaka kuondoka kutoka kwa Kutu kwa sababu ya mabadiliko ya falsafa za uandishi wa msimbo inakuwa haifai sana. Wakati kiendeshi cha kifaa kinapoundwa na Rust, kwa kawaida ni salama na inategemewa zaidi, na vipengele vingine havijajengwa kwenye msimbo huu. Kwa hivyo, hailazimishi mtu yeyote kwa njia fulani ya kuandika msimbo katika miongo michache.
Kinyume chake, vipengele vya msingi vya kernel, kama vile kipanga ratiba, vinahitaji kusalia kubadilika ili kushughulikia changamoto za siku zijazo na dhana mpya. Kutumia Kutu katika maeneo haya kunaweza kuleta ugumu ambao unazuia uchunguzi na kusababisha kutotumika. Ifikirie hivi: Msimbo wa siku zijazo unahitaji kujengwa juu ya vipengee vinavyojengwa leo, na hatimaye falsafa tofauti ya programu ya uandishi itathibitika kuwa ya manufaa zaidi katika siku zijazo, msimbo wa C unaonyumbulika sana kwa ujumla unaweza kubadilishwa kwa kuongezeka hadi ubadilishwe kuwa mbinu mpya (usasishaji wa kimkakati unaoongezeka). Kinyume chake, Rust inasisitiza juu ya njia yake ya kuandika msimbo, kwa hivyo hii inaweza kusababisha shida ya kuendelea kukuza na mbinu ya zamani dhidi ya kuiandika kutoka mwanzo. Kwa kuzingatia kwamba programu ya bure imekuwa na matatizo katika kupata idadi ya kutosha ya wafanyakazi wa kujitolea waliohitimu na wa kawaida pamoja na kiasi cha kutosha cha ufadhili wa kawaida, uboreshaji wa ziada daima ni rahisi zaidi kuliko kuamua kutekeleza mradi mkubwa kama vile kutupa sehemu na kuandika kutoka mwanzo. Kwa hivyo, lugha yoyote ambayo inasisitiza njia fulani ya kuandika msimbo inaweza kuwa dhima katika siku zijazo, na kulazimisha Linux kuendelea na njia ya zamani ya kuandika msimbo na kupoteza nafasi yake ya kisasa.
Kwa kifupi, ninapendekeza mkakati mseto ambapo Rust inatumiwa zaidi kwa vipengee vya muda mfupi ambapo usalama ni muhimu, huku C—lugha ya kisasa zaidi ambayo si mahususi kwa maunzi—inapewa kipaumbele kwa vipengele vya muda mrefu ili kudumisha kubadilika kwa dhana na mbinu za siku zijazo.