Rust dilini dəstəkləyən Linux nüvəsi üçün yamaqların yeni versiyası

Rust-for-Linux layihəsinin müəllifi Migel Ojeda, Linux nüvəsi tərtibatçıları üçün Rust cihaz sürücüsünün inkişafı üçün v5 komponentlərinin buraxılmasını təklif etdi. Bu, versiya nömrəsi olmadan dərc edilmiş ilk versiyanı nəzərə alaraq yamaqların altıncı nəşridir. Rust dəstəyi eksperimental sayılır, lakin artıq Linux-növbəti filialına daxil edilib və nüvə alt sistemləri üzərində abstraksiya qatlarının yaradılması, həmçinin drayverlərin və modulların yazılması üzərində işə başlamaq üçün kifayət qədər yetkindir. İnkişaf Google və Let's Encrypt layihəsinin yaradıcısı olan və HTTPS-i və internetin təhlükəsizliyini artırmaq üçün texnologiyaların inkişafını təşviq edən ISRG (Internet Security Research Group) tərəfindən maliyyələşdirilir.

Xatırladaq ki, təklif olunan dəyişikliklər Rust dilini drayverlərin və nüvə modullarının hazırlanması üçün ikinci dil kimi istifadə etməyə imkan verir. Rust dəstəyi defolt olaraq aktivləşdirilməyən və kernel üçün tələb olunan qurma asılılıqları sırasına Rust-un daxil edilməsi ilə nəticələnməyən seçim kimi təqdim olunur. Sürücüləri inkişaf etdirmək üçün Rust-dan istifadə sizə minimum səylə yaddaş sahəsinə daxil olmaq, boş göstəricilərə istinad etmək və bufer aşmaq kimi problemlərdən azad olaraq daha təhlükəsiz və daha yaxşı drayverlər yaratmağa imkan verəcək.

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.

Yamaların yeni versiyası yamaqların birinci, ikinci, üçüncü, dördüncü və beşinci nəşrlərinin müzakirəsi zamanı edilən şərhləri aradan qaldırmağa davam edir. Yeni versiyada:

  • Alətlər dəsti Rust 1.59.0 versiyasına yeniləndi. Ayrılan kitabxananın bir variantı da Rust-un yeni versiyası ilə sinxronlaşdırılaraq, yaddaşın tükənməsi kimi səhvlər baş verdikdə mümkün "çaxnaşma" vəziyyətindən xilas olur. Assembler əlavələrindən ("xüsusiyyət (qlobal_asm)") istifadə etmək qabiliyyəti sabitləşdi.
  • Kernel kompilyasiya prosesində istifadə edilən Rust host proqramlarının yaradılması üçün əlavə dəstək.
  • Əvvəlcədən yaradılmış hədəf platforma spesifikasiya fayllarını təmin etmək əvəzinə, onlar nüvə konfiqurasiyası əsasında dinamik şəkildə yaradılır.
  • Rust-u dəstəkləyən arxitekturalar üçün aktiv olmaq üçün HAVE_RUST kernel parametri əlavə edildi.
  • Abstraksiyalar aparat psevdo-təsadüfi nömrə generatorunun Rust kodunda istifadə üçün təklif olunur.
  • "Xəta::" prefiksi (məsələn, "qaytarma Err(EINVAL)") olmadan xəta kodlarının istifadəsinə C-də xəta kodlarının işlənməsini təqribən qiymətləndirməyə icazə verilir.
  • Doğma C-sətirləri üçün "CString" növü əlavə edildi. Birləşdirilmiş Formatter və Bufer növləri.
  • Bool və LockInfo xüsusiyyətləri əlavə edildi.
  • Spin-lockların sadələşdirilmiş icrası.

Mənbə: opennet.ru

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