---
title: Ядро CachyOS
description: Возможности и изменения в ядре CachyOS
tableOfContents:
  minHeadingLevel: 1
  maxHeadingLevel: 4
ai_translated: true
---

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

## Возможности

### Оптимизация производительности

- **Расширенная компиляция**: PKGBUILD с широкими возможностями настройки и поддержкой компиляторов GCC и Clang.
- **Оптимизация на этапе компоновки (LTO)**: Clang Thin LTO включена по умолчанию для основного пакета `linux-cachyos`.
- **Распределённый ThinLTO**: Поддержка распределённых сборок Clang ThinLTO для ускорения компиляции ядра.
- **Профильно-ориентированная оптимизация**: Профилирование с помощью AutoFDO + Propeller для оптимальной генерации кода ([Подробнее](https://cachyos.org/blog/2411-kernel-autofdo/)).
- **Целостность потока управления ядром (kCFI)**: Доступно при использовании LLVM для повышения безопасности.
- **Варианты частоты таймера**: Настраивается между 100 Гц, 250 Гц, 300 Гц, 500 Гц, 600 Гц, 750 Гц и 1000 Гц (по умолчанию: 1000 Гц).
- **Оптимизации для архитектур**: Поддержка сборок, специфичных для x86-64-v3, x86-64-v4 и AMD Zen4.
- **Оптимизации компилятора**: Расширенные флаги GCC, включая `-fivopts` и `-fmodulo-sched`.
- **PREEMPT_DYNAMIC**: Режимы вытеснения, выбираемые во время выполнения (полное, ленивое, добровольное, отключено).

### Улучшения ЦП

- **Несколько планировщиков**: Планировщики BORE, EEVDF и BMQ для оптимизации под разные рабочие нагрузки.
- **[POC Selector](https://github.com/masahitoS/scx_cake)**: Быстрый селектор простаивающего ЦП Piece-Of-Cake, вдохновлённый scx_cake, снижающий задержку пробуждения.
- **Улучшения AMD P-State**: Поддержка Preferred Core и последние улучшения amd-pstate из linux-next.
- **Поддержка реального времени**: Доступны сборки RT-ядра с интеграцией планировщика BORE.
- **CachyOS Sauce**: Пользовательская конфигурация `CONFIG_CACHY` с твиками планировщика и системы.
- **Оптимизации для низкой задержки**: Патчи для улучшения отклика и уменьшения джиттера.
- **sched/wait LIFO accept()**: Обработка accept() сокетов в порядке LIFO для лучшей эффективности кэша.

### Сеть

- **[BBR3 TCP](https://github.com/google/bbr)**: Контроль перегрузок BBRv3 доступен как отдельный модуль наряду с BBRv1

### Файловая система и память

- **Поддержка ZFS**: Встроенная поддержка файловой системы ZFS с предкомпилированными модулями.
- **Улучшения NTFS**: Исправления апстрим-драйвера NTFS для проверки зеркала MFT, проверки границ атрибутов и обработки лога.
- **Интеграция с NVIDIA**:
  - Модули проприетарного драйвера NVIDIA с патчами.
  - Поддержка открытого драйвера NVIDIA.
  - Готовые к использованию модули в репозитории.
- **Улучшения MGLRU**: Улучшенная обработка dirty writeback, упрощённая статистика vmscan reclaim и настройка Cachy Sauce MM (защита рабочего набора LRU-gen, твики уплотнения/водяных знаков, освобождение hugepage).
- **Улучшения планировщика ввода-вывода**:
  - Улучшенная производительность BFQ и mq-deadline.
  - Поддержка многоочередного планировщика ввода-вывода [ADIOS](https://github.com/firelzrd/adios) v3.2.0.
- **VRAM Cgroup (DMEM)**: Контроллер памяти устройства для ограничения использования VRAM GPU на cgroup в подсистеме DRM.

### Дополнительные возможности

#### Поддержка оборудования
- **AMD ISP4**: Новый драйвер камеры AMD ISP 4 для поддерживаемых платформ.
- **Игровое оборудование**: Патчи для Steam Deck (аудио, аппаратные причуды, HID), поддержка ROG Ally и драйвер HID MSI Claw (deckify).
- **Оборудование Apple**: Поддержка T2 MacBook с драйвером apple-bce в staging.
- **Оборудование ASUS**: Расширенные патчи для совместимости с оборудованием ASUS.
- **Оборудование Lenovo**: Ограничение заряда батареи WMI, настраиваемые атрибуты GPU/CPU и capdata debugfs.
- **Оборудование HP**: Поддержка ноутбуков OMEN Slim и OMEN MAX через hp-wmi.
- **Графика**: Включена поддержка HDR, возможность переопределения min_powercap для AMDGPU (`amdgpu_ignore_min_pcap`).
- **Дисплей**: HDMI VRR на AMD, свойства ALLM и пассивного VRR коннектора, парсинг VESA DSC битов на пиксель из EDID.
- **Аудиокодеки**: Поддержка HDA-кодеков AW88399 и MAX98390 сбоку.

#### Системные улучшения
- **Мультимедиа**: Модули v4l2loopback включены по умолчанию.
- **Виртуализация**: Поддержка ACS Override для проброса VFIO/GPU.
- **Интеграция с апстримом**: Отобранные патчи из Clear Linux и linux-next.

#### Прочее

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

- Включает отладочный вариант ядра, который предоставляет бинарный файл ядра без удаления отладочной информации. Этот пакет необходим для профилирования ядра с помощью AutoFDO.
- [Binder](https://developer.android.com/reference/android/os/Binder), модуль, необходимый для [Waydroid](https://waydro.id/), включен по умолчанию в конфигурации ядра
и уже [настроен](https://github.com/CachyOS/linux-cachyos/blob/2f380e2b35c4ad9acda98296f638f93af3742533/linux-cachyos/config#L11037).

## Варианты

CachyOS предлагает разнообразный выбор вариантов ядра. Все предоставляемые нами ядра поставляются с [базовым набором патчей CachyOS](https://github.com/CachyOS/kernel-patches).
Для каждого из ядер существует [соответствующий -lto вариант](#соглашение-об-именовании-пакетов), который
собран с помощью [clang](https://clang.llvm.org/) вместо [GCC](https://gcc.gnu.org/).

- **linux-cachyos**
  - Ядро по умолчанию. Это рекомендуемое ядро, если вы не уверены, какое выбрать.
  - Частота прерываний 1000 Гц для улучшения отклика.
  - Собрано с помощью Clang и ThinLTO.
  - Профилировано с помощью нашего собственного профиля [AutoFDO](https://cachyos.org/blog/2411-kernel-autofdo/) для повышения производительности. [Скрипт](https://github.com/CachyOS/cachyos-benchmarker/blob/master/kernel-autofdo.sh), используемый для профилирования ядра.
- **linux-cachyos-bore**
  - Использует планировщик [BORE](https://github.com/firelzrd/bore-scheduler).
- **linux-cachyos-bmq**
  - Использует планировщик BMQ из [Project C](https://gitlab.com/alfredchen/projectc/) от Alfred Chen.
    - `Не поддерживает sched-ext.`
- **linux-cachyos-deckify**
  - Ядро по умолчанию для портативных устройств. Использование любого другого ядра на портативных устройствах **не рекомендуется** и **не поддерживается**.
  - Использует планировщик [BORE](https://github.com/firelzrd/bore-scheduler).
  - Специальные патчи для портативных устройств поверх базового набора для улучшения совместимости и общего опыта использования.
- **linux-cachyos-eevdf**
  - Модифицирует планировщик ядра по умолчанию для улучшения отклика.
- **linux-cachyos-lts**
  - Основано на последнем ядре с долгосрочной поддержкой (LTS).
  - Использует планировщик [BORE](https://github.com/firelzrd/bore-scheduler).
  - Минимально пропатчено по сравнению с другими ядрами для обеспечения максимальной стабильности.
- **linux-cachyos-hardened**
  - Использует планировщик [BORE](https://github.com/firelzrd/bore-scheduler).
  - Включает набор патчей [linux-hardened](https://github.com/anthraxx/linux-hardened).
  - Конфигурация ядра основана на [конфигурации linux-hardened](https://gitlab.archlinux.org/archlinux/packaging/packages/linux-hardened/-/blob/main/config).
    - Содержит очень агрессивные меры по усилению безопасности, которые значительно снижают производительность и ухудшают пользовательский опыт.
    - `Не поддерживает sched-ext.`
- **linux-cachyos-rc**
  - Основано на последнем основном ядре из [дерева Линуса](https://github.com/torvalds/linux/).
  - Основное ядро для внедрения новых функций в наш набор патчей.
- **linux-cachyos-server**
  - Настроено для серверных нагрузок в отличие от десктопного использования.
    - Частота прерываний 300 Гц.
    - Без вытеснения.
    - Стандартный EEVDF.
- **linux-cachyos-rt-bore**
  - Вытеснение в реальном времени.
  - Использует планировщик [BORE](https://github.com/firelzrd/bore-scheduler).

:::note
Если не указано иное, можно считать, что все остальные варианты ядра
имеют ту же конфигурацию, что и ядро по умолчанию.
:::

Пожалуйста, открывайте issue в [GitHub-репозитории linux-cachyos](https://github.com/CachyOS/linux-cachyos) с предложениями и улучшениями, которые можно добавить в ядро по умолчанию.

### Соглашение об именовании пакетов

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

[ZFS](https://openzfs.org/wiki/Main_Page) — одна из многих файловых систем, поддерживаемых в CachyOS. Из-за того, что она лицензирована под
[CDDL](https://opensource.org/license/cddl-1-0), она несовместима с лицензией ядра Linux и поэтому не может быть включена в основное дерево. Поставляемый модуль включает
последние апстрим-функции и исправления для обеспечения совместимости с последней версией ядра.

### NVIDIA

CachyOS поставляет предкомпилированные версии как закрытых, так и [открытых](https://github.com/NVIDIA/open-gpu-kernel-modules/) модулей ядра. Поскольку разработка
модуля ядра NVIDIA ведется вне основного дерева и, следовательно, не следует циклу релизов ядра, стандартная конфигурация иногда может быть несовместима с последней
версией ядра. В качестве обходного пути CachyOS применяет к модулям патчи, созданные сообществом или предоставленные непосредственно NVIDIA.

## FAQ

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

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

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

Поэтому пока что это присутствует только в варианте [linux-cachyos](/ru/features/kernel#варианты).

Для получения дополнительной информации об AutoFDO нажмите [здесь.](https://cachyos.org/blog/2411-kernel-autofdo/)

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

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