After two months of development, Linus Torvalds unveiled the launch of the new version of the Linux Kernel, version that arrives with various notable changes, such as being able to limit the import of symbols from proprietary modules to GPL modules, support for compressing the kernel image using Zstd, rework thread prioritization in kernel, support for PRP, performance scheduling in deadline scheduler, dm-crypt performance improvements, removal of code for 32-bit Xen PV guests, new slab memory management mechanism, among other things.
The new version received 16074 fixes From 2011 developers, the patch size is 62MB (changes affected 14,548 files, 782,155 lines of code added, 314,792 lines removed).
Main novelties of the Linux Kernel 5.9
Among the main changes that stand out in this new version of the Linux Kernel, we can find the reinforced protection against the use of LPG interlayers to link proprietary drivers with exported kernel components only for modules under the GPL license.
Added support for kcompactd to proactively pack memory pages in the background to increase the number of large memory pages available to the kernel.
Added support for compressing the kernel image using the Zstandard (zstd) algorithm.
For systems x86, support for the FSGSBASE processor instruction is implemented, allowing you to read and change the content of the FS / GS registers from the user space.
In Deadline I / O Scheduler implements bandwidth-based scheduling to make the right decisions on asymmetric systems. In particular, the new mode avoids scheduling mismatches when a slow CPU core does not have the resources to complete a task on time.
The audio subsystem ALSA and the USB stack have been cleaned of politically incorrect terms in accordance with the recently adopted guidelines for the use of inclusive terminology in the Linux kernel.
In the seccomp subsystem, when using user space process control, the ability to override file descriptors in the monitored process has been added to fully emulate the system calls that lead to the creation of file descriptors.
Has been added a mode to dm-crypt to reduce latency when processing cryptographic data without using job queues. The specified mode is also required for correct operation with zoned block devices (devices with areas that must be written sequentially with the entire block group being updated).
Code removed to support 32-bit guest systems running in paravirtualization mode on the Xen hypervisor. Users of such systems should switch to using 64-bit kernels in guest environments or use full virtualization (HVM) or blended (PVH) modes instead of paravirtualization (PV) to run environments.
Also, for Btrfs support for the "alloc_start" and "subvolrootid" options was removed, deprecated the "inode_cache" option. Performance tuning has been done, especially the performance of fsync () operations has been sped up significantly. Added the ability to use alternative types of checksums other than CRC32c.
Added the ability to use online encryption (online encryption) on ext4 and F2FS file systems, to enable the "inlinecrypt" mount option. Online encryption mode allows you to use the drive controller's built-in encryption mechanisms, which transparently encrypt and decrypt I / O.
Ext4 implements block mapping bitmap preloading. Combined with the limitation of uninitialized group scanning, optimization has reduced mounting time for very large partitions.
For storage devices NVMe, support for drive zoning commands has been added (ZNS, NVM Express Zoned Namespace), which allows you to divide the storage space into zones that form groups of blocks for more control over how the data is placed on the drive.
Added the ability to reject packets in Netfilter in the stage before checking the routing (the REJECT expression can now be used not only in the INPUT, FORWARD and OUTPUT chains, but also in the PREROUTING stage for icmp and tcp).
In nftables, the netlink API adds support for anonymous strings, which are dynamically named by the kernel. When you delete a rule associated with an anonymous chain, the chain itself is automatically deleted.
BPF adds support for iterators to traverse, filter, and modify elements of associative arrays (maps) without copying data to user space. Iterators can be used for TCP and UDP sockets, allowing BPF programs to iterate over open socket lists and extract the information they need.
For architecture RISC-V, kcov support is implemented (a debugfs interface to analyze the kernel code coverage), kmemleak (a memory leak detection system), stack protection, jump labels, and tickless operations (multitasking independent of the timer).
For architectures ARM and ARM64, the default mechanism is used to regulate the processor frequency schedutil (cpufreq governor), which directly uses the information from the task scheduler to make a decision about the frequency change, and can immediately access the cpufreq controllers to quickly change the frequency.
Finally, if you want to know more about it, you can check the details in the following link