Linux et les noyaux optimisés

Dans le monde merveilleux de Linux, on peut tout configurer et adapter à son matériel. C'est ce qui fait sa force ! Pas besoin du support de processeurs 386 quand on a juste besoin de faire tourner ses applications sur des processeurs ARM par exemple. Ça allège le système et permet plus de réactivité.

De l'adaptation, les différentes situations.

Le noyau (ou kernel) Linux est le cœur du système. C'est lui qui va dialoguer avec le matériel. Si vous restreignez le matériel supporté ou que vous avez développé des optimisations spécifiques il va vous permettre de gagner en performances dans ces domaines là. Exemple, les distributions Android (oui Android est basé sur un kernel Linux) sont optimisées pour la gestion des réseaux (bluetooth, wifi, téléphonique), la découverte des réseaux, la connexion sont plus rapides que sur les PC. D'autres exemples spécifiques comme les NAS (DietPi, OpenMediaVault, TrueNAS...) utilisent des distributions Linux optimisées pour les lectures/écritures sur les SSD/HDD, elles seront moins optimisées pour d'autres tâches (calculs bruts...).

La recherche de la performance

Vous l'aurez compris, on ne peut pas avoir le beurre, l'argent du beurre et le crémier... Chaque optimisation spécifique peut induire des pertes de performances dans un autre domaine. Mais l'évolution de l'informatique permet aussi de prendre les optimisations de certains contextes pour les pousser dans les versions “generic” des noyaux. Le temps réel sous Linux qui permet une gestion à zéro latence des entrées-sorties, très utile pour l'audio, est souvent resté un kernel à part à installer. Il a été remplacé par le “low-latency” qui suffisait très bien pour la plupart des utilisations avec peu de pertes de performances.

Et depuis quelques releases de kernel, le “temps-réel” a été directement intégré dans le noyau “generic” (c'est l'option “PREEMPT_RT”).

Les noyaux spécifiques “gamers”

Certaines communautés de joueurs développent leurs propres optimisations de kernel. Liquorix, XanMod, TKG voire même Valve avec son SteamDeck développent des noyaux spécifiques pour leurs besoins : multimédia, jeux vidéos... Autant vous dire que faire tourner son serveur avec ces noyaux sera possible, mais qu'il y aura certainement des modules à ajouter, et des performances moindres qu'avec des noyaux ou des distributions spécifiques. Heureusement, vous pouvez choisir le noyau sur lequel vous souhaitez démarrer à tout moment voire supprimer le noyau “generic” pour ne garder que celui développé par la communauté.

Comparer les noyaux, bonne idée ?

Tout dépend ce que vous comparez et ce que vous voulez que votre comparatif fasse apparaître ! Si, pour des questions d'information, vous comparez des noyaux sur leurs performances multimédia, il est honnête de partir des noyaux par défaut des distributions (“generic”) et de les comparer à des noyaux spécifiquement dédiés aux performances multimédia. Vous constaterez les avancées ou parfois les régressions selon les performances. Comparer des noyaux de diverses communautés peut aussi être intéressant pour voir les différences (scoop : c'est minime voire dans les marges d'erreur des benchmarks).

Est-ce utile pour moi ?

Pour comprendre le sujet, c'est une bonne occasion de regarder cela de plus près ! Comprendre le fonctionnement d'un noyau Linux est quelque chose de complexe et c'est toujours grisant de mieux connaître un sujet aussi poussé. Pour le commun des mortels, ça permet parfois d'avoir des noyaux testés et du support pour de nouveaux matériels en avant-première et ça résous parfois des soucis d'incompatibilité avec certains jeux... Mais les noyaux “generic” intègrent de plus en plus les optimisations spécifiques et la différence devient négligeable pour celles ou ceux qui cherchent juste à faire tourner leurs jeux et applications dans de bonnes conditions sans forcément rechercher les 2fps en plus.