After two months of development, Linus Torvalds presented the release of the nucleus Linux 6.1 . Among the most noticeable changes: support for the development of drivers and modules in Rust, modernizing the mechanism for determining the memory pages used, a special memory manager for BPF programs, a KMSAN memory system diagnostics system, KCFI (Kernelk Control-Flow Integrity), and the implementation of the structure maple tree . . P>
The new version adopted 15115 corrections from 2139 developers,
The size of the patch is 51 MB, which is about 2 times smaller than the size of patches from nuclei 6.0 and 5.19. The changes affected 13165 files, added 716247 lines of code, 304560 lines were deleted. About 45% of all presented in 6.1
changes are related to devices drivers, approximately 14% of the changes have
attitude to updating code specific to hardware architectures, 14%
associated with a network stack, 3% – with file systems and 3% with internal
nucleus subsystems.
Basic innovations In the nucleus 6.0:
- Memory and system services
- The possibility of using the Rust language as a second language for the development of drivers and nucleus modules has been added. The main support of Rust support is to simplify the writing of safe and high -quality drivers of devices by reducing the probability of making errors when working with memory. RUST support is inactive by default and does not lead to RUST to include mandatory assembly dependencies to the nucleus. In the nucleus, the minimum cut version of patches is still adopted, which is reduced from 40 to 13 thousand lines of the code and provides only the necessary minimum, sufficient to assemble a simple nucleus module written in Rust. In the future, it is planned to gradually increase the existing functionality by transferring other changes from the branch rust-for-linux . Параллельно развиваются проекты по использованию предложенной инфраструктуры для разработки на языке Rust драйверов накопителей NVMe, network protocol 9P and .