В Linux 6.18 впервые и Rust, и C-код ядра будут работать с одной моделью памяти — Linux Kernel Memory Model (LKMM). Это значит, что при взаимодействии Rust и C их представления об атомарных операциях и правилах конкурентного доступа будут полностью совпадать.
Что изменилось:
- В Rust добавлена поддержка атомарных типов, определённых LKMM, чтобы порядок и видимость операций с памятью интерпретировались одинаково с C.
- В Rust появился обёрточный тип для
refcount_t — встроенного механизма подсчёта ссылок в ядре, без отдельной реализации. - Патчи уже включены в ветку
locking/core и почти наверняка войдут в релиз Linux 6.18. Почему это важно:
- Единая модель памяти снижает риск тонких багов при смешивании Rust и C в многопоточном коде.
- Упрощает написание конкурентных алгоритмов на Rust для ядра.
- Это очередной шаг к глубокой интеграции Rust в разработку Linux, с упором на безопасность и надёжность.
🟢 Подробнее
@rust_code