Lista para version 6.7

Linux 6.7 was released

Summary: This release includes bcachefs, a new filesystem that implements the same kind of modern features you can expect from Btrfs and ZFS; it also includes the first pieces of the future futex2 system call; support in Btrfs for a RAID stripe tree that will be used to implement some future new features; suport in BPF for exceptions and other features; support for io_uring features such as multishot reads, cancelable uring_cmd, support for {s,g}etsockopt commands and other things; support for TCP Authentication Option; and allow disabling x86 32 bit emulation. As always, there are many other features, new drivers, improvements and fixes.

Bcachefs, a new modern file system

This release includes bcachefs, a new modern file systems that aims to provide the kind of modern features that you can find in ZFS/Btrfs (copy on write model, full checksumming, multivolume management, snapshots, compression, encryption, etc). For more details see https://bcachefs.org/

First pieces of futex2

The {{{futex(2)}}} ("fast userspace mutex") system call has a number of limitations. This system call has incorporated too much funcionality over the years; in order to avoid the dreaded "multiplexed syscall" pattern (one single system call doing many things), it has been decided to incorporate multiple calls ({{{futex_wait}}}, {{{futex_wake}}}, {{{futex_requeue}}}). This release adds the first pieces of these new system calls - the complete feature set will be added in future releases.

Recommended LWN article: A new futex API

Btrfs stripe tree and other improvements

This release introduces the RAID stripe tree, a new tree for logical file extent mapping where the physical mapping may not match on multiple devices. This is now used in zoned mode to implement RAID0/RAID1* profiles, but can be used in non-zoned mode as well. The support for RAID56 is in development and will eventually fix the problems with the current implementation.

This release also includes support for temporary filesystem ID and simple quota accounting.

Recommended read: Design document

BPF exceptions and other features

As usual, BPF incorporates a few new features, one of them being BPF exceptions, which allow a BPF program testing conditions that are always true at runtime but which the verifier has no visibility into, and then quitting and unwinding safely.

Recommended LWN article: Exceptions in BPF

io_uring improvements

This release includes as number of improvements to the io_uring interface

* Multishot reads

* Cancelable uring_cmd

* Initial support for {{{{s,g}etsockopt}}} commands

* An async version of waitid(2)

* Add support for using futexes through io_uring - first futex wake and wait, and then the vectored variant of waiting, futex waitv

Support for TCP Authentication Option

This release adds support for TCP Authentication Option (RFC5925). The TCP Authentication Option (TCP-AO) provides a TCP extension aimed at verifying segments between trusted peers. It adds a new TCP header option with a Message Authentication Code (MAC). MACs are produced from the content of a TCP segment using a hashing function with a password known to both peers. The intent of TCP-AO is to deprecate TCP-MD5 providing better security, key rotation and support for variety of hashing algorithms.

Recommended read: Documentation

Allow disabling x86 32 bit emulation

x86-64 processors support running 32 bit software. In order to allow running that software under Linux, the kernel provides 32-bit syscalls. Some distributions would like to disable this layer in order to reduce their attack surface as much as possible but at the same time they'd want to retain flexibility to cater to a variety of legacy software. In order to suppor this case, this release allows to enable/disable this feature at boot time.