Aller au contenu
Cette page n'est pas à jour. Consultez la documentation à jour à l'adresse suivante /features/kernel/

Noyau CachyOS

Le noyau CachyOS est un noyau personnalisé qui utilise des améliorations, des configurations et des patchs issus de l’amont (upstream).

  • Compilation avancée : PKGBUILD hautement personnalisable avec prise en charge des compilateurs GCC et Clang
  • Link Time Optimization (LTO) : Thin LTO activé par défaut pour de meilleures performances
  • Profile-Guided Optimization (PGO) : Profilage AutoFDO + Propeller pour une génération de code optimale (En savoir plus)
  • Kernel Control Flow Integrity (kCFI) : Disponible lors de l’utilisation de LLVM pour une sécurité renforcée
  • Options de fréquence du timer : Configurable entre 300Hz, 500Hz, 600Hz, 750Hz, et 1000Hz (défaut : 1000Hz)
  • Optimisations d’architecture : Prise en charge des builds spécifiques pour x86-64-v3, x86-64-v4, et AMD Zen4
  • Optimisations du compilateur : Flags GCC avancés incluant -fivopts et -fmodulo-sched
  • Ordonnanceurs multiples : Ordonnanceurs BORE, EEVDF, et BMQ pour l’optimisation de différentes charges de travail
  • Améliorations AMD P-State : Prise en charge du “Preferred Core” et dernières améliorations d’amd-pstate issues de linux-next
  • Prise en charge temps réel : Builds de noyau RT disponibles avec l’intégration de l’ordonnanceur BORE
  • CachyOS Sauce : Configuration personnalisée CONFIG_CACHY avec des ajustements de l’ordonnanceur et du système
  • Optimisations à faible latence : Patchs pour une réactivité améliorée et une gigue réduite
  • Prise en charge ZFS : Support intégré du système de fichiers ZFS avec des modules précompilés
  • Intégration NVIDIA :
    • Modules de pilote propriétaire NVIDIA avec patchs
    • Prise en charge du pilote NVIDIA open-source
    • Modules prêts à l’emploi dans le dépôt
  • Améliorations de l’ordonnanceur d’E/S :
    • Performance améliorée pour BFQ et mq-deadline
    • Prise en charge de l’ordonnanceur d’E/S alternatif ADIOS
  • Gestion de la mémoire :
    • Patch le9uo pour prévenir le “page thrashing” en cas de forte pression mémoire
    • Ajustements de gestion mémoire de Zen-kernel (compaction, optimisation du watermark)
  • Matériel de jeu : Patchs pour Steam Deck (Audio, HW Quirks, HID) et prise en charge de ROG Ally
  • Matériel Apple : Prise en charge des MacBook T2 incluse par défaut
  • Matériel ASUS : Patchs étendus pour la compatibilité du matériel ASUS
  • Graphismes : Prise en charge du HDR activée, contournement du min_powercap d’AMDGPU (amdgpu_ignore_min_pcap)
  • Multimédia : Modules v4l2loopback inclus par défaut
  • Virtualisation : Prise en charge de l’ACS Override pour le passthrough VFIO/GPU
  • Intégration amont : Patchs sélectionnés avec soin (cherry-picked) de Clear Linux et linux-next

Le noyau CachyOS possède également d’autres fonctionnalités notables qui sont subtiles mais améliorent l’expérience utilisateur :

  • Inclut une variante de débogage du noyau qui fournit un binaire de noyau non “strippé” à des fins de débogage. Ce paquet est nécessaire pour profiler le noyau avec AutoFDO.
  • Binder, le module nécessaire pour Waydroid est activé par défaut dans la configuration du noyau et déjà configuré.

CachyOS offre une gamme variée d’options de noyaux. Tous les noyaux que nous fournissons sont livrés avec le Patchset de base CachyOS. Pour chacun des noyaux, il existe une variante -lto correspondante qui est compilée avec clang au lieu de GCC.

  • linux-cachyos
    • Le noyau par défaut. C’est le noyau recommandé si vous n’êtes pas sûr lequel utiliser.
    • Taux de rafraîchissement (tickrate) de 1000Hz pour une meilleure réactivité.
    • Compilé avec Clang et ThinLTO.
    • Profilé avec notre propre profil AutoFDO pour des performances améliorées. Script utilisé pour profiler le noyau.
  • linux-cachyos-bore
    • Utilise l’ordonnanceur BORE.
  • linux-cachyos-bmq
    • Utilise l’ordonnanceur BMQ du Project C par Alfred Chen.
      • Ne prend pas en charge sched-ext.
  • linux-cachyos-deckify
    • Le noyau par défaut pour les consoles portables. Il n’est pas recommandé et non pris en charge d’utiliser un autre noyau sur les consoles portables.
    • Utilise l’ordonnanceur BORE.
    • Patchs spécifiques aux consoles portables en plus du patchset de base pour améliorer la compatibilité et l’expérience globale sur ces appareils.
  • linux-cachyos-eevdf
    • Modifie l’ordonnanceur par défaut du noyau pour une meilleure réactivité.
  • linux-cachyos-lts
    • Basé sur le dernier noyau Long Term Support (LTS).
    • Utilise l’ordonnanceur BORE.
    • Patché de manière minimale par rapport aux autres noyaux pour assurer une stabilité maximale.
  • linux-cachyos-hardened
    • Utilise l’ordonnanceur BORE.
    • Inclut le patchset linux-hardened.
    • Configuration du noyau basée sur la configuration de linux-hardened.
      • Contient un durcissement très agressif qui nuit considérablement aux performances et à l’expérience utilisateur.
      • Ne prend pas en charge sched-ext.
  • linux-cachyos-rc
    • Basé sur le dernier noyau mainline de l’arbre de Linus.
    • Utilise l’ordonnanceur BORE.
    • Noyau principal pour introduire de nouvelles fonctionnalités dans notre patchset.
  • linux-cachyos-server
    • Optimisé pour les charges de travail de serveur par rapport à une utilisation de bureau.
      • Taux de rafraîchissement de 300Hz.
      • Pas de préemption.
      • EEVDF de base (stock).
  • linux-cachyos-rt-bore
    • Préemption temps réel.
    • Utilise l’ordonnanceur BORE.

Veuillez ouvrir une issue dans le GitHub de linux-cachyos pour des suggestions et améliorations qui pourraient être ajoutées au noyau par défaut.

Terminal window
linux-cachyos # Paquet de noyau de base pour le noyau par défaut. Compilé avec Clang et ThinLTO
linux-cachyos-hardened # Paquet de noyau de base pour le noyau durci. Compilé avec GCC
linux-cachyos-hardened-lto # Contrepartie compilée avec clang pour linux-cachyos-hardened
linux-cachyos-hardened-{,lto-}headers
linux-cachyos-hardened-{,lto-}nvidia
linux-cachyos-hardened-{,lto-}nvidia-open
linux-cachyos-hardened-{,lto-}zfs
linux-cachyos-hardened-{,lto-}dbg

Pour s’adapter à une base d’utilisateurs plus large, CachyOS fournit certains modules de noyau bien connus et très utilisés avec le noyau. Cela signifie que les utilisateurs n’auront plus à recompiler ces modules après chaque mise à jour du noyau ou à chaque nouvelle installation de noyau, mais n’auront qu’à les installer depuis le dépôt car ils sont déjà précompilés. Cela rend effectivement obsolètes tous les paquets -dkms qu’un utilisateur pourrait avoir et qui fournissent le même module que la version précompilée.

ZFS est l’un des nombreux systèmes de fichiers pris en charge par CachyOS. En raison de sa licence CDDL, il est incompatible avec la licence du noyau Linux et ne peut donc pas être intégré dans l’arborescence principale. Le module fourni inclut les dernières fonctionnalités et correctifs amont pour garantir la compatibilité avec le dernier noyau.

CachyOS fournit des versions précompilées des modules de noyau à source fermée et open-source. En raison du développement du module de noyau de NVIDIA étant hors de l’arborescence principale (out-of-tree) et ne suivant donc pas le rythme de sortie du noyau, la configuration de base peut parfois être incompatible avec le dernier noyau. Pour contourner ce problème, CachyOS patche les modules with des patchs créés par la communauté ou partagés directement par NVIDIA.

Pourquoi AutoFDO n’est-il pas utilisé pour toutes les autres variantes de noyau ?

Section intitulée « Pourquoi AutoFDO n’est-il pas utilisé pour toutes les autres variantes de noyau ? »

Parce que sa construction est coûteuse, car elle nécessite essentiellement de compiler le noyau deux fois, ce qui entraîne plus de temps et de ressources consacrés à la compilation. Le processus de construction d’un noyau avec AutoFDO implique les étapes suivantes :

  1. Compiler le noyau avec AutoFDO et les capacités de débogage activées.
  2. Créer un profil, c’est-à-dire exécuter des charges de travail afin de collecter des données de profilage pour les optimisations possibles.
  3. Recompiler le noyau avec le profil AutoFDO.

Par conséquent, il n’est présent pour l’instant que dans la variante linux-cachyos.

Pour plus d’informations sur AutoFDO, cliquez ici.

Le noyau temps réel améliore-t-il les performances de jeu ?

Section intitulée « Le noyau temps réel améliore-t-il les performances de jeu ? »

Non. Le noyau temps réel rend beaucoup plus de code préemptible par rapport à un noyau normal entièrement préemptible. Cela signifie que beaucoup plus de tâches (y compris les processus de jeu) sont fréquemment préemptées et céderont de force les ressources système, entraînant de moins bonnes performances.