Linux 6.4 has already been released and it comes with improvements for Rust and more

Linux Kernel

Linux is a mostly free kernel similar to the Unix kernel. It is one of the main examples of free and open source software.

After two months of development, Linus Torvalds unveiled the launch of new kernel version Linux 6.4 and among the most important changes, it stands out the continuous integration of the support for the Rust language, the support for Intel LAM mechanism, deduplication of memory pages at the process level, support for iterators in BPF, hibernation support for RISC-V systems, among other things.

In this new version 16012 fixes from 2080 developers were integrated which added 1006924 lines of code, 597615 lines were removed.

Main novelties of the Linux Kernel 6.4

In this new version of Linux 6.4 that is presented, one of its main novelties is the ability to create kernel-level drivers from user-space processes. Unlike using the kthread API, controllers created in userspace inherit the process's properties and run with the credentials of the userspace process.

Another of the changes that stands out comes from the branch of Rust-for-Linux in which porting of functionality has continued related to the use of Rust as a second language for developing drivers and kernel modules. In this new version of Linux 6.4 we can find that the pin-init API for safe initialization of attached data structures, as well as support for conditional variables (CondVar) and that The UAPI package for interaction with user space has been implemented.

In addition to that, we can also find that a variant of the mechanism for combining identical memory pages was implemented, which works at the process level and can significantly reduce memory consumption by deduplicating pages with the same content. Unlike the KSM mechanism in the new implementation, deduplication support is enabled via prctl for the entire process and it is inherited for child processes, without the need to activate for each memory range using madvise, which significantly simplifies the application.

Moreover, the Non-privileged processes can obtain information from the PSI kernel subsystem (Pressure Stall Information), which allows analysis of user space of timeout information for various resources (CPU, memory, I/O) to accurately assess system-level load and slowdown patterns.

It is also highlighted that for systems based on the architecture RISC-V, hibernation is supported and the kernel can be compiled as a linked file in PIE mode (position-independent executables), in addition to added a new system call riscv_hwprobe() to provide information about the manufacturer and architecture of the available hardware.

Added changes to XFS to implement FS scanning on the fly (inline cleanup), which is expected to be included in one of the next releases (although online documentation for fsck has already been added).

In Ext4 the organization of the input has been simplified, In addition to the fact that they have been carried out optimizations in preallocation of inodes to improve performance on systems with a large number of random writes. Memory page read and write operations have been moved to the use of memory page folios.

btrfs has rewritten the filesystem check code to use scrub_stripe, supports RAID56 verification and runs approximately 10% faster. Improved directory logging performance (removing index enumeration during logging allowed to reduce 4x time spent on fsync execution).

Of the other changes that stand out of this new version:

  • The F2FS file system adds support for zoned block devices, where the size of the zones is not a multiple of a power of two.
  • Changed the encoding of the ioctl commands for the ublk driver, which brings specific logic to the process side in user space.
  • Added the UBLK_LEGACY_OPCODES build setting to ensure compatibility with older drivers.
  • It is forbidden to disable and download the SELinux module during operation.
  • Disabling SELinux can now only be done at the initial boot stage by passing the "selinux=0" parameter on the kernel command line.
  • Added support for Hyper-V hypercalls that are used to forward PCI devices to guests with Hyper-V drivers. S
  • The KVM hypervisor implements a framework to move SMCCC request processing to user space, allowing many virtualization-related operations to be implemented in user space without adding them to the kernel.
  • Added the ability to attach BPF programs to process NetFilter bindings, for example to create a controller that decides to forward packets or perform actions in the pre-routing stage.
  • The msi-ec driver has been added to allow user-space control of advanced MSI laptop features such as power profile selection, fan speed control, LED control and levels of load.

finally if you are interested in knowing more about it, you can check the details In the following link.


Leave a Comment

Your email address will not be published. Required fields are marked with *

*

*

  1. Responsible for the data: AB Internet Networks 2008 SL
  2. Purpose of the data: Control SPAM, comment management.
  3. Legitimation: Your consent
  4. Communication of the data: The data will not be communicated to third parties except by legal obligation.
  5. Data storage: Database hosted by Occentus Networks (EU)
  6. Rights: At any time you can limit, recover and delete your information.