Rust Android platformasının inkişafı üçün əsas dillər sırasına daxildir

Google şirkəti Rust proqramlaşdırma dilinin Android platformasının inkişafı üçün icazə verilən dillər sırasına daxil edildiyini elan edib. Rust dili tərtibçisi 2019-cu ildə Android mənbə ağacına daxil edildi, lakin bu dil üçün dəstək eksperimental olaraq qaldı. Android üçün planlaşdırılan ilk Rust komponentlərindən bəzilərinə Binder proseslərarası rabitə mexanizminin və Bluetooth yığınının yeni tətbiqləri daxildir.

Rust tətbiqi təhlükəsizliyin gücləndirilməsi, təhlükəsiz proqramlaşdırma üsullarının təşviqi və Android-də yaddaşla işləyərkən problemlərin müəyyən edilməsinin səmərəliliyinin artırılması layihəsi çərçivəsində həyata keçirilib. Qeyd olunur ki, “Android”də müəyyən edilmiş bütün təhlükəli boşluqların təxminən 70%-i yaddaşla işləyərkən baş verən səhvlərdən qaynaqlanır. Yaddaş təhlükəsizliyinə və avtomatik yaddaş idarəçiliyinə diqqət yetirən Rust-dan istifadə, pulsuz sonra giriş və bufer aşması kimi yaddaş xətaları nəticəsində yaranan zəiflik riskini azaldacaq.

Rust, istinad yoxlaması, obyekt sahibliyi və obyektin ömrünü izləmək (əhatə dairələri) vasitəsilə və icra zamanı yaddaşa girişlərin düzgünlüyünü qiymətləndirərək tərtib zamanı yaddaş təhlükəsizliyini təmin edir. 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 işə salınmasını tələb edir, standart kitabxanada daha yaxşı səhv idarə edilməsinə malikdir, defolt olaraq dəyişməz istinadlar və dəyişənlər anlayışından istifadə edir və məntiqi səhvləri minimuma endirmək üçün güclü statik yazma təklif edir.

Android-də yaddaş təhlükəsizliyi artıq dəstəklənən Kotlin və Java dillərində təmin edilir, lakin yüksək yükə görə sistem komponentlərini inkişaf etdirmək üçün uyğun deyil. Rust C və C++ dillərinə yaxın performansa nail olmağa imkan verir ki, bu da ondan platformanın aşağı səviyyəli hissələrinin və aparatla qarşılıqlı əlaqə üçün komponentlərin işlənib hazırlanmasında istifadə etməyə imkan verir.

C və C++ kodlarının təhlükəsizliyini təmin etmək üçün Android sandbox izolyasiyasından, statik analizdən və qeyri-səlis testindən istifadə edir. Sandbox izolyasiyasının imkanları məhduddur və öz imkanlarının həddinə çatmışdır (resurs istehlakı baxımından proseslərə sonrakı parçalanma praktiki deyil). Sandbox istifadə məhdudiyyətlərinə böyük əlavə xərclər və yeni proseslərin yaranması zərurəti ilə bağlı artan yaddaş istehlakı, həmçinin IPC-nin istifadəsi ilə bağlı əlavə gecikmələr daxildir.

Eyni zamanda, sandbox koddakı zəiflikləri aradan qaldırmır, yalnız riskləri azaldır və hücumu çətinləşdirir, çünki istismar bir deyil, bir neçə zəifliyin müəyyən edilməsini tələb edir. Kod testinə əsaslanan üsullar məhduddur ki, səhvləri müəyyən etmək üçün problemin özünü göstərməsi üçün şərait yaratmaq lazımdır. Bütün mümkün variantları əhatə etmək mümkün deyil, buna görə də bir çox səhvlər diqqətdən kənarda qalır.

Android-də sistem prosesləri üçün Google "iki qayda"ya riayət edir, ona görə hər hansı əlavə kod üç şərtdən ikisindən çox olmamalı: təsdiq edilməmiş daxiletmə məlumatları ilə işləmək, təhlükəli proqramlaşdırma dilindən (C/C++) istifadə etmək və ciddi sandbox izolyasiyası olmadan işləyir (yüksək imtiyazlara malikdir). Bu qayda o deməkdir ki, xarici məlumatların emalı üçün kod ya minimal imtiyazlara endirilməlidir (təcrid olunmuş) və ya təhlükəsiz proqramlaşdırma dilində yazılmalıdır.

Google Rust-da mövcud C/C++ kodunu yenidən yazmağı hədəfləmir, lakin yeni kod hazırlamaq üçün bu dildən istifadə etməyi planlaşdırır. Rust-dan yeni kod üçün istifadə etmək məntiqlidir, çünki statistik olaraq əksər səhvlər yeni və ya bu yaxınlarda dəyişdirilmiş kodda görünür. Xüsusilə, Android-də aşkar edilən yaddaş xətalarının təxminən 50%-i bir ildən az əvvəl yazılmış kodda aşkar edilir.

Rust Android platformasının inkişafı üçün əsas dillər sırasına daxildir


Mənbə: opennet.ru

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