KernelNewbies:

Linux 6.7 was released on Sunday, 7 January 2024.

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.

1. Prominent features

1.1. 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/

1.2. 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

1.3. 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

1.4. 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

1.5. io_uring improvements

This release includes as number of improvements to the io_uring interface

1.6. 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, RFC 5925

1.7. 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.

2. Core

3. Memory Management

4. File systems

4.1. bcachefs

4.2. Btrfs

4.3. Ceph

4.4. CIFS

4.5. EFI VARIABLE FILESYSTEM

4.6. exFAT

4.7. F2FS

4.8. FSCRYPT

4.9. GFS2

4.10. Autofs

4.11. KSMBD

4.12. OVERLAY

4.13. XFS

4.14. ext2

4.15. NFS

5. Block layer

6. Security

7. Cryptography

8. Virtualization

9. Tracing, probing and BPF

10. Networking

11. Architectures

11.1. IA64

11.2. ARM

11.3. x86

11.4. S390

11.5. SUPERH

11.6. PowerPC

11.7. LoongArch

11.8. PA-RISC

11.9. MIPS

11.10. RISC-V

11.11. SYNOPSYS ARC ARCHITECTURE

12. Drivers

12.1. Graphics

12.2. Networking drivers

12.3. Storage

12.4. Sound

12.5. USB

12.6. TTY layer and serial drivers

12.7. Staging area

12.8. Media devices (V4L/DVB)

12.9. Thermal

12.10. Watchdog

12.11. Voltage and current regulator

12.12. MULTIFUNCTION DEVICES (MFD)

12.13. MULTIMEDIA CARD (MMC), SECURE DIGITAL (SD) AND SDIO SUBSYSTEM

12.14. NFC SUBSYSTEM

12.15. PCI

12.16. PIN CONTROL SUBSYSTEM

12.17. MEMORY TECHNOLOGY DEVICES (MTD)

12.18. POWER SUPPLY CLASS/SUBSYSTEM and DRIVERS

12.19. REAL TIME CLOCK (RTC)

12.20. HARDWARE MONITORING

12.21. I2C

12.22. IIO

12.23. INPUT (KEYBOARD, MOUSE, JOYSTICK, TOUCHSCREEN) DRIVERS

12.24. LED

12.25. HWMON

12.26. REMOTE PROCESSOR (REMOTEPROC)

12.27. DMA GENERIC OFFLOAD ENGINE

12.29. COUNTER SUBSYSTEM

12.30. CPU FREQUENCY SCALING FRAMEWORK

12.31. COMMON CLK FRAMEWORK

12.32. SYSTEM CONTROL & POWER/MANAGEMENT INTERFACE (SCPI/SCMI) Message Protocol drivers

12.33. IOMMU SUBSYSTEM

12.34. DRM COMPUTE ACCELERATORS

12.35. Various

13. Pull requests

14. Other news sites

KernelNewbies: Linux_6.7 (last edited 2024-02-17 11:46:34 by diegocalleja)