---
title: CachyOS カーネル
description: CachyOS カーネルの機能と変更点
tableOfContents:
  minHeadingLevel: 1
  maxHeadingLevel: 4
---

CachyOS カーネルは、アップストリームの機能強化、設定、パッチを活用したカスタムカーネルです。

## 機能


### パフォーマンス最適化

- **高度なコンパイル**: GCC と Clang の両コンパイラーに対応した高度にカスタマイズ可能な PKGBUILD
- **リンク時最適化 (LTO)**: メインの `linux-cachyos` パッケージでは、パフォーマンス向上のためデフォルトで Clang Thin LTO を有効化
- **Distributed ThinLTO**: Distributed Clang ThinLTO ビルドに対応しカーネルのコンパイル速度を向上
- **プロファイルガイド最適化**: デフォルトのカーネル用に AutoFDO + Propeller プロファイリングで最適なコード生成を実現 ([詳細はこちら](https://cachyos.org/blog/2411-kernel-autofdo/))
- **カーネル制御フロー整合性 (kCFI)**: LLVM 使用時にセキュリティ機能として利用可能
- **タイマー周波数オプション**: 100Hz, 250Hz, 300Hz, 500Hz, 600Hz, 750Hz, 1000Hz から設定可能 (デフォルト: 1000Hz)
- **アーキテクチャ最適化**: x86-64-v3, x86-64-v4, AMD Zen4 向け専用ビルドに対応
- **コンパイラ最適化**: `-fivopts` や `-fmodulo-sched` を含む高度な GCC フラグ
- **PREEMPT_DYNAMIC**: プリエンプションモードを実行中でも選択できるように (full, lazy, voluntary, none)

### CPU の強化

- **複数のスケジューラ**: 処理内容や用途に応じて BORE, EEVDF, BMQ スケジューラを選択可能
- **[POC Selector](https://github.com/masahitoS/scx_cake)**: scx_cake から着想を得た高速なアイドル CPU 選択を行う Piece-Of-Cake セレクタで、ウェイクアップレイテンシを削減
- **CachyOS Sauce**: スケジューラとシステムのチューニング向けの独自の `CONFIG_CACHY` 設定
- **AMD P-State の強化**: Preferred Core 対応と linux-next からの最新の amd-pstate の改善パッチ
- **リアルタイム対応**: BORE スケジューラを統合した RT カーネルビルドを提供
- **低レイテンシ最適化**: 応答性の向上とジッター低減のためのパッチ
- **sched/wait LIFO accept()**: accept() ソケットを LIFO 順で処理し、キャッシュ効率を向上

### ネットワーク

- **[BBR3 TCP](https://github.com/google/bbr)**: 別モジュールで BBRv3 輻輳制御に対応 (BBRv1 も使用可)

### ファイルシステムとメモリ

- **ZFS 対応**: コンパイル済みモジュールにより ZFS ファイルシステムに組み込みで対応
- **NTFS の改善**: MFT ミラーの検証、属性の境界チェック、ログファイルの処理に対応する上流の NTFS ドライバの修正
- **MGLRU の強化**: ダーティページのライトバック処理の改善、vmscan の reclaim 統計の簡略化、Cachy Sauce MM チューニング (LRU-gen のワーキングセット保護、コンパクション・ウォーターマークの調整、ヒュージページの reclaim) を実施
- **NVIDIA への対応**:
  - パッチ済みのプロプライエタリ版 NVIDIA ドライバモジュール
  - オープンソース版 NVIDIA ドライバに対応
  - すぐに使えるモジュールをリポジトリ内で提供
- **I/O スケジューラの改善**:
  - BFQ と mq-deadline のパフォーマンス強化
  - [ADIOS](https://github.com/firelzrd/adios) v3.2.0 マルチキュー I/O スケジューラに対応
- **VRAM Cgroup (DMEM)**: DRM サブシステムにおいて、cgroup ごとに GPU の VRAM 使用量を制限するデバイスメモリコントローラ

### そのほかの機能

#### ハードウェアサポート
- **AMD ISP4**: 対応するプラットフォーム向けの新しい AMD ISP 4 カメラドライバ
- **ゲーミングハードウェア**: Steam Deck パッチ (オーディオ, HW Quirks, HID), ROG Ally, MSI Claw HID ドライバ (deckify) 対応
- **Apple 製ハードウェア**: ステージング段階の apple-bce ドライバによる T2 MacBook への対応
- **ASUS 製ハードウェア**: ASUS ハードウェアの互換性を向上するパッチ
- **Lenovo 製ハードウェア**: WMI バッテリー充電制限、GPU/CPU tunable 属性, capdata debugfs
- **HP 製ハードウェア**: OMEN Slim と OMEN MAX ノート PC に hp-wmi で対応
- **グラフィックス**: HDR サポートを有効化、AMDGPU の min_powercap オーバーライド (`amdgpu_ignore_min_pcap`)
- **ディスプレイ**: AMD 環境での HDMI VRR, ALLM と passive VRR のコネクタプロパティ、EDID からの VESA DSC bits-per-pixel 解析
- **オーディオコーデック**: AW88399 と MAX98390 HDA サイドコーデックに対応

#### システムの強化
- **マルチメディア**: v4l2loopback モジュールをデフォルトで内蔵
- **仮想化**: VFIO/GPU パススルー向け ACS オーバーライドに対応
- **アップストリーム統合**: Clear Linux と linux-next から厳選したパッチを取り込み

#### その他

CachyOS カーネルには、ユーザー体験を向上させる、細かいながらも重要な機能がほかにもあります。

- ストリップなしのカーネルバイナリをもつ、デバッグ向けバージョンのカーネルを内蔵しています。これは AutoFDO でカーネルをプロファイリングするために必要です。
- [Waydroid](https://waydro.id/) に必要なモジュールである [Binder](https://developer.android.com/reference/android/os/Binder) がカーネル設定で標準で有効になっており、すでに[設定済み](https://github.com/CachyOS/linux-cachyos/blob/2f380e2b35c4ad9acda98296f638f93af3742533/linux-cachyos/config#L11037)です。

## バリアント

CachyOS は幅広いカーネルに対応しています。対応するすべてのカーネルには [CachyOS ベースパッチセット](https://github.com/CachyOS/kernel-patches)が適用されています。
それぞれのカーネルには、[GCC](https://gcc.gnu.org/) の代わりに [Clang](https://clang.llvm.org/) でビルドされた[対応する -lto バリアント](#package-naming-convention)があります。

- **linux-cachyos**
  - 標準のカーネル、迷ったらこれ
  - 応答性向上のため 1000Hz ティックレートを採用
  - 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**
  - Alfred Chen による [Project C](https://gitlab.com/alfredchen/projectc/) の BMQ スケジューラを採用
    - `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**
  - [Linus のツリー](https://github.com/torvalds/linux/)からの最新メインラインカーネルをベースに構築
  - パッチセットに新機能を導入するメインカーネル
- **linux-cachyos-server**
  - デスクトップではなくサーバーワークロード向けにチューニング
    - 300Hz ティックレート
    - プリエンプションなし
    - チューニングなしの EEVDF
- **linux-cachyos-rt-bore**
  - リアルタイムプリエンプション
  - [BORE](https://github.com/firelzrd/bore-scheduler) スケジューラを採用

:::note
特に記載がない限り、ほかのカーネルバリアントは標準のカーネルと同じ設定と考えて問題ありません。
:::

標準のカーネルに関する提案や改善がある場合は [linux-cachyos GitHub](https://github.com/CachyOS/linux-cachyos) で Issue の投稿をお願いします。

### パッケージ命名規則

```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 から直接提供されたパッチをモジュールに適用しています。

## よくある質問

### なぜ AutoFDO はほかのカーネルバリアントには使われないの？

カーネルを実質的に2回ビルドする必要があるため、コンパイルに多くの時間とリソースがかかるからです。AutoFDO を使ったカーネルビルドは以下の手順で行われます。

1) AutoFDO とデバッグ機能を有効にしてカーネルをビルド
2) プロファイルを作成 (最適化に必要なプロファイリングデータを収集するためのワークロードを実行)
3) AutoFDO プロファイルを使ってカーネルを再ビルド

こうした事情により、現時点では [linux-cachyos](/ja/features/kernel#variants) バリアントのみに適用されています。

AutoFDO の詳細については[こちら](https://cachyos.org/blog/2411-kernel-autofdo/)をご覧ください。

### リアルタイムカーネルでゲームのパフォーマンスを改善できる？

リアルタイムカーネルでは改善できません。リアルタイムカーネルは通常のプリエンプティブ (PREEMPT) カーネルと比べて多くのコードのプリエンプトを許容するため、ゲームプロセスなどのたくさんのタスクが頻繁にプリエンプトされ、システムリソースが強制的に奪われることによりパフォーマンスを低下させます。
