Поддръжката на 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 развива real-time подсистема за ядрото на Linux, написана на Rust. Поддръжката на Rust не е активирана по подразбиране и не води до включване на Rust в списъка на задължителните зависимости за компилация на ядрото.

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

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

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

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