カーネル
Wikipedia より:
- カーネルは、階層型に設計されたオペレーティングシステム (OS) の中核となる部分である。アプリケーションとハードウェアレベルでの実際のデータ処理との間の架け橋である。システムのリソースを管理し、ハードウェアとソフトウェアコンポーネントのやりとりを管理する。
メインラインの Linux カーネルに加えて、Arch Linux では様々なカーネルを使うことができます。リポジトリから利用できるカーネルの一部と、それぞれの簡単な説明をこのページでリストアップしています。また、システムのカーネルに適用することができるパッチの説明も記述します。記事の最後にはカスタムカーネルのコンパイルの概要とリンクが付してあります。
公式サポートカーネル
公式にサポートされているカーネルについては、フォーラムでのコミュニティサポートとバグレポートを利用できます。
- linux
- [core] リポジトリにある Linux カーネルとモジュール。バニラカーネル(素のカーネル)に多少のパッチが適用されています。
- linux-hardened
- カーネルやユーザースペースに対する脆弱性攻撃から防護する ハードニングパッチセット が適用されたセキュリティ指向 Linux カーネル。ユーザー名前空間 (非特権による使用はパッチで無効化済み) や audit、あるいは SELinux など標準の linux には含まれていないカーネルの堅牢化機能も有効になっています。
- linux-lts
- [core] リポジトリにある長期サポート版 (Long term support, LTS) の Linux カーネルとモジュール。
- linux-zen
- ZEN Kernel はカーネルハッカーたちの知恵の結晶です。日常的な利用にうってつけの最高の Linux カーネルになります。詳しい情報は https://liquorix.net を見てください (Debian 向けの ZEN ベースのカーネルバイナリ)。
コンパイル
次の方法を使って、独自のカーネルをコンパイルできます。
- Arch Build System
- 既存の linux PKGBUILD の高品質とパッケージ管理の利点を利用していす。
- 伝統的な方法
- 手動でソースの tarball をダウンロードし、ホームディレクトリで通常のユーザーとしてコンパイルする必要があります。
リストにあるパッケージの中には、非公式ユーザーリポジトリからバイナリパッケージを入手できるものもあります。
kernel.org カーネル
- linux-gitAUR
- Linus Torvalds の git リポジトリ から得たソースを使ってビルドする Linux カーネルとモジュール。
- linux-mainlineAUR
- メインラインの Linux カーネルとモジュール。
- linux-next-gitAUR
- Next —次のメインラインリリースにマージされる予定の機能を備えた最先端のカーネル。
- linux-lts44AUR
- Longterm 4.4 長期サポート版カーネルとモジュール。
- linux-lts49AUR
- Longterm 4.9 長期サポート版カーネルとモジュール。
- linux-lts414AUR
- Longterm 4.14 長期サポート版カーネルとモジュール。
- linux-lts419AUR
- Longterm 4.19 長期サポート版カーネルとモジュール。
- linux-lts54AUR
- Longterm 5.4 長期サポート版カーネルとモジュール。
- linux-lts510AUR
- Longterm 5.10 長期サポート版カーネルとモジュール。
非公式カーネル
- Aufs — aufs 対応の linux カーネルとモジュール。Docker を使用する際に有用。
- Ck — デスクトップに特に重点を置いてシステムの応答性を向上させるように設計された Con Kolivas (MuQSS scheduler を含む) によるパッチが含まれていますが、どのような使用目的でも問題なく使えます
- GalliumOS — Linux カーネルと Chromebook 用の GalliumOS パッチを備えたモジュール。
- Liquorix — Debian をターゲットとした設定と Zen カーネルソースを使用して構築されたカーネル代替品。デスクトップ、マルチメディア、ゲームなどのワークロード向けに設計されており、Debian Linux の性能代替カーネルとしてよく利用されます。Liquorix パッチセットのメンテナである Damentz は、同様に Zen パッチセットの開発者でもあります。
- linux-clear — IntelのClear Linuxプロジェクトからのパッチ。パフォーマンスとセキュリティの最適化を提供します。
- linux-lqx — Liquorix はデスクトップ・マルチメディア・ゲーム用途に Debian 用の設定と ZEN カーネルソースを使ってビルドされたディストロカーネル代替です。Debian Linux ではパフォーマンス向上カーネルとしてよく使われています。Liquorix パッチセットのメンテナである Damentz は ZEN パッチセットの開発者でもあります。
- MultiPath TCP — に対応する Linux カーネルとモジュール。
- linux-pf — pf-kernel パッチ [-ck パッチセット (BFS 含む), TuxOnIce, BFQ] と aufs3 が含まれた Linux カーネルとモジュール。
- Realtime kernel — IngoMolnarが 率いるコア開発者の小グループによって維持されています。このパッチを使用すると、コードのいくつかの非常に小さな領域(raw_spinlock クリティカル領域)を除いて、ほぼすべてのカーネルをプリエンプトできます。これは、ほとんどのカーネルスピンロックを優先度継承をサポートするミューテックスに置き換え、すべての割り込みとソフトウェア割り込みをカーネルスレッドに移動することによって行われます。
- VFIO — Alex Williamson によって書かれた KVM で PCI パススルーを出来るようにするパッチが適用された Linux カーネル (acs override と i915)。
- Xanmod — 高性能ワークステーション、ゲームデスクトップ、メディアセンターなど、性能を最大限活用し、強固で応答性が高く、スムーズなデスクトップエクスペリエンスを提供するように構築されています。このカーネルは、BFS スケジューラ、BFQ I/O スケジューラ、UKSM リアルタイムメモリデータの重複排除、YeAH TCP 輻輳制御、x86_64 高度な命令セットサポート、およびその他のデフォルトの変更を使用します。
- https://xanmod.org/ || linux-xanmodAUR, linux-xanmod-ttAUR
リグレッション デバッグ
一般的なトラブルシューティング#リグレッション デバッグ を参照してください。
linux-mainlineAUR を試して、その問題が既に上流で修正されているかどうかを確認してください。stickied コメントは既にビルドされたカーネルを含むリポジトリにも言及しているので、時間がかかる手動でのビルドは必要ないかもしれません。
最近発生しなかった問題をデバッグするために LTS カーネル (linux-lts) を試してみることも検討する価値があるかもしれません。LTS カーネルの古いバージョンは Arch Linux Archive で見つけることができます。
それでも問題が解決しないときは、bisect をしてください。linux-gitAUR 、kernel bugzilla でバグを報告してください。パッチと関係ないことを確認するために、パッチなしの バニラ バージョンを試すことが重要です。もしパッチが問題を引き起こすなら、そのパッチの作者に報告してください。
参照
- O'Reilly - Linux Kernel in a Nutshell (フリーの電子書籍)
- What stable kernel should I use? by Greg Kroah-Hartman
- Linux kernel documentation