Поддръжката на Rust е преместена от експерименталните в основните функции на ядрото на Linux

На провеждащата се в момента конференция Maintainers Summit се обсъждаха резултатите от експеримента по добавяне на поддръжка за разработка на компоненти на езика Rust в ядрото на Linux. Участниците се произнесоха, че експериментът е успешен и решиха да преместят поддръжката на езика Rust в категорията на основните части на ядрото, премахвайки етикета на експериментална функция.

Преди три години възможността за разработка на драйвъри и модули на езика Rust беше добавена в ядро 6.1. Оттогава в ядрото са включени абстракции за разработка на драйвъри на Rust за GPU, файлова система, блочни устройства, мрежови адаптери и USB устройства. На езика Rust се развива драйвърът Nova за GPU NVIDIA, asahi за GPU Apple AGX, Tyr за GPU ARM Mali и rust_ext2 за файлова система Ext2. В ядрото е приета написаната на Rust реализация на IPC Binder. Проектът RROS развива реална подсистема за ядрото на Linux, написана на Rust. Поддръжката на Rust не е активна по подразбиране и не води до включването на Rust в задължителните зависимости за компилация на ядрото.

Според привържениците на Rust, този език изключва появата на повечето грешки, открити в ядрото и причинени от особеностите на езика C (corner case), което позволява при рецензиране да се съсредоточим върху логически грешки и условия на състезание. Rust помага да се отстранят проблеми като достъп до памет след нейното освобождаване, излизане извън границата на буфера, неправилно освобождаване на ресурси при обработка на грешки и забравени проверки на кодовете за грешки, върнати. Използването на Rust за нов код също дава възможност за съкращаване на времето за разработка, благодарение на намаление на трудозагубите при отстраняване на грешки и наличието на строги гаранции в езика, които откриват грешки на ранен етап от написването на кода.

Противниците на внедряването на Rust в ядрото смятат, че е неприемливо използването на няколко програмни езика в сложни проекти — смесените кодови бази усложняват работата на мейнтрейнерите, тъй като ги поставят в зависимост от код на друг език. Например, при наличието на обвивки на Rust, разработчиците на подсистеми, написани на C, трябва да вземат предвид влиянието на промените върху продължаването на работоспособността на обвивките.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster