Джош Триплет, който работи в Intel и е в комисията, наблюдаваща развитието на Crates.io, говорейки на срещата на високо равнище за технологии с отворен код
В работна група, която е в процес на създаване, разработчиците на Rust, заедно с инженерите от Intel, ще изготвят спецификации, определящи функционалността, която трябва да бъде внедрена в Rust за системно програмиране. Системното програмиране често изисква манипулиране на ниско ниво, като например изпълнение на привилегировани инструкции на процесора и получаване на подробна информация за състоянието на процесора. От подобните функции, които вече се разработват за Rust, се отбелязва поддръжката на неименувани структури, обединения, вмъквания на асемблерни езици (макроса „asm!“) и формата на числото с плаваща запетая BFLOAT16.
Джош вярва, че бъдещето на системното програмиране принадлежи на Rust, а езикът C в съвременните реалности претендира за мястото, което през последните години беше заето от Assembly. Ръжда
не само освобождава разработчиците от проблемите, присъщи на езика C, които възникват поради работа на ниско ниво с памет, но също така предоставя възможност да се използва при разработването на съвременни парадигми за програмиране.
По време на
Джош излезе с идеята да добави възможност за разработване на драйвери в ядрото на Linux на езика Rust, което би направило възможно създаването на по-безопасни и по-добри драйвери с минимални усилия, без проблеми като достъп до паметта след освобождаване, null dereferences на указател и препълване на буфера.
Грег Кроа-Хартман, който отговаря за поддържането на стабилния клон на ядрото на Linux, изрази готовност да добави рамка за разработване на драйвери на езика Rust към ядрото, ако има реални предимства пред C, например ще осигури сигурна обвързвания през API на ядрото. Освен това Грег разглежда тази рамка само като опция, която не е активна по подразбиране, така че да не включва Rust като зависимост на компилация от ядрото.
Оказа се, че няколко екипа вече работят в тази посока. Например разработчиците от компанията „Риба в бъчва“
Паралелно
Не цялата предвидена функционалност все още е внедрена, но рамката вече е доста подходяща за работа и беше използвана за написване на работещ драйвер за LAN9512 USB Ethernet контролер, доставен в платката Raspberry Pi 3. Съществуващият драйвер smsc95xx, написан от в C език. Отбелязва се, че размерът на модула и допълнителните разходи от компонентите по време на изпълнение при разработването на драйвер в Rust са незначителни, което позволява рамката да се използва за устройства с ограничени ресурси.
Източник: opennet.ru