Software-update: Linux Kernel 6.1

NewTux logo (75 pix)Linus Torvalds heeft versie 6.1 van de Linux Kernel vrijgegeven, een versie met extra lange ondersteuning. De kernel is het hart van het besturingssysteem en zit, simpel gezegd, als laag tussen de hardware en de applicaties in. In versie 6.1 treffen we onder meer de eerste stappen aan voor de ondersteuning van de programmeertaal Rust en maakt multi-generational LRU zijn opwachting. Meer informatie is bij 9to5Linux te vinden. Hieronder is een overzicht te vinden van de belangrijkste veranderingen uit deze uitgave.

Linux Kernel 6.1 Officially Released

More than two months in the works, Linux kernel 6.1 (codename Hurr durr I'm a ninja sloth) is here to introduce experimental support for the Rust programming language. While this may sound very exciting for some, you should keep in mind that “experimental” means that it’s only a very basic implementation of Rust that cannot be used for any real-world use cases.

Another major change in Linux 6.1 is the multi-generational LRU VM work to better identify the memory pages that are actually in use. In addition, the new kernel series brings the ability to perform PKCS#7 signature verifications in BPF programs and to create destructive BPF programs, and a new security-module hook for controlling how user namespaces are created.

The Loongarch architecture has been improved with support for BPF JIT compilation, kdump, kexec, and perf events, the Btrfs file system received major performance improvements, support for buffered writes with io_uring, and support for fs-verity-protected files to send operations, the perf tool gained improved support for AMD CPUs, and the FUSE file system now supports the creation of temporary files.

Among other noteworthy changes, the kernel is now capable of decompressing and launching itself independent of the hardware architecture on EFI systems, the EROFS (Enhanced Read-Only File System) file system now supports sharing of duplicated data across filesystems, the minimal GNU Make version for compiling the kernel is now 3.82, and a new io_uring mode helps differing the execution of ring-related stuff until an app needs it.

Of course, there are also new and updated drivers for supporting newer hardware. Worth mentioning here is support for the PinePhone keyboard, XBOX One Elite paddles, X-Box Adaptive controller, PhoenixRC Flight controller, VRC-2 Car controller, XP-PEN Deco Pro S, HID++ for all Logitech Bluetooth devices, and DualSense Edge controller.

Moreover, Linux kernel 6.1 brings support for precision boost hardware control for AMD CPUs, Aspeed crypto driver for hardware acceleration, support for Intel Meteor Lake processors, and support for the ASMedia NVM image format.

Last but not least, Linux kernel 6.1 should be an LTS (Long Term Support) series that could receive updates for at least two years, according to renowned Linux kernel developer Greg Kroah-Hartman, who always said that the last major kernel release of a year gets LTS support.

Linux 6.1

Versienummer 6.1
Releasestatus Final
Besturingssystemen Linux
Website Linux kernel
Download https://www.kernel.org/
Licentietype Voorwaarden (GNU/BSD/etc.)

Door Bart van Klaveren

Downloads en Best Buy Guide

12-12-2022 • 12:52

26

Bron: Linux kernel

Reacties (26)

26
25
15
2
0
3
Wijzig sortering
Weet iemand wat de support voor Rust betekent? Waarom zou een specifieke taal ondersteund moeten worden in de kernel? Is er bijvoorbeeld ook support voor allerlei andere talen in de kernel? En wat betekent dat?

Of betekent het dat je ook kernel development (wat naar mijn weten allemaal in C is) vanaf nu ook in Rust gedaan kan worden?

[EDIT]

Ah, het gaat idd om kernel development in Rust. En dat zou de enige taal naast C zijn:

https://www.zdnet.com/art...and-whats-happening-next/

Ik wist dat velen enorm enthousiast zijn over Rust, maar dat het als tweede kernel language gebruikt kan gaan worden is toch wel gigantisch. Ik heb er wel eens een beginners tutorial van gedaan. Voor mijn behoeften bevalt Go mijn beter, maar ik begrijp wel dat vooral low level devs enthousiast zijn over Rust.

[Reactie gewijzigd door kramer65 op 24 juli 2024 16:27]

Voor zover ik weet centreert het werk zich rond het mogelijk maken om kernel drivers in Rust te schrijven. De rest van de kernel is allemaal “puur” C (met extensies en hier en daar wat assembly tussengegooid).

Enerzijds is dit een enorm grote stap, omdat Linus altijd enorm bij oude C dialecten blijft steken onder het mom van betere code aan te trekken en er geen degelijke alternatieven of aanvullingen zouden mogelijk zijn. Natuurlijk is een enkele taal gemakkelijk naar onderhoud toe, wat echt wel belangrijk is in de kernel, waarvan alles zich in een grote boite bevindt en je dus bij een interface aanpassing of een refactor alles ineens moet kunnen meenemen. Zelfde bij cherry-picks over versies heen, je krijgt soms van de hele andere kant van de kernel ineens klachten dat zus en zo iets aangepast is waardoor je je code eraan moet aanpassen.

Rust belooft veiligere code op te leveren, en net in kernel drivers is dat wel een voordeel. Je wil niet dat een of andere out of bounds access ineens een programma toegang geeft tot kernel geheugen. Laat net de kernel mode drivers in Windows een van de grootste security risks zijn in dat OS. Bij Linux is dat niet anders, behalve dat het overgrote merendeel gehouden wordt aan dezelfde hoge standaard en er schijnbaar op dat niveau dus minder fouten insluipen.

Het is dus een stap achteruit in maintainability (op korte en middellange termijn, omdat een nieuwe taal een hogere kennis van je maintainers vereist) maar hopelijk een sprong voorwaarts in de veiligheid van drive code.
Let wel: ik denk dat ze nog maar zo ver zijn om het te enablen, en je er dus praktisch waarschijnlijk niets mee kan doen behalve wat voorbeeldjes of met heel veel moeite een simpel drivertje dat een welbepaalde functie kan uitvoeren.

Hier (en in de gerelateerde artikels) vind je o.a. ook wat meer informatie:
https://www.phoronix.com/news/Linux-6.2-Rust
Het is euforie om te denken doordat je rust gebruikt, dat je security en bugs zoals out-of-bounds e.d. Geen kwetsbaarheden meer opleveren Al is het maar omdat programmeurs denken dat de taal veilig is. En daardoor hele simpele foutjes gaan maken.

Linus heeft daar geloof ik zelf ooit kritiek op gegeven.

[Reactie gewijzigd door Zezura op 24 juli 2024 16:27]

Vandaar al de "hopelijk" en "belooft". Je kan niet ontkennen dat er in Rust gewoon veel minder ongewenste dingen mogelijk zijn. Sure, als je goede code schrijft, kom je die nooit tegen. En ja, Rust is ook niet 00% waterdicht. Maar het is wel een pak beter dan wat C je belooft in de meeste gevallen. Dit wordt ook gewoon bevestigd door allerhande "first time Rust" reports van toch wel seasoned developers die je om de zoveel tijd eens tegenkomt (zie de Asahi Linux blog post bvb).

Jij kan niet ontkennen (noch doet LInus dat in onderstaande links) dat de Rust compiler waardevolle static checks doet die een verbetering geven tov de huidige C compiler omgeving (met alle toeters en bellen).

Ikzelf heb nog niet gewerkt met Rust, dus kan er weinig over zeggen. Ik weet alleen waar de hype rond draait en ook waar de grenzen ervan ongeveer liggen.
Een nieuwe taal in de Linux kernel krijgen is no small feat, en gegeven al de tegenstand en opwerpingen van kernel devs zit het er intussen wel mooi (en juist, als ik het gereview van Linus en co-maintainers mag vertrouwen) in.
Dus ergens, naast het feit van "Rust volgt de regels van de kernel" is er ook nog de veel grotere "en we zien dit in de toekomst veel voordelen bieden, zoveel zelfs dat we die smurrie in onze code base willen en tolereren".
Helemaal met je eens. Ik ben biased overigens, mijn favorieten talen zijn C++, C, ASM & C#. Op die volgorde.
Volgens mij dat laatste wel het doel, Rust schijnt performant genoeg te zijn maar makkelijker in the programmeren.

Daarnaast levert dit ook interessante projecten op: PopOP is bijvoorbeeld bezig met hun eigen desktop environment volledig geschreven in Rust (ter vervanging van Gnome).
Pop!_OS is inderdaad een mooi project waar ze aardig aan de weg timmeren met Rust omgeving genaamd Cosmic.

Laatst nog een mooie kernel NVME driver geschreven in Rust vergelijking voorbij zien komen, doet niks onder qua snelheid als geschreven in C.

https://www.youtube.com/watch?v=5CjtO014Nq0
Daarnaast levert dit ook interessante projecten op: PopOP is bijvoorbeeld bezig met hun eigen desktop environment volledig geschreven in Rust (ter vervanging van Gnome).
Dat heeft niet iets met elkaar te maken. Je kan je eigen desktop environment in elke taal schrijven die je wilt (in Mono, C++, JavaScript, Rust) zonder dat de kernel zelf 'support' voor die taal geschreven heeft.

Wat er nu zo belangrijk en nieuw aan deze wijziging is, is dat het mogelijk is om kernel modules en drivers in Rust te schrijven, de eerste taal na C die wordt toegevoegd. En Rust belooft 'veiligere' code dan C, dus minder 'use-after-free' en dergelijke issues. Minder dat soort issues in je kernel is pure winst. Ik ben benieuwd hoe snel adoptie van Rust in de kernel zal gaan!
Voor zover ik begrijp kun je nu een heel simpele hello-world kernel module maken in Rust. Meer nog niet. Maar dat vereist wel enige integratie qua buildsysteem en wat andere zaken.

De de kernel is (en blijft) in C (niet C++!) geschreven. De bedoeling met Rust is in eerste instantie om er drivers in te schrijven en geen core onderdelen, zodat als het experiment uiteindelijk niet bevalt er geen (grote) man overboord is
Voor een blik op mogelijke voordelen van Rust, kan je deze blogpost van één van de developers van Asahi Linux (Linux op de M*-Macbooks) lezen, over het schrijven van een driver voor de Apple GPU.
Dat is inderdaad een interessante blogpost. Dank daarvoor!
als reactie op @kramer65, er ging iets mis.

Support voor Rust betekent dat drivers etc. geschreven in Rust geaccepteerd zullen worden in mainline en in rust modules kunnen worden ingesloten in de tree, dat kun je vergeten voor alle andere talen dan C op dit moment.

Voornaamste reden is dat geheugen(de)allocatie strict en direct moet zijn zonder extra runtime, hierdoor vallen garbage collected talen als Java/Go/Haskell maar ook C++, Ada af. En dan hou je maar een kleine set van programmeertalen over dat weinig biedt boven C, dan kun je net zo goed C voor consistentie houden.

Tot Rust dan, het grote voordeel van Rust is het eigendomsprincipe wat de taal memory safe maakt zonder garbage collector (geen losliggende pointers naar geheugenlocaties), interfacing Rust<->C is "full-duplex" zonder extra toeters of bellen, performance is gelijkwaardig en de taal biedt daadwerkelijk nieuwe concepten (concurrency,safety,functioneel) bovenop C; drivers, firmware en bepaalde stacks zouden zeer geschikt kunnen zijn om in Rust geïmplementeerd te kunnen worden, gesharede geheugenstructuren in de kernel zelf niet omdat iets als een doubly linked list niet goed past binnen het eigendomsprincipe.

Ik ben wel benieuwd wat dit gaat brengen, Rust zou op veel plaatsen C kunnen vervangen als hogere taal waar C ooit ASM heeft vervangen.

[Reactie gewijzigd door Xander2 op 24 juli 2024 16:27]

Oh eindelijk. Ik draai steeds per ongeluk Kernel 6 in PopOS (ik dnek wegens Nvidia support) en dan blijkt vanalles niet te werken.
Wat werkt er niet dan? Ik heb zelf ook 6.0 binnengekregen een tijd geleden, zit nu op 6.0.6.

Ik ben nog niets tegengekomen wat niet meer werkt. Ook nog geen nieuwe problemen met de Nvidia drivers gezien. Ik zit nog wel op 515 terwijl 525 ook beschikbaar is.

edit: typos

[Reactie gewijzigd door keranoz op 24 juli 2024 16:27]

DKMS en 525 in Linux 6.0x upgraden gaat mij vaker verkeerd dan goed
Leidt vaak tot herinstallatie van de drivers als dat niet in een upgrade lock komt.
PopOS en de Kernel werkte top. Probleem was 3th party software zoals closed-source drivers (DELL TB16 docking station) en QEMU Guest Drivers (van de VirtualBox Guests Additions ISO, maar de guest-drivers-iso repo werkte ook niet meen ik)
Lol .. "Linux kernel 6.1 (codename Hurr durr I'm a ninja sloth) is here"
Ik hoop om hele persoonlijke typische linux reden dan weer niet dat 6.1 de LTS wordt. Mijn wifi driver zit straks in 6.2. Dus voor goede wifi ondersteuning heb ik 6.2 of hoger nodig. Als 6.2 de LTS wordt kan ik dus veel sneller met een ruime distributie keuze aan de slag dan als 6.1 de LTS wordt.
Nu ook beschikbaar op debian via de liquorix kernels.
Werkt goed, alleen brightness control doet 't niet (op een Lenovo T14)
gamen op alleen een kernel is inderdaad vrij lastig zonder os... |:(
Doom werkt prima op een linux systeem ;)
Steam heeft zelfs een handheld gemaakt die op Linux draait.
Ik draai zonder problemen Anno 1800 op 4K 60FPS op Ubuntu met een 3070 Ti. Flinke vooruitgang tegenwoordig met VKD3D en DXVK.
Jij hebt de afgelopen 15 jaar dus even niet opgelet. Dat maakt niet uit, maar dan kan je verwachten dat de dingen die je zegt belachelijk outdated zijn en de beeldvorming rond jouw persoon nou niet echt in een positief licht zetten.

Op dit item kan niet meer gereageerd worden.