What’s New for Linux 5.6: WireGuard, USB 4.0, Year 2038 Remediation
The Linux 5.6 kernel is on the horizon, with a possible release of April 2020. This coming update includes one of the most exciting features to come along in some time — namely the inclusion of software to support WireGuard Virtual Private Networks (VPNs). In addition, the updated kernel will also come with support for USB version 4.0, Flash-Friendly File System (F2FS) data compression, and protection against the Year 2038 bug.
Virtual Private Networks
With the 5.6 kernel, the WireGuard VPN will be rolled in by default. Why this is so important to any and all Linux admins is because WireGuard not only makes it exponentially easier to set up a VPN, it does so with more security than the average solution. Instead of depending on complicated (and often less secure) VPN keys, WireGuard uses state-of-the-art cryptography (such as Noise protocol framework, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF, and secure trusted connections).
On top of using more secure encryption, WireGuard is implemented with very few lines of code. In fact, the WireGuard codebase consists of around 4,000 lines of code. OpenVPN, on the other hand, comes in around 100,000 lines of code. And because WireGuard functions in a similar fashion to SSH (exchanging public keys for authentication), the implementation of this new VPN technology will be considerably simpler.
USB4 support is finally making its way to the Linux kernel. This new protocol will double the maximum aggregate USB bandwidth and also enables multiple simultaneous data and display protocols.
The USB4 spec was published in September of 2019. One month later, Intel’s open source department added the initial patches for USB4 support. The USB4 implementation in the Linux kernel (coming in around 2,000 lines of code) is based on the Thunderbolt protocol specification, but will also be backward compatible with USB 2.0, USB 3.0, and Thunderbolt 3.
F2FS Data Compression
Another important feature, coming to the 5.6 kernel, is Flash-Friendly File System (F2FS) data compression. This native, lossless compression algorithm (LZO/LZ4) is focused on optimizing the lifespan of SSD and flash memory by reducing disk writes and reducing I/O congestion.
Along with this new implementation will come the compress_algorithm mount option which is used to specify the disk mounting mode.
Year 2038 Issue
It’s Y2K all over again. Linux stores time in a 32-bit signed integer format, which maxes out at a value of 2147483647. Once you get beyond that number, values are stored as a negative integer. This means, on 32 bit systems, the date cannot go beyond January 19, 2038.
Fortunately, the 5.6 kernel includes a fix, so 32-bit systems won’t come crashing down, once the sun rises on January 20, 2038.
As usual, there are a number of new features and fixes to be found. Some of those features (which won’t get nearly the attention of WireGuard support) include:
- Wider support for wireless peripherals.
- Improvements in AMD k10temp driver (for temp/power reporting).
- Support for the open source NVIDIA RTX 2000 “Turing” GPU.
- FSCRYPT inline encryption.
- Wider support for ARM SoCs.
- Ingenic X1000 SoC support.
- Intel MPX has been completely removed.
- Faster memmove() for Intel Ice Lake architecture.
- Alpha support for AMD Zen 3.
- AMD Pollock support.
- EXT4 performance fixes.
- Zonefs file-system for zoned block device support.
The Linux Foundation is a sponsor of The New Stack.
Feature image by Igor Starkov from Pexels.