WD Rust-da NVMe sürücüsünü inkişaf etdirir. FreeBSD-də Rust ilə təcrübə

Bu günlərdə davam edən Linux Plumbers 2022 konfransında Western Digital şirkətindən mühəndis Rust-da yazılmış və Linux nüvəsi səviyyəsində işləyən NVM-Express (NVMe) SSD-lər üçün eksperimental drayverin inkişafı haqqında təqdimat etdi. Layihənin hələ inkişafın ilkin mərhələsində olmasına baxmayaraq, aparılan sınaqlar göstərdi ki, Rust NVMe sürücüsünün performansı nüvədə C hərfində yazılmış NVMe sürücüsünə uyğun gəlir.

WD Rust-da NVMe sürücüsünü inkişaf etdirir. FreeBSD-də Rust ilə təcrübə
WD Rust-da NVMe sürücüsünü inkişaf etdirir. FreeBSD-də Rust ilə təcrübə

Hesabatda deyilir ki, C dilində mövcud NVMe sürücüsü tərtibatçılar üçün tamamilə qənaətbəxşdir, lakin NVMe alt sistemi Rust-da drayverlərin hazırlanmasının mümkünlüyünü araşdırmaq üçün yaxşı platformadır, çünki o, kifayət qədər sadədir, geniş istifadə olunur, yüksək performans tələblərinə malikdir və sübut edilmiş istinad tətbiqi.müqayisə üçün və müxtəlif interfeysləri dəstəkləyir (dev, pci, dma, blk-mq, gendisk, sysfs).

Qeyd olunur ki, Rust PCI NVMe drayveri artıq əməliyyat üçün lazım olan funksionallığı təmin edir, lakin geniş istifadəyə hələ hazır deyil, çünki o, ayrıca təkmilləşdirmələr tələb edir. Gələcək üçün planlara mövcud təhlükəli bloklardan qurtulmaq, cihazın çıxarılması və drayverin boşaldılması üçün dəstək, sysfs interfeysinin dəstəklənməsi, tənbəl başlatmanın həyata keçirilməsi, blk-mq üçün drayverin yaradılması və queue_rq üçün asinxron proqramlaşdırma modeli ilə sınaqlar daxildir.

Əlavə olaraq, FreeBSD nüvəsi üçün Rust dilində drayverlər hazırlamaq üçün NCC Group tərəfindən aparılan təcrübələri qeyd edə bilərik. Nümunə olaraq, /dev/rustmodule faylına yazılmış məlumatları qaytaran sadə əks-səda drayveri ətraflı təhlil edilir. Təcrübənin növbəti mərhələsində NCC Group şəbəkə və fayl əməliyyatlarının təhlükəsizliyini yaxşılaşdırmaq üçün Rust-da əsas əsas komponentlərin yenidən işlənməsini nəzərdən keçirir.

Bununla belə, Rust-da sadə modulların yaradılmasının mümkün olduğu göstərilsə də, Rust-un FreeBSD nüvəsinə daha sıx inteqrasiyası əlavə iş tələb edəcəkdir. Məsələn, Rust for Linux layihəsinin hazırladığı əlavələrə bənzər alt sistemlər və nüvə strukturları üzərində abstraksiya qatları toplusunun yaradılması zərurətindən bəhs edir. Gələcəkdə biz Illumos nüvəsi ilə oxşar təcrübələr keçirməyi və Linux, BSD və Illumos üçün Rust ilə yazılmış drayverlərdə istifadə oluna bilən Rustda ümumi abstraksiyaları vurğulamağı planlaşdırırıq.

“Microsoft” və “Google” şirkətlərinin hesablamalarına görə, onların proqram məhsullarındakı boşluqların təxminən 70%-i təhlükəli yaddaşın idarə edilməsindən qaynaqlanır. Güman edilir ki, Rust dilinin istifadəsi yaddaşın təhlükəli işlənməsi nəticəsində yaranan zəiflik riskini azaldacaq və yaddaş sahəsi boşaldıqdan sonra ona daxil olmaq və bufer aşmaq kimi xətaların baş verməsini aradan qaldıracaq.

Yaddaşın təhlükəsiz işləməsi Rust-da kompilyasiya zamanı istinad yoxlaması, obyekt sahibliyi və obyektin istifadə müddətini (əhatə dairəsini) izləmək, həmçinin kodun icrası zamanı yaddaşa girişin düzgünlüyünün qiymətləndirilməsi vasitəsilə təmin edilir. Rust həmçinin tam ədədlərin daşmasına qarşı qorunma təmin edir, istifadə etməzdən əvvəl dəyişən dəyərlərin məcburi işə salınmasını tələb edir, standart kitabxanada səhvləri daha yaxşı idarə edir, dəyişməz istinadlar və dəyişənlər konsepsiyasını standart olaraq tətbiq edir, məntiqi səhvləri minimuma endirmək üçün güclü statik yazma təklif edir.

Mənbə: opennet.ru

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