Rust нь Android платформ хөгжүүлэх үндсэн хэлнүүдийн нэг юм

Google компани Android платформыг хөгжүүлэх зөвшөөрөгдсөн хэлнүүдийн дунд Rust програмчлалын хэлийг оруулснаа зарлалаа. Rust хэлний хөрвүүлэгчийг 2019 онд Андройдын эх модонд оруулсан боловч энэ хэлийг дэмжих нь туршилтын шинж чанартай хэвээр байв. Android-д зориулж төлөвлөж буй анхны Rust бүрэлдэхүүн хэсгүүдийн зарим нь Binder хоорондын харилцааны механизм болон Bluetooth стекийн шинэ хэрэгжилтийг багтаасан болно.

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

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

Android-д санах ойн аюулгүй байдлыг аль хэдийн дэмжигдсэн Kotlin болон Java хэлээр хангадаг боловч өндөр ачаалалтай тул системийн бүрэлдэхүүн хэсгүүдийг боловсруулахад тохиромжгүй байдаг. Rust нь C ба C++ хэлтэй ойролцоо гүйцэтгэлийг бий болгох боломжийг олгодог бөгөөд энэ нь платформын доод түвшний хэсгүүд болон техник хангамжтай харилцах бүрэлдэхүүн хэсгүүдийг боловсруулахад ашиглах боломжийг олгодог.

C болон C++ кодын аюулгүй байдлыг хангахын тулд Android нь хамгаалагдсан хязгаарлагдмал орчинд тусгаарлалт, статик шинжилгээ, бүдэгрэх тестийг ашигладаг. Хамгаалалтын хязгаарлагдмал орчинд тусгаарлах чадвар нь хязгаарлагдмал бөгөөд боломжийнхоо хязгаарт хүрсэн (цаашид үйл явц болгон хуваах нь нөөцийн хэрэглээний үүднээс боломжгүй юм). Хамгаалалтын хязгаарлагдмал орчинд ашиглах хязгаарлалтууд нь шинэ процессуудыг бий болгох шаардлагаас үүдэлтэй их хэмжээний зардал, санах ойн хэрэглээ нэмэгдэх, мөн IPC ашиглахтай холбоотой нэмэлт саатал зэрэг орно.

Үүний зэрэгцээ, хамгаалагдсан хязгаарлагдмал орчин нь кодын эмзэг байдлыг арилгадаггүй бөгөөд зөвхөн эрсдлийг бууруулж, халдлагыг улам хүндрүүлдэг, учир нь ашиглалтын хувьд нэг биш, харин хэд хэдэн эмзэг байдлыг тодорхойлох шаардлагатай байдаг. Кодын тест дээр суурилсан аргууд нь хязгаарлагдмал тул алдааг тодорхойлохын тулд асуудал гарч ирэх нөхцлийг бүрдүүлэх шаардлагатай байдаг. Бүх боломжит хувилбаруудыг хамрах боломжгүй тул олон алдаа анзаарагдахгүй байна.

Андройдын системийн процессуудын хувьд Google нь "хоёрын дүрэм"-ийг баримталдаг бөгөөд үүний дагуу нэмэлт код нь баталгаажаагүй оролтын өгөгдөлтэй ажиллах, аюултай програмчлалын хэл (C/C++) ашиглах, мөн гурван нөхцлийн хоёроос илүүгүй байх ёстой. хамгаалагдсан хязгаарлагдмал орчинд хатуу тусгаарлахгүйгээр ажиллах (өндөр эрх ямбатай). Энэ дүрэм нь гадаад өгөгдлийг боловсруулах кодыг хамгийн бага давуу эрх болгон багасгах (тусгаарлах) эсвэл аюулгүй програмчлалын хэлээр бичих ёстой гэсэн үг юм.

Google нь Rust дээр байгаа C/C++ кодыг дахин бичих зорилго тавиагүй ч шинэ код боловсруулахдаа энэ хэлийг ашиглахаар төлөвлөж байна. Статистикийн дагуу ихэнх алдаа шинэ эсвэл саяхан өөрчлөгдсөн кодонд гарч ирдэг тул шинэ кодыг Rust ашиглах нь утга учиртай юм. Тодруулбал, Андройд дээр илэрсэн санах ойн алдааны 50 орчим хувь нь жил хүрэхгүй өмнө бичсэн кодоос илэрсэн байна.

Rust нь Android платформ хөгжүүлэх үндсэн хэлнүүдийн нэг юм


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

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