Ir al contenido
Esta página está desactualizada. Consulte la documentación más reciente en /features/kernel/

Kernel de CachyOS

El kernel de CachyOS es un kernel personalizado que utiliza mejoras, configuraciones y parches de versiones superiores (upstream).

  • Compilación Avanzada: PKGBUILD altamente personalizable con soporte para compiladores GCC y Clang.
  • Optimización en Tiempo de Enlazado (LTO): Thin LTO activado por defecto para un mejor rendimiento.
  • Optimización Guiada por Perfil (PGO): Perfilado con AutoFDO + Propeller para una generación de código óptima (Aprende más).
  • Integridad de Flujo de Control del Kernel (kCFI): Disponible al usar LLVM para una seguridad mejorada.
  • Opciones de Frecuencia del Temporizador: Configurable entre 300Hz, 500Hz, 600Hz, 750Hz y 1000Hz (por defecto: 1000Hz).
  • Optimizaciones de Arquitectura: Soporte para compilaciones específicas de x86-64-v3, x86-64-v4 y AMD Zen4.
  • Optimizaciones del Compilador: Opciones avanzadas de GCC, incluyendo -fivopts y -fmodulo-sched.
  • Múltiples Planificadores: Planificadores BORE, EEVDF y BMQ para optimización de diferentes cargas de trabajo.
  • Mejoras en AMD P-State: Soporte para Preferred Core y las últimas mejoras de amd-pstate de linux-next.
  • Soporte de Tiempo Real: Compilaciones de kernel RT disponibles con integración del planificador BORE.
  • CachyOS Sauce: Configuración personalizada CONFIG_CACHY con ajustes del planificador y del sistema.
  • Optimizaciones de Baja Latencia: Parches para una capacidad de respuesta mejorada y una menor fluctuación (jitter).
  • Soporte para ZFS: Soporte integrado para el sistema de archivos ZFS con módulos precompilados.
  • Integración de NVIDIA:
    • Módulos del controlador privativo de NVIDIA con parches.
    • Soporte para el controlador de código abierto de NVIDIA.
    • Módulos listos para usar en el repositorio.
  • Mejoras en el Planificador de E/S:
    • Rendimiento mejorado de BFQ y mq-deadline.
    • Soporte para el planificador de E/S alternativo ADIOS.
  • Gestión de Memoria:
    • Parche le9uo para prevenir la hiperpaginación (page thrashing) bajo presión de memoria.
    • Ajustes de gestión de memoria de Zen-kernel (compactación, optimización de marcas de agua).
  • Hardware para Juegos: Parches para Steam Deck (Audio, peculiaridades de HW, HID) y soporte para ROG Ally.
  • Hardware de Apple: Soporte para MacBook T2 incluido por defecto.
  • Hardware de ASUS: Parches extendidos para compatibilidad con hardware ASUS.
  • Gráficos: Soporte HDR activado, anulación de min_powercap de AMDGPU (amdgpu_ignore_min_pcap).
  • Multimedia: Módulos v4l2loopback incluidos por defecto.
  • Virtualización: Soporte para ACS Override para passthrough de VFIO/GPU.
  • Integración de Upstream: Parches seleccionados cuidadosamente (cherry-picked) de Clear Linux y linux-next.

El kernel de CachyOS también tiene otras características notables que, aunque sutiles, mejoran la experiencia del usuario:

  • Incluye una variante de depuración del kernel que proporciona un binario del kernel sin depurar (unstripped) para fines de depuración. Este paquete es necesario para perfilar el kernel con AutoFDO.
  • Binder, el módulo necesario para Waydroid, está activado por defecto en la configuración del kernel y ya está configurado.

CachyOS ofrece una amplia gama de opciones de kernel. Todos los kernels que proporcionamos se entregan con el conjunto de parches base de CachyOS. Para cada uno de los kernels, hay una variante -lto correspondiente que se compila con clang en lugar de GCC.

  • linux-cachyos
    • El kernel por defecto. Es el kernel recomendado si no estás seguro de cuál usar.
    • Frecuencia de 1000Hz para una capacidad de respuesta mejorada.
    • Compilado con Clang y ThinLTO.
    • Perfilado con nuestro propio perfil de AutoFDO para un rendimiento mejorado. Script utilizado para perfilar el kernel.
  • linux-cachyos-bore
    • Usa el planificador BORE.
  • linux-cachyos-bmq
    • Usa el planificador BMQ de Project C por Alfred Chen.
      • No soporta sched-ext.
  • linux-cachyos-deckify
    • El kernel por defecto para dispositivos portátiles (handhelds). No se recomienda y no tiene soporte para usar cualquier otro kernel en dispositivos portátiles.
    • Usa el planificador BORE.
    • Parches específicos para dispositivos portátiles sobre el conjunto de parches base para mejorar la compatibilidad y la experiencia general en estos dispositivos.
  • linux-cachyos-eevdf
    • Modifica el planificador de kernel por defecto para una capacidad de respuesta mejorada.
  • linux-cachyos-lts
    • Basado en el último kernel de Soporte a Largo Plazo (Long Term Support).
    • Usa el planificador BORE.
    • Parcheado mínimamente en comparación con otros kernels para garantizar la máxima estabilidad.
  • linux-cachyos-hardened
    • Usa el planificador BORE.
    • Incluye el conjunto de parches de linux-hardened.
    • Configuración del kernel basada en la configuración de linux-hardened.
      • Contiene un endurecimiento (hardening) muy agresivo que reprime significativamente el rendimiento y la experiencia del usuario.
      • No soporta sched-ext.
  • linux-cachyos-rc
    • Basado en el último kernel mainline del árbol de Linus.
    • Usa el planificador BORE.
    • Kernel principal para introducir nuevas características en nuestro conjunto de parches.
  • linux-cachyos-server
    • Optimizado para cargas de trabajo de servidor en comparación con el uso de escritorio.
      • Frecuencia de 300Hz.
      • Sin preemption (apropiación).
      • EEVDF de serie (stock).
  • linux-cachyos-rt-bore
    • Preemption (apropiación) de tiempo real.
    • Usa el planificador BORE.

Por favor, abre un issue en el GitHub de linux-cachyos para sugerencias y mejoras que puedan añadirse al kernel por defecto.

Terminal window
linux-cachyos # Paquete base del kernel por defecto. Compilado con Clang y ThinLTO
linux-cachyos-hardened # Paquete base del kernel endurecido. Compilado con GCC
linux-cachyos-hardened-lto # Contraparte de linux-cachyos-hardened compilada con clang
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

Para dar cabida a una base de usuarios más amplia, CachyOS distribuye algunos módulos de kernel conocidos y muy utilizados junto con el kernel. Esto significa que los usuarios ya no tendrán que recompilar esos módulos después de cada actualización del kernel o en cada nueva instalación de kernel, sino que solo tendrán que instalarlos desde el repositorio, ya que están precompilados. Esto efectivamente deja obsoletos los paquetes -dkms que un usuario pudiera tener y que proporcionen el mismo módulo que la versión precompilada.

ZFS es uno de los muchos sistemas de archivos soportados en CachyOS. Debido a que su licencia es CDDL, es incompatible con la licencia del kernel de Linux y, por lo tanto, no puede ser integrado directamente en el árbol principal (in-tree). El módulo incluido contiene las últimas características y correcciones de upstream para asegurar la compatibilidad con el kernel más reciente.

CachyOS distribuye versiones precompiladas de los módulos de kernel tanto de código cerrado como de código abierto. Debido a que el desarrollo del módulo de kernel de NVIDIA es externo al árbol principal (out-of-tree) y, por lo tanto, no sigue el ritmo de lanzamientos del kernel, la configuración de serie (stock) a veces puede ser incompatible con el kernel más reciente. Como solución, CachyOS parchea los módulos con parches creados por la comunidad o compartidos directamente por NVIDIA.

¿Por qué no se utiliza AutoFDO para todas las demás variantes del kernel?

Sección titulada «¿Por qué no se utiliza AutoFDO para todas las demás variantes del kernel?»

Porque es costoso de compilar, ya que básicamente requiere compilar el kernel dos veces, lo que resulta en más tiempo y recursos dedicados a la compilación. El proceso de compilar un kernel con AutoFDO implica los siguientes pasos:

  1. Compilar el kernel con AutoFDO y las capacidades de depuración habilitadas.
  2. Crear un perfil, lo que significa ejecutar cargas de trabajo para recopilar datos de perfilado para las posibles optimizaciones.
  3. Recompilar el kernel con el perfil de AutoFDO.

Por lo tanto, por ahora solo está presente en la variante linux-cachyos.

Para más información sobre AutoFDO, haz clic aquí.

¿El kernel de tiempo real mejora el rendimiento en los juegos?

Sección titulada «¿El kernel de tiempo real mejora el rendimiento en los juegos?»

No, no lo hace. El kernel de tiempo real hace que mucho más código sea apropiable (preemptible) en comparación con un kernel normal totalmente apropiable. Esto significa que muchas más tareas (incluidos los procesos de juegos) son interrumpidas frecuentemente y cederán forzosamente los recursos del sistema, lo que conduce a un peor rendimiento.