---
title: Noyau CachyOS
description: Fonctionnalités et changements du noyau CachyOS
tableOfContents:
  minHeadingLevel: 1
  maxHeadingLevel: 4
---

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

## Fonctionnalités

### Optimisations des performances

- **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](https://cachyos.org/blog/2411-kernel-autofdo/))
- **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`

### Améliorations du CPU

- **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

### Système de fichiers & Mémoire

- **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](https://github.com/firelzrd/adios)
- **Gestion de la mémoire** :
  - Patch [le9uo](https://github.com/firelzrd/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)

### Fonctionnalités supplémentaires

#### Support matériel
- **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`)

#### Améliorations système
- **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

#### Divers

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](https://developer.android.com/reference/android/os/Binder), le module nécessaire pour [Waydroid](https://waydro.id/) est activé par défaut dans la configuration du noyau
et déjà [configuré](https://github.com/CachyOS/linux-cachyos/blob/2f380e2b35c4ad9acda98296f638f93af3742533/linux-cachyos/config#L11037).

## Variantes

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](https://github.com/CachyOS/kernel-patches).
Pour chacun des noyaux, il existe une [variante -lto correspondante](#convention-de-nommage-des-paquets) qui
est compilée avec [clang](https://clang.llvm.org/) au lieu de [GCC](https://gcc.gnu.org/).

- **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](https://cachyos.org/blog/2411-kernel-autofdo/) pour des performances améliorées. [Script](https://github.com/CachyOS/cachyos-benchmarker/blob/master/kernel-autofdo.sh) utilisé pour profiler le noyau.
- **linux-cachyos-bore**
  - Utilise l'ordonnanceur [BORE](https://github.com/firelzrd/bore-scheduler).
- **linux-cachyos-bmq**
  - Utilise l'ordonnanceur BMQ du [Project C](https://gitlab.com/alfredchen/projectc/) 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](https://github.com/firelzrd/bore-scheduler).
  - 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](https://github.com/firelzrd/bore-scheduler).
  - Patché de manière minimale par rapport aux autres noyaux pour assurer une stabilité maximale.
- **linux-cachyos-hardened**
  - Utilise l'ordonnanceur [BORE](https://github.com/firelzrd/bore-scheduler).
  - Inclut le patchset [linux-hardened](https://github.com/anthraxx/linux-hardened).
  - Configuration du noyau basée sur la [configuration de linux-hardened](https://gitlab.archlinux.org/archlinux/packaging/packages/linux-hardened/-/blob/main/config).
    - 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](https://github.com/torvalds/linux/).
  - Utilise l'ordonnanceur [BORE](https://github.com/firelzrd/bore-scheduler).
  - 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](https://github.com/firelzrd/bore-scheduler).

:::note
Sauf indication contraire, il est prudent de supposer que toutes les autres variantes de noyau
ont la même configuration que le noyau par défaut.
:::

Veuillez ouvrir une issue dans le [GitHub de linux-cachyos](https://github.com/CachyOS/linux-cachyos) pour des suggestions et améliorations qui pourraient être ajoutées au noyau par défaut.

### Convention de nommage des paquets

```sh
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
```

## Modules de noyau précompilés

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

[ZFS](https://openzfs.org/wiki/Main_Page) est l'un des nombreux systèmes de fichiers pris en charge par CachyOS. En raison de sa licence
[CDDL](https://opensource.org/license/cddl-1-0), 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.

### NVIDIA

CachyOS fournit des versions précompilées des modules de noyau à source fermée et [open-source](https://github.com/NVIDIA/open-gpu-kernel-modules/). 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.

## FAQ

### 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](/fr/features/kernel#variantes).

Pour plus d'informations sur AutoFDO, cliquez [ici.](https://cachyos.org/blog/2411-kernel-autofdo/)

### 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.
