Rust хэлний дэмжлэгтэй Линуксийн цөмийн шинэ хувилбар

Rust-for-Linux төслийн зохиогч Мигель Ожеда Linux цөмийн хөгжүүлэгчдийн авч үзэхийн тулд Rust хэл дээрх төхөөрөмжийн драйверуудыг боловсруулахад зориулсан v5 бүрэлдэхүүн хэсгүүдийг гаргахыг санал болгов. Энэ бол хувилбарын дугааргүйгээр хэвлэгдсэн эхний хувилбарыг харгалзан засварын зургаа дахь хэвлэл юм. Rust дэмжлэг нь туршилтын гэж тооцогддог боловч linux-дараагийн салбарт аль хэдийн орсон бөгөөд цөмийн дэд системүүд дээр хийсвэрлэх давхарга үүсгэх, түүнчлэн драйвер, модулиудыг бичих ажлыг эхлүүлэхэд хангалттай хөгжсөн. Энэхүү бүтээн байгуулалтыг Google болон ISRG (Интернетийн аюулгүй байдлын судалгааны групп) санхүүжүүлдэг бөгөөд энэ нь Let's Encrypt төслийн үүсгэн байгуулагч бөгөөд HTTPS болон интернетийн аюулгүй байдлыг сайжруулах технологийн хөгжлийг дэмждэг.

Санал болгож буй өөрчлөлтүүд нь Rust хэлийг драйверууд болон цөмийн модулиудыг хөгжүүлэх хоёр дахь хэл болгон ашиглах боломжтой гэдгийг санаарай. Rust-ийн дэмжлэгийг анхдагчаар идэвхжүүлээгүй сонголт хэлбэрээр танилцуулж байгаа бөгөөд зэв нь цөмийн хувьд шаардлагатай бүтээх хамаарал болгон оруулахад хүргэдэггүй. Драйвер хөгжүүлэхэд Rust-ийг ашигласнаар санах ойд нэвтрэх эрх чөлөөлсний дараа санах ойд нэвтрэх, хоосон заагч хаягжилт, буфер хэт ачаалал гэх мэт асуудлуудаас ангид, хамгийн бага хүчин чармайлтаар илүү аюулгүй, илүү сайн драйверуудыг бий болгох боломжтой болно.

Санах ойн аюулгүй ажиллагааг Rust-д хөрвүүлэх үед лавлагаа шалгах, объектын эзэмшил болон объектын ашиглалтын хугацааг (хамрах хүрээ) хянах, мөн кодыг гүйцэтгэх явцад санах ойд нэвтрэх зөв эсэхийг үнэлэх замаар хангадаг. Rust нь бүхэл тоон хэтрэхээс хамгаалж, ашиглахын өмнө хувьсагчийн утгыг заавал эхлүүлэх шаардлагатай, стандарт номын санд алдааг илүү сайн зохицуулдаг, өөрчлөгддөггүй лавлагаа, хувьсагчийн ойлголтыг анхдагчаар ашигладаг, логик алдааг багасгахын тулд хүчтэй статик бичихийг санал болгодог.

Засваруудын шинэ хувилбар нь засварын эхний, хоёр, гурав, дөрөв, тав дахь хэвлэлийг хэлэлцэх явцад гарсан сэтгэгдлийг арилгасаар байна. Шинэ хувилбарт:

  • Rust 1.59.0 хувилбарыг гаргахын тулд хэрэглүүрийг шинэчилсэн. Alloc номын сангийн хувилбар нь мөн Rust-ийн шинэ хувилбартай синхрончлогдсон бөгөөд санах ойгүй болсон гэх мэт алдаа гарах үед "сандрах" төлөвийг арилгадаг. Ассемблерийн оруулга (“feature(global_asm)”) ашиглах чадвар тогтворжсон.
  • Цөмийг эмхэтгэх явцад ашигладаг Rust программыг бий болгох дэмжлэг нэмэгдсэн.
  • Урьдчилан үүсгэсэн зорилтот платформын тодорхойлолтын файлуудыг хүргэхийн оронд цөмийн тохиргоонд үндэслэн динамикаар үүсгэгддэг.
  • Rust-ийг дэмждэг архитектуруудыг идэвхжүүлэхийн тулд HAVE_RUST цөмийн параметрийг нэмсэн.
  • Хийсвэрлэлийг техник хангамжийн псевдо санамсаргүй тоо үүсгэгчийн Rust кодонд ашиглахыг санал болгож байна.
  • "Алдаа::" угтваргүй алдааны кодыг ашиглахыг зөвшөөрнө (жишээ нь, "Эрр (EINVAL) буцаах") C хэл дээрх алдааны кодыг ойролцоогоор тооцоолох.
  • Захиалгат C-strings-д "CString" төрлийг нэмсэн. Форматлагч болон буферийн төрлүүдийг нэгтгэсэн.
  • Bool болон LockInfo төрлийг нэмсэн.
  • Эргэлтийн түгжээний хэрэгжилтийг хялбаршуулсан.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх