Zum Inhalt springen
Diese Seite ist veraltet. Bitte beachten Sie die neueste Dokumentation unter /features/kernel/

CachyOS Kernel

Der CachyOS-Kernel ist ein angepasster Kernel, der Verbesserungen, Konfigurationen und Patches aus Upstream-Quellen nutzt.

  • Erweiterte Kompilierung: Hochgradig anpassbares PKGBUILD mit Unterstützung für die Compiler GCC und Clang
  • Link Time Optimization (LTO): Thin LTO ist standardmäßig für bessere Leistung aktiviert
  • Profilgesteuerte Optimierung: AutoFDO + Propeller-Profiling für optimale Code-Generierung (Erfahre mehr)
  • Kernel Control Flow Integrity (kCFI): Verfügbar bei Verwendung von LLVM für erhöhte Sicherheit
  • Timer-Frequenzoptionen: Konfigurierbar zwischen 300Hz, 500Hz, 600Hz, 750Hz und 1000Hz (Standard: 1000Hz)
  • Architekturoptimierungen: Unterstützung für x86-64-v3, x86-64-v4 und AMD Zen4 spezifische Builds
  • Compiler-Optimierungen: Erweiterte GCC-Flags einschließlich -fivopts und -fmodulo-sched
  • Mehrere Scheduler: BORE-, EEVDF- und BMQ-Scheduler zur Optimierung für verschiedene Arbeitslasten
  • AMD P-State-Verbesserungen: Unterstützung für Preferred Core und die neuesten amd-pstate-Verbesserungen aus linux-next
  • Echtzeit-Unterstützung: RT-Kernel-Builds mit BORE-Scheduler-Integration verfügbar
  • CachyOS Sauce: Eigene CONFIG_CACHY-Konfiguration mit Scheduler- und Systemanpassungen
  • Low-Latency-Optimierungen: Patches für verbesserte Reaktionsfähigkeit und reduzierten Jitter
  • ZFS-Unterstützung: Integrierte ZFS-Dateisystemunterstützung mit vorkompilierten Modulen
  • NVIDIA-Integration:
    • Proprietäre NVIDIA-Treibermodule mit Patches
    • Unterstützung für Open-Source-NVIDIA-Treiber
    • Gebrauchsfertige Module im Repository
  • I/O-Scheduler-Verbesserungen:
    • Verbesserte BFQ- und mq-deadline-Leistung
    • Unterstützung für den alternativen ADIOS I/O-Scheduler
  • Speicherverwaltung:
    • le9uo-Patch, um Page Thrashing bei Speicherdruck zu verhindern
    • Zen-Kernel-Speicherverwaltungsanpassungen (Compaction, Watermark-Optimierung)
  • Gaming-Hardware: Steam Deck Patches (Audio, HW Quirks, HID) und ROG Ally Unterstützung
  • Apple-Hardware: T2 MacBook Unterstützung standardmäßig enthalten
  • ASUS-Hardware: Erweiterte Kompatibilitätspatches für ASUS-Hardware
  • Grafik: HDR-Unterstützung aktiviert, AMDGPU min_powercap Override (amdgpu_ignore_min_pcap)
  • Multimedia: v4l2loopback-Module standardmäßig enthalten
  • Virtualisierung: ACS Override-Unterstützung für VFIO/GPU-Passthrough
  • Upstream-Integration: Ausgewählte Patches von Clear Linux und linux-next

Der CachyOS-Kernel hat auch einige andere bemerkenswerte Features, die zwar subtil sind, aber die Benutzererfahrung verbessern:

  • Enthält eine Debug-Variante des Kernels, die eine unstripped Kernel-Binärdatei für Debugging-Zwecke bereitstellt. Dieses Paket wird benötigt, um den Kernel mit AutoFDO zu profilen.
  • Binder, das für Waydroid benötigte Modul, ist standardmäßig in der Kernel-Konfiguration aktiviert und bereits eingerichtet.

CachyOS bietet eine vielfältige Auswahl an Kernel-Optionen. Alle von uns bereitgestellten Kernel werden mit dem CachyOS Base Patchset ausgeliefert. Für jeden Kernel gibt es eine entsprechende -lto-Variante, die mit clang anstelle von GCC gebaut wird.

  • linux-cachyos
    • Der Standard-Kernel. Dies ist der empfohlene Kernel, wenn du dir nicht sicher bist, welchen du verwenden sollst.
    • 1000Hz Tickrate für verbesserte Reaktionsfähigkeit.
    • Mit Clang und ThinLTO gebaut.
    • Mit unserem eigenen AutoFDO-Profil für verbesserte Leistung profiliert. Skript, das zum Profilieren des Kernels verwendet wird.
  • linux-cachyos-bore
    • Verwendet den BORE Scheduler.
  • linux-cachyos-bmq
    • Verwendet den BMQ-Scheduler aus Project C von Alfred Chen.
      • Unterstützt sched-ext nicht.
  • linux-cachyos-deckify
    • Der Standard-Kernel für Handhelds. Es wird nicht empfohlen und ist nicht unterstützt, einen anderen Kernel auf Handhelds zu verwenden.
    • Verwendet den BORE Scheduler.
    • Handheld-spezifische Patches zusätzlich zum Basis-Patchset, um die Kompatibilität und das allgemeine Erlebnis auf Handheld-Geräten zu verbessern.
  • linux-cachyos-eevdf
    • Passt den Standard-Kernel-Scheduler für verbesserte Reaktionsfähigkeit an.
  • linux-cachyos-lts
    • Basiert auf dem neuesten Long Term Support Kernel.
    • Verwendet den BORE Scheduler.
    • Minimal gepatcht im Vergleich zu anderen Kerneln, um maximale Stabilität zu gewährleisten.
  • linux-cachyos-hardened
    • Verwendet den BORE Scheduler.
    • Enthält das linux-hardened Patchset.
    • Kernel-Konfiguration basiert auf der linux-hardened config.
      • Enthält sehr aggressives Hardening, das die Leistung und die Benutzererfahrung erheblich beeinträchtigt.
      • Unterstützt sched-ext nicht.
  • linux-cachyos-rc
    • Basiert auf dem neuesten Mainline-Kernel aus Linus’s Tree.
    • Verwendet den BORE Scheduler.
    • Hauptkernel zur Einführung neuer Features in unserem Patchset.
  • linux-cachyos-server
    • Abgestimmt auf Server-Workloads im Vergleich zur Desktop-Nutzung.
      • 300Hz Tickrate.
      • Keine Preemption.
      • Standard EEVDF.
  • linux-cachyos-rt-bore
    • Echtzeit-Preemption.
    • Verwendet den BORE Scheduler.

Bitte eröffne ein Issue im linux-cachyos GitHub für Vorschläge und Verbesserungen, die dem Standard-Kernel hinzugefügt werden können.

Terminal window
linux-cachyos # Basiskernelpaket für den Standardkernel. Mit Clang und ThinLTO kompiliert
linux-cachyos-hardened # Basiskernelpaket für den gehärteten Kernel. Mit GCC kompiliert
linux-cachyos-hardened-lto # clang-kompiliertes Gegenstück zu 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

Um eine breitere Nutzerbasis zu bedienen, liefert CachyOS einige bekannte und häufig verwendete Kernel-Module zusammen mit dem Kernel aus. Das bedeutet, dass Benutzer diese Module nicht mehr nach jedem Kernel-Update oder bei jeder neuen Kernel-Installation neu kompilieren müssen, sondern sie einfach aus dem Repository installieren können, da sie bereits vorkompiliert sind. Dies macht alle -dkms-Pakete, die ein Benutzer möglicherweise hat und die das gleiche Modul wie die vorkompilierte Version bereitstellen, effektiv überflüssig.

ZFS ist eines der vielen Dateisysteme, die in CachyOS unterstützt werden. Da es unter der CDDL lizenziert ist, ist es inkompatibel mit der Lizenz des Linux-Kernels und kann daher nicht in den Haupt-Codebaum aufgenommen werden. Das mitgelieferte Modul enthält die neuesten Upstream-Features und -Fixes, um die Kompatibilität mit dem neuesten Kernel sicherzustellen.

CachyOS liefert sowohl vorkompilierte Versionen der Closed-Source- als auch der Open-Source-Kernelmodule aus. Da die Entwicklung von NVIDIAs Kernel-Modul außerhalb des Haupt-Codebaums stattfindet und somit nicht dem Release-Zyklus des Kernels folgt, kann die Standardkonfiguration manchmal mit dem neuesten Kernel inkompatibel sein. Als Workaround patcht CachyOS die Module mit von der Community erstellten Patches oder Patches, die direkt von NVIDIA bereitgestellt werden.

Verbessert der Echtzeit-Kernel die Gaming-Performance?

Abschnitt betitelt „Verbessert der Echtzeit-Kernel die Gaming-Performance?“

Nein, tut er nicht. Der Echtzeit-Kernel macht viel mehr Code preemptible (unterbrechbar) im Vergleich zu einem normalen, vollständig preemptible Kernel. Das bedeutet, dass viel mehr Tasks (einschließlich Gaming-Prozesse) häufig unterbrochen werden und Systemressourcen zwangsweise abgeben müssen, was zu einer schlechteren Leistung führt.

Warum wird AutoFDO nicht für alle anderen Kernel-Varianten verwendet?

Abschnitt betitelt „Warum wird AutoFDO nicht für alle anderen Kernel-Varianten verwendet?“

Weil es teuer im Build ist, da es im Grunde erfordert, den Kernel zweimal zu bauen, was mehr Zeit und Ressourcen für die Kompilierung bedeutet. Der Prozess, einen Kernel mit AutoFDO zu bauen, umfasst die folgenden Schritte:

  1. Baue den Kernel mit aktivierten AutoFDO- und Debugging-Fähigkeiten.
  2. Erstelle ein Profil, d.h. führe Arbeitslasten aus, um Profildaten für mögliche Optimierungen zu sammeln.
  3. Baue den Kernel mit dem AutoFDO-Profil neu.

Daher ist es vorerst nur in der linux-cachyos Variante vorhanden.

Für weitere Informationen zu AutoFDO, klicke hier.