Linux nüvəsi üçün Rust dəstəyi Torvalds tərəfindən tənqidlə üzləşir

Linus Torvalds Linux nüvəsi üçün Rust dilində drayverlər yaratmaq qabiliyyətini həyata keçirən yamaqları nəzərdən keçirdi və bəzi tənqidi şərhlər etdi.

Ən böyük şikayətlər, səhv vəziyyətlərdə, məsələn, nüvə daxilində dinamik yaddaşın yerləşdirilməsi əməliyyatlarının uğursuz ola biləcəyi zaman, məsələn, aşağı yaddaş vəziyyətində panic() potensial imkanları ilə əlaqədardır. Torvalds, nüvədə belə bir yanaşmanın kökündən qəbuledilməz olduğunu və əgər bu məqam başa düşülməzsə, belə bir yanaşmadan istifadə etməyə çalışan istənilən kodu tamamilə NAK edə biləcəyini bildirdi. Digər tərəfdən, yamaq tərtibatçısı bu problemlə razılaşdı və onu həll edilə bilən hesab edir.

Digər problem üzən nöqtələrdən və ya Linux nüvəsi kimi mühitlər üçün məqbul olmayan 128 bitlik növlərdən istifadə cəhdləri idi. Bu, daha ciddi bir problem oldu, çünki hazırda əsas Rust kitabxanası bölünməzdir və bir böyük blob təmsil edir - bu və ya digər problemli funksionallığın istifadəsinə mane olan yalnız bəzi xüsusiyyətləri tələb etmək üçün heç bir yol yoxdur. Problemin həlli pas tərtib edəndə və kitabxanalarda dəyişikliklər tələb edə bilər, baxmayaraq ki, hazırda komandanın dil kitabxanalarının modullaşdırılmasının necə həyata keçiriləcəyi ilə bağlı strategiyası yoxdur.

Bundan əlavə, Torvalds təqdim olunan sürücü nümunəsinin faydasız olduğunu qeyd etdi və bizə əsl problemlərdən birini həll edən hansısa sürücüdən nümunə götürməyi tövsiyə etdi.

Yeniləmə: Google, Rust dəstəyini Linux nüvəsinə daxil etmək təşəbbüsündə iştirak etdiyini elan etdi və yaddaş xətalarından yaranan problemlərlə mübarizə üçün Rust tətbiqinin texniki səbəblərini təqdim etdi. Google hesab edir ki, Rust Linux nüvə komponentlərini inkişaf etdirmək üçün C dilinə qoşulmağa hazırdır. Məqalədə həmçinin Android platformasında istifadə kontekstində kernel drayverlərinin hazırlanması üçün Rust dilindən istifadə nümunələri təqdim olunur (Rust Android inkişafı üçün rəsmi dəstəklənən dil kimi tanınır).

Qeyd edilir ki, Google C və Rust-da Binder tətbiqlərinin performansını və təhlükəsizliyini təfərrüatlı müqayisə etməyə imkan verəcək Binder proseslərarası əlaqə mexanizmi üçün Rust dilində yazılmış sürücünün ilkin prototipini hazırlayıb. Hazırkı formada iş hələ tamamlanmayıb, lakin Binderin işləməsi üçün lazım olan nüvə funksionallığının demək olar ki, bütün əsas abstraksiyaları üçün Rust kodunda bu abstraksiyalardan istifadə etmək üçün təbəqələr hazırlanmışdır.

Mənbə: opennet.ru

Добавить комментарий