Перейти к содержимому
Эта страница устарела. Актуальную документацию можно найти по адресу: /features/kernel/

Ядро CachyOS

Ядро CachyOS — это кастомизированное ядро, использующее улучшения, конфигурации и патчи из апстрима.

  • Расширенная компиляция: PKGBUILD с широкими возможностями настройки и поддержкой компиляторов GCC и Clang.
  • Оптимизация на этапе компоновки (LTO): Thin LTO включена по умолчанию для лучшей производительности.
  • Профильно-ориентированная оптимизация: Профилирование с помощью AutoFDO + Propeller для оптимальной генерации кода (Подробнее).
  • Целостность потока управления ядром (kCFI): Доступно при использовании LLVM для повышения безопасности.
  • Варианты частоты таймера: Настраивается между 300 Гц, 500 Гц, 600 Гц, 750 Гц и 1000 Гц (по умолчанию: 1000 Гц).
  • Оптимизации для архитектур: Поддержка сборок, специфичных для x86-64-v3, x86-64-v4 и AMD Zen4.
  • Оптимизации компилятора: Расширенные флаги GCC, включая -fivopts и -fmodulo-sched.
  • Несколько планировщиков: Планировщики BORE, EEVDF и BMQ для оптимизации под разные рабочие нагрузки.
  • Улучшения AMD P-State: Поддержка Preferred Core и последние улучшения amd-pstate из linux-next.
  • Поддержка реального времени: Доступны сборки RT-ядра с интеграцией планировщика BORE.
  • CachyOS Sauce: Пользовательская конфигурация CONFIG_CACHY с твиками планировщика и системы.
  • Оптимизации для низкой задержки: Патчи для улучшения отклика и уменьшения джиттера.
  • Поддержка ZFS: Встроенная поддержка файловой системы ZFS с предкомпилированными модулями.
  • Интеграция с NVIDIA:
    • Модули проприетарного драйвера NVIDIA с патчами.
    • Поддержка открытого драйвера NVIDIA.
    • Готовые к использованию модули в репозитории.
  • Улучшения планировщика ввода-вывода:
    • Улучшенная производительность BFQ и mq-deadline.
    • Поддержка альтернативного планировщика ввода-вывода ADIOS.
  • Управление памятью:
    • Патч le9uo для предотвращения пробуксовки страниц при нехватке памяти.
    • Твики управления памятью из Zen-kernel (уплотнение, оптимизация водяных знаков).
  • Игровое оборудование: Патчи для Steam Deck (аудио, аппаратные причуды, HID) и поддержка ROG Ally.
  • Оборудование Apple: Поддержка T2 MacBook включена по умолчанию.
  • Оборудование ASUS: Расширенные патчи для совместимости с оборудованием ASUS.
  • Графика: Включена поддержка HDR, возможность переопределения min_powercap для AMDGPU (amdgpu_ignore_min_pcap).
  • Мультимедиа: Модули v4l2loopback включены по умолчанию.
  • Виртуализация: Поддержка ACS Override для проброса VFIO/GPU.
  • Интеграция с апстримом: Отобранные патчи из Clear Linux и linux-next.

Ядро CachyOS также имеет некоторые другие примечательные особенности, которые незаметны, но улучшают пользовательский опыт:

  • Включает отладочный вариант ядра, который предоставляет бинарный файл ядра без удаления отладочной информации. Этот пакет необходим для профилирования ядра с помощью AutoFDO.
  • Binder, модуль, необходимый для Waydroid, включен по умолчанию в конфигурации ядра и уже настроен.

CachyOS предлагает разнообразный выбор вариантов ядра. Все предоставляемые нами ядра поставляются с базовым набором патчей CachyOS. Для каждого из ядер существует соответствующий -lto вариант, который собран с помощью clang вместо GCC.

  • linux-cachyos
    • Ядро по умолчанию. Это рекомендуемое ядро, если вы не уверены, какое выбрать.
    • Частота прерываний 1000 Гц для улучшения отклика.
    • Собрано с помощью Clang и ThinLTO.
    • Профилировано с помощью нашего собственного профиля AutoFDO для повышения производительности. Скрипт, используемый для профилирования ядра.
  • linux-cachyos-bore
    • Использует планировщик BORE.
  • linux-cachyos-bmq
    • Использует планировщик BMQ из Project C от Alfred Chen.
      • Не поддерживает sched-ext.
  • linux-cachyos-deckify
    • Ядро по умолчанию для портативных устройств. Использование любого другого ядра на портативных устройствах не рекомендуется и не поддерживается.
    • Использует планировщик BORE.
    • Специальные патчи для портативных устройств поверх базового набора для улучшения совместимости и общего опыта использования.
  • linux-cachyos-eevdf
    • Модифицирует планировщик ядра по умолчанию для улучшения отклика.
  • linux-cachyos-lts
    • Основано на последнем ядре с долгосрочной поддержкой (LTS).
    • Использует планировщик BORE.
    • Минимально пропатчено по сравнению с другими ядрами для обеспечения максимальной стабильности.
  • linux-cachyos-hardened
    • Использует планировщик BORE.
    • Включает набор патчей linux-hardened.
    • Конфигурация ядра основана на конфигурации linux-hardened.
      • Содержит очень агрессивные меры по усилению безопасности, которые значительно снижают производительность и ухудшают пользовательский опыт.
      • Не поддерживает sched-ext.
  • linux-cachyos-rc
    • Основано на последнем основном ядре из дерева Линуса.
    • Использует планировщик BORE.
    • Основное ядро для внедрения новых функций в наш набор патчей.
  • linux-cachyos-server
    • Настроено для серверных нагрузок в отличие от десктопного использования.
      • Частота прерываний 300 Гц.
      • Без вытеснения.
      • Стандартный EEVDF.
  • linux-cachyos-rt-bore
    • Вытеснение в реальном времени.
    • Использует планировщик BORE.

Пожалуйста, открывайте issue в GitHub-репозитории linux-cachyos с предложениями и улучшениями, которые можно добавить в ядро по умолчанию.

Окно терминала
linux-cachyos # Базовый пакет ядра по умолчанию. Скомпилировано с Clang и ThinLTO
linux-cachyos-hardened # Базовый пакет для hardened-ядра. Скомпилировано с GCC
linux-cachyos-hardened-lto # Аналог linux-cachyos-hardened, скомпилированный с 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

Чтобы охватить большую базу пользователей, CachyOS поставляет некоторые известные и широко используемые модули ядра вместе с ядром. Это означает, что пользователям больше не придется перекомпилировать эти модули после каждого обновления ядра или при каждой новой установке ядра, а нужно будет только установить их из репозитория, так как они уже предкомпилированы. Это фактически делает устаревшими любые пакеты -dkms, которые мог использовать пользователь и которые предоставляют тот же модуль, что и предкомпилированная версия.

ZFS — одна из многих файловых систем, поддерживаемых в CachyOS. Из-за того, что она лицензирована под CDDL, она несовместима с лицензией ядра Linux и поэтому не может быть включена в основное дерево. Поставляемый модуль включает последние апстрим-функции и исправления для обеспечения совместимости с последней версией ядра.

CachyOS поставляет предкомпилированные версии как закрытых, так и открытых модулей ядра. Поскольку разработка модуля ядра NVIDIA ведется вне основного дерева и, следовательно, не следует циклу релизов ядра, стандартная конфигурация иногда может быть несовместима с последней версией ядра. В качестве обходного пути CachyOS применяет к модулям патчи, созданные сообществом или предоставленные непосредственно NVIDIA.

Почему AutoFDO не используется для всех остальных вариантов ядра?

Заголовок раздела «Почему AutoFDO не используется для всех остальных вариантов ядра?»

Потому что это дорогая сборка, так как она, по сути, требует двукратной сборки ядра, что приводит к большим затратам времени и ресурсов на компиляцию. Процесс сборки ядра с AutoFDO включает следующие шаги:

  1. Собрать ядро с включенными возможностями AutoFDO и отладки.
  2. Создать профиль, то есть выполнить рабочие нагрузки для сбора данных профилирования для возможных оптимизаций.
  3. Пересобрать ядро с профилем AutoFDO.

Поэтому пока что это присутствует только в варианте linux-cachyos.

Для получения дополнительной информации об AutoFDO нажмите здесь.

Улучшает ли ядро реального времени производительность в играх?

Заголовок раздела «Улучшает ли ядро реального времени производительность в играх?»

Нет, не улучшает. Ядро реального времени делает гораздо больше кода вытесняемым по сравнению с обычным ядром с полным вытеснением. Это означает, что гораздо больше задач (включая игровые процессы) часто прерываются и принудительно уступают системные ресурсы, что приводит к ухудшению производительности.