Ядро 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.
- Использует планировщик BMQ из Project C от Alfred Chen.
- 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 и ThinLTOlinux-cachyos-hardened # Базовый пакет для hardened-ядра. Скомпилировано с GCClinux-cachyos-hardened-lto # Аналог linux-cachyos-hardened, скомпилированный с clanglinux-cachyos-hardened-{,lto-}headerslinux-cachyos-hardened-{,lto-}nvidialinux-cachyos-hardened-{,lto-}nvidia-openlinux-cachyos-hardened-{,lto-}zfslinux-cachyos-hardened-{,lto-}dbgПредсобранные модули ядра
Заголовок раздела «Предсобранные модули ядра»Чтобы охватить большую базу пользователей, CachyOS поставляет некоторые известные и широко используемые модули ядра вместе с ядром. Это означает, что пользователям больше не придется
перекомпилировать эти модули после каждого обновления ядра или при каждой новой установке ядра, а нужно будет только установить их из репозитория, так как они
уже предкомпилированы. Это фактически делает устаревшими любые пакеты -dkms, которые мог использовать пользователь и которые предоставляют тот же модуль, что и предкомпилированная версия.
ZFS — одна из многих файловых систем, поддерживаемых в CachyOS. Из-за того, что она лицензирована под CDDL, она несовместима с лицензией ядра Linux и поэтому не может быть включена в основное дерево. Поставляемый модуль включает последние апстрим-функции и исправления для обеспечения совместимости с последней версией ядра.
CachyOS поставляет предкомпилированные версии как закрытых, так и открытых модулей ядра. Поскольку разработка модуля ядра NVIDIA ведется вне основного дерева и, следовательно, не следует циклу релизов ядра, стандартная конфигурация иногда может быть несовместима с последней версией ядра. В качестве обходного пути CachyOS применяет к модулям патчи, созданные сообществом или предоставленные непосредственно NVIDIA.
Почему AutoFDO не используется для всех остальных вариантов ядра?
Заголовок раздела «Почему AutoFDO не используется для всех остальных вариантов ядра?»Потому что это дорогая сборка, так как она, по сути, требует двукратной сборки ядра, что приводит к большим затратам времени и ресурсов на компиляцию. Процесс сборки ядра с AutoFDO включает следующие шаги:
- Собрать ядро с включенными возможностями AutoFDO и отладки.
- Создать профиль, то есть выполнить рабочие нагрузки для сбора данных профилирования для возможных оптимизаций.
- Пересобрать ядро с профилем AutoFDO.
Поэтому пока что это присутствует только в варианте linux-cachyos.
Для получения дополнительной информации об AutoFDO нажмите здесь.
Улучшает ли ядро реального времени производительность в играх?
Заголовок раздела «Улучшает ли ядро реального времени производительность в играх?»Нет, не улучшает. Ядро реального времени делает гораздо больше кода вытесняемым по сравнению с обычным ядром с полным вытеснением. Это означает, что гораздо больше задач (включая игровые процессы) часто прерываются и принудительно уступают системные ресурсы, что приводит к ухудшению производительности.