Rust-un Linux nüvəsinə daxil edilməsi ilə bağlı qızğın mübahisə hakerlər cəmiyyətində xeyli müddətdir ki, davam edir. Çoxumuz bununla bağlı həm şırnaq, həm də tərəddüdləri tanıyırıq. İndiyə qədər müzakirələrin əksəriyyəti Rust-un təhlükəsizlik faydaları və mövcud C-əsaslı ekosistemə inteqrasiyanın çətinlikləri kimi təcili məsələlərə yönəldilib. İndi Linus Torvalds bu ideyanın üzərindədir , Rust artıq sevimli əməliyyat sistemimizin mənbə koduna daxil olmağa başlayıb.
Beləliklə, əsl sual Linux nüvəsində Rustdan istifadə edib -etməmək deyil, necə . Axı Rust başqa bir proqramlaşdırma dili deyil; həm də tam hüquqlu dizayn fəlsəfəsidir. Bu, daha az yaddaş pozğunluğu səhvləri ilə C-nin təkmilləşdirilməsi deyil, ciddi qaydalar toplusunu məcbur edən və bununla da bir çox potensial səhvlərin qarşısını alan kod yazma sistemidir. İnanıram ki, Rust-u Linux nüvəsinə daxil edərkən diqqət etməli olduğumuz əsas cəhət budur.
Təşkilati çoxşaxəliliyə dair araşdırmaya görə, Linux kimi çox irimiqyaslı layihələr uyğunlaşa bilən, aktual və uğurlu qalmaq üçün davamlı olaraq iki növ fəaliyyətlə məşğul olmalıdır:
Tədqiqatlar həmçinin göstərir ki, qısamüddətli yönümlü istismar fəaliyyətləri uzunmüddətli yönümlü kəşfiyyat fəaliyyətlərini qovmağa meyllidir . Bu, yeni bir bacarıq öyrənmək və ya qeyri-ənənəvi bir layihə üzərində işləmək istəməyə bənzəyir, lakin bunun əvəzinə həmişə gündəlik işlərə üstünlük verir. Eyni şey Linux kimi böyük layihələrə də aiddir; qısamüddətli səmərəliliyə çox diqqət yetirsələr, uzunmüddətli dövrdə köhnəlmək riski ilə üzləşirlər. Layihə eyni qalarkən dünya dəyişməyə davam edir və onun təkliflərini inkişaf edən istifadəçi ehtiyaclarına getdikcə daha çox uyğunsuz edir.
Bir tərəfdən Rust-u qəbul etmək çox qeyri-ənənəvi bir təcrübədir və Linux üçün kəşfiyyat fəaliyyəti kimi qiymətləndirilə bilər. Bu baxımdan, Rustun daxil olması əsaslıdır. Bununla birlikdə, digər tərəfdən, hər cür çılğınlığı və qeyri-müəyyən davranışı açıq silahlarla əhatə edən və onu aşağı səviyyəli hakerlik üçün əsas dil halına gətirən C-dən fərqli olaraq, Rust kodu yazmaq üçün müəyyən strukturlaşdırılmış bir üsul tətbiq edən daxili bürokratiyaya malikdir. Müəyyən mənada Rust, Six Sigma kimi metodologiyalara bənzər həm proqramlaşdırma dili, həm də proseslərin idarə edilməsi sistemi kimi fəaliyyət göstərir. Xüsusi, strukturlaşdırılmış kod yazmaq üsulu, şübhəsiz ki, prosesləri sadələşdirməyə və təhlükəsizlik zəiflikləri və etibarlılıq məsələləri kimi qısamüddətli nəticələri yaxşılaşdırmağa kömək edə bilər. Bununla belə, digər proses idarəetmə sistemlərində olduğu kimi , bu sərtlik də uzunmüddətli çeviklik və uyğunlaşma üçün risklər təqdim edir.
Buna görə də, Rust-un prosesləri sadələşdirmək və onları daha təhlükəsiz etməkdə xidmətləri xüsusilə uzunmüddətli uyğunlaşmanın daha az kritik olduğu kernel komponentlərində parlaq olacaq. Məsələn, cihaz sürücüləri birbaşa xarici girişlərlə qarşılıqlı əlaqədə olur və yaddaş təhlükəsizliyi və etibarlılığı baxımından yüksək riskli komponentlərdir. Beləliklə, onları Rust ilə yazmağın mənası var. Yeni qurğular tez-tez köhnələrini əvəz etdikcə, onlar da nisbətən qısa ömürlü olurlar. Başqa sözlə, Rust metodologiyasının kəşfiyyatı azalda biləcəyi ilə bağlı narahatlıq və ya kod yazma fəlsəfələrindəki dəyişikliklər səbəbindən nəhayət Rustdan uzaqlaşmaq istəyə biləcəyimiz ehtimalı daha az aktuallaşır. Rust ilə cihaz drayveri işlənib hazırlandıqda o, adətən daha təhlükəsiz və etibarlı olur və digər komponentlər bu kod üzərində qurulmur. Nəticədə, bir neçə onilliklər ərzində heç kəsi xüsusi kod yazmağa məcbur etmir.
Bunun əksinə olaraq, planlayıcı kimi nüvənin əsas komponentləri gələcək problemlərə və yeni paradiqmalara uyğunlaşmaq üçün uyğunlaşa bilməlidir. Bu ərazilərdə Rustdan istifadə kəşfiyyata mane olan və köhnəlməyə səbəb olan sərtliklər yarada bilər. Bunu belə düşünün: Gələcək kod bu gün qurulan komponentlər üzərində qurulmalıdır və nəhayət, proqram təminatının fərqli bir fəlsəfəsinin gələcəkdə daha sərfəli olduğu sübuta yetirildikdə, yüksək çevik C kodu ümumiyyətlə yeni yanaşmaya çevrilənə qədər tədricən dəyişdirilə bilər (artan strateji yenilənmə). Bunun əksinə olaraq, Rust kod yazmaq üçün özünəməxsus şəkildə israr edir, buna görə də bu, köhnə yanaşma ilə onu sıfırdan yazmaqdansa inkişaf etməyə davam etmək dilemmasına səbəb ola bilər. Nəzərə alsaq ki, pulsuz proqram təminatı kifayət qədər sayda ixtisaslı və müntəzəm könüllülər, eləcə də kifayət qədər müntəzəm maliyyə vəsaiti tapmaqda həmişə çətinliklərlə üzləşib, artan təkmilləşdirmə komponenti atmaq və sıfırdan yazmaq kimi böyük bir layihəni həyata keçirmək qərarına gəlməkdən həmişə daha asandır. Buna görə də, kodun müəyyən bir şəkildə yazılmasında israr edən hər hansı bir dil gələcəkdə Linux-u kod yazmağın köhnə üsulunu davam etdirməyə və qabaqcıl mövqeyini itirməyə məcbur edə bilər.
Qısaca olaraq, mən hibrid strategiya təklif edirəm ki, burada Rust daha çox təhlükəsizliyin vacib olduğu qısamüddətli komponentlər üçün istifadə olunur, C isə gələcək paradiqmalar və yanaşmalar üçün çevikliyi qorumaq üçün uzunmüddətli komponentlər üçün prioritet olaraq hardware üçün xüsusi olmayan ən çevik dildir.