Linux yadrosi uchun Rust qo'llab-quvvatlash Torvalds tomonidan tanqidga duch keladi

Linus Torvalds Linux yadrosi uchun Rust tilida drayverlarni yaratish qobiliyatini amalga oshiruvchi yamoqlarni ko'rib chiqdi va ba'zi tanqidiy izohlar berdi.

Eng katta shikoyatlar xatolik holatlarida, masalan, dinamik xotirani taqsimlash operatsiyalari, shu jumladan yadro ichida ishlamay qolishi mumkin bo'lgan xotira kamligida vahima() ning potentsial ehtimoli bilan bog'liq. Torvalds yadrodagi bunday yondashuvni tubdan qabul qilib bo'lmasligini va agar bu nuqta tushunilmagan bo'lsa, u bunday yondashuvdan foydalanishga urinayotgan har qanday kodni butunlay NAKlashi mumkinligini aytdi. Boshqa tomondan, yamoq ishlab chiqaruvchisi bu muammoga rozi bo'ldi va uni hal qilish mumkin deb hisoblaydi.

Yana bir muammo, Linux yadrosi kabi muhitlar uchun qabul qilinmaydigan suzuvchi nuqta yoki 128-bitli turlardan foydalanishga urinishlar edi. Bu jiddiyroq muammo bo'lib chiqdi, chunki hozirda asosiy Rust kutubxonasi bo'linmas va bitta katta blokni ifodalaydi - u yoki bu muammoli funksiyalardan foydalanishga to'sqinlik qiladigan faqat ba'zi xususiyatlarni so'rashning iloji yo'q. Muammoni hal qilish zang kompilyatoriga va kutubxonalarga o'zgartirishlar kiritishni talab qilishi mumkin, garchi hozirda jamoada til kutubxonalarini modullashtirishni qanday amalga oshirish bo'yicha strategiya mavjud emas.

Bundan tashqari, Torvalds taqdim etilgan haydovchi misoli foydasiz ekanligini ta'kidladi va bizga haqiqiy muammolardan birini hal qiladigan ba'zi drayverlardan misol sifatida foydalanishni maslahat berdi.

Yangilash: Google Rust-ni Linux yadrosiga kiritish tashabbusida ishtirok etishini e'lon qildi va xotira xatolaridan kelib chiqadigan muammolarga qarshi kurashish uchun Rust-ni joriy qilishning texnik sabablarini taqdim etdi. Google Rust Linux yadro komponentlarini ishlab chiqish tili sifatida C tiliga qo'shilishga tayyor deb hisoblaydi. Maqolada, shuningdek, Android platformasida foydalanish kontekstida yadro drayverlarini ishlab chiqish uchun Rust tilidan foydalanish misollari keltirilgan (Rust Android rivojlanishi uchun rasmiy ravishda qo'llab-quvvatlanadigan til sifatida tan olingan).

Qayd etilishicha, Google Binder protsesslararo aloqa mexanizmi uchun Rust tilida yozilgan drayverning dastlabki prototipini tayyorlagan, bu esa C va Rust-da Binder ilovalarining ishlashi va xavfsizligini batafsil taqqoslash imkonini beradi. Hozirgi shaklda ish hali tugallanmagan, ammo Binder ishlashi uchun zarur bo'lgan yadro funksionalligining deyarli barcha asosiy abstraksiyalari uchun Rust kodida ushbu abstraksiyalardan foydalanish uchun qatlamlar tayyorlangan.

Manba: opennet.ru

a Izoh qo'shish