Een grote verandering in het resourcebeheer van de Linux-kernel in 2025 schudt de besturingssysteemwereld flink door elkaar, vooral voor gebruikers met single-core processoren. In tegenstelling tot de tijd dat single-core systemen de norm waren, is het technologische landschap drastisch veranderd. Tegenwoordig hebben zelfs oudere computers met Intel Celeron- of AMD-processoren, die ooit als verouderd werden beschouwd, minstens twee fysieke cores. Een reeks patches die onlangs door een kernelontwikkelingsteam zijn uitgebracht, is bedoeld om de scheduler-code voor deze zeldzame configuraties te vereenvoudigen en tegelijkertijd de compatibiliteit met de Symmetric Multi-Processing (SMP)-architectuur te verbeteren. Deze veranderingen, die op het eerste gezicht klein lijken, roepen cruciale vragen op over prestaties, onderhoud en compatibiliteit op de lange termijn, met name gezien de groeiende populariteit van Linux-distributies zoals Ubuntu, Debian, Fedora, Arch Linux en Manjaro.
Het aanpassen van de Linux-scheduler aan configuraties met één core: uitdagingen en technische problemen
Traditioneel gezien was de Linux-scheduler ontworpen om de kracht van meerdere cores optimaal te benutten, met een voorkeur voor een optimale taakverdeling over meerdere processors. Dit was echter niet altijd het geval voor gebruikers met systemen met één core, hetzij vanwege compatibiliteitsproblemen, kostenoverwegingen of de behoeften van gespecialiseerde apparaten, zoals bepaalde embedded systemen die OpenSUSE of CentOS draaien. Bijgevolg hebben de meeste test- en optimalisatie-inspanningen zich gericht op architecturen met één core (SMP), waarbij configuraties met slechts één actieve core werden verwaarloosd. Toch komen deze apparaten nog steeds veel voor in bepaalde industriële sectoren, met name in de IoT-sector of bij oudere landbouwmachines, om nog maar te zwijgen van legacy-systemen die Debian of Mint Linux draaien.
Het grootste probleem zit hem in de complexiteit van de code en de moeilijkheden die dit met zich meebrengt voor onderhoud en verdere ontwikkeling. De reeks patches pakt dit probleem precies aan: het verminderen van de complexiteit door de plannercode te standaardiseren in één modus, SMP, zelfs voor systemen met één processorkern. Een dergelijke aanpak brengt echter aanzienlijke technische uitdagingen met zich mee. Zo moet de overgang van SMP naar een modus voor één processor er vanuit processorperspectief voor zorgen dat alle optimalisaties met betrekking tot multi-core management geen knelpunten vormen voor een eenvoudige architectuur. Omgekeerd is het cruciaal om te voorkomen dat de code onnodig opzwelt door inferenties voor Siam in een context met één processorkern te behouden. Deze aanpassingen vereisen een complete herziening, die met name gebaseerd is op 43 nieuwe patches, gericht op het standaardiseren van het gedrag en tegelijkertijd het garanderen van optimale compatibiliteit met populaire distributies zoals Fedora en CentOS 8.
De praktische implicaties van de scheduler-patches voor Linux-systemen met één processorkern.
Deze nieuwe strategie voor code-unificatie heeft verschillende operationele gevolgen. Ten eerste is er een structurele vereenvoudiging, met een drastische vermindering van voorwaardelijke blokken die aan de macro zijn gekoppeld. CONFIG_SMPdie tot voor kort ongeveer 175 secties in de broncode van de scheduler omvatte. Dit vermindert de onderhoudslast voor ontwikkelaars aanzienlijk en vergemakkelijkt tevens de detectie van bugs en de integratie van nieuwe functies. Een tweede aspect betreft de toekomstige compatibiliteit met single-core architecturen, met name die welke bepaalde embedded systemen met OpenSUSE of microcomputers met Mint Linux aandrijven. Deze zullen blijven profiteren van prestatieverbeteringen dankzij geoptimaliseerd taakbeheer.
| Technisch aspect | Vóór reparaties | Na reparaties |
|---|---|---|
| Aantal voorwaardelijke secties | honderdvijfenzeventig | Gereduceerd tot één enkele structuur |
| Complexiteit van code | Opgevoed met duplicaten voor UP en SMP | Gestandaardiseerd, vereenvoudigd |
| Prestaties op UP | Aanzienlijke overheadkosten als gevolg van ongebruikte SMP-code. | Potentiële verbetering door vermindering van overtollige elementen. |
| Onderhoud | Moeilijk vanwege de duplicatie | Makkelijker en sneller te evolueren |