Difference between revisions of "Kernels (日本語)"

From ArchWiki
Jump to: navigation, search
m
m (Arch Build System を使う)
Line 147: Line 147:
 
[[Arch Build System (日本語)|Arch Build System]] の利用には既存の {{Pkg|linux}} の [[PKGBUILD (日本語)|PKGBUILD]] と[[Wikipedia:ja:パッケージ管理システム|パッケージ管理システム]]を使えるというアドバンテージがあります。PKGBUILD があるので、ソースがダウンロードされた後、ビルドを止めてカーネルを設定することができます。
 
[[Arch Build System (日本語)|Arch Build System]] の利用には既存の {{Pkg|linux}} の [[PKGBUILD (日本語)|PKGBUILD]] と[[Wikipedia:ja:パッケージ管理システム|パッケージ管理システム]]を使えるというアドバンテージがあります。PKGBUILD があるので、ソースがダウンロードされた後、ビルドを止めてカーネルを設定することができます。
  
[[Kernels/Compilation/Arch Build System]] を見て下さい。
+
[[Kernels/Compilation/Arch Build System (日本語)]] を見て下さい。
  
 
=== 伝統的な方法 ===
 
=== 伝統的な方法 ===

Revision as of 15:51, 22 June 2013

Template:Article summary start Template:Article summary text Template:Article summary heading Template:Article summary wiki Template:Article summary wiki Template:Article summary wiki Template:Article summary wiki Template:Article summary end

Wikipedia より:

カーネルは、階層型に設計されたオペレーティングシステム (OS) の中核となる部分である。アプリケーションとハードウェアレベルでの実際のデータ処理との間の架け橋である。システムのリソースを管理し、ハードウェアとソフトウェアコンポーネントのやりとりを管理する。

メインラインの Linux カーネルに加えて、Arch Linux では様々なカーネルを使うことができます。リポジトリから利用できるカーネルの一部と、それぞれの簡単な説明をこのページでリストアップしています。また、システムのカーネルに適用することができるパッチの説明も記述します。記事の最後にはカスタムカーネルのコンパイルの概要とリンクが付してあります。

プリコンパイル済みカーネル

公式パッケージ

linux
[core] リポジトリにある Linux カーネルとモジュール。バニラカーネル(素のカーネル)に3つのパッチが適用されています
linux-lts
[core] リポジトリにある長期サポート版 (Long term support, LTS) の Linux カーネルとモジュール。

AUR パッケージ

linux-bfsAUR
Brain Fuck Scheduler (BFS) が含まれた Linux カーネルとモジュール - BFS は Con Kolivas によって作成された、4096コア以下のデスクトップコンピュータ向けのタスクスケジューラ。任意で使える BFQ I/O スケジューラも付属。
linux-ckAUR
Con Kolivas の ck1 パッチセットを適用した Linux カーネル。
PKGBUILD (日本語) 内で次の追加オプションを切り替えることができます: BFQ スケジューラ, nconfig, localmodconfig, 動作中のカーネル設定の利用。
これらのパッチはシステムのレスポンスを改善するように作られており、特にデスクトップに向きますが、どのような使用目的でも問題なく使えます。ck パッチには BFS が含まれています。
詳しい情報とインストールの方法については linux-ck を読んで下さい。
linux-eee-ckAUR
Asus Eee PC 701 向けの Linux カーネルとモジュール、Con Kolivas の ck1 パッチセットを使用。
linux-fbcondecorAUR
fbcondecor をサポートした Linux カーネルとモジュール。
linux-grsecAUR
セキュリティを高めるための grsecurity と PaX パッチがあてられた Linux カーネルとモジュール。
linux-iceAUR
gentoo-sources パッチセットが適用され TuxOnIce をサポートした Linux カーネルとモジュール。
linux-lqxAUR
Liquorix はデスクトップ・マルチメディア・ゲーム用途に最適な設定を使ってビルドされたディストロカーネル代替です。多くの場合 Debian Linux でパフォーマンス向上カーネルとして使われています。Liquorix パッチセットのメンテナである damentz は Zen パッチセットの開発者でもあり、多くの改善がパッチセットに含まれています。
linux-paxAUR
セキュリティを高めるための PaX パッチがあてられた Linux カーネルとモジュール。
linux-pfAUR
pf-kernel パッチセット [-ck patchset (BFS 含む), TuxOnIce, BFQ], aufs2, squashfs-lzma が含まれた Linux カーネルとモジュール。
linux-zenAUR
The Zen Kernel は毎日の利用のために最高の Linux カーネルを提供するカーネルハッカーのコラボレーションによって生まれました。
kernel-netbookAUR
Eee PC などの Intel Atom N270/N280/N450/N550 を使っているネットブックのための安定したカーネル。外部ハードウェア (broadcom-wlAUR) やパッチセット (BFS + TuxOnIce + BFQ optional) が追加されています - Intel GPU においてのみ動作
linux-lts-tresorAUR
TRESOR が統合された、安定した LTS Linux カーネルとモジュール

パッチとパッチセット

カーネルにパッチをあてる理由は様々です。パフォーマンスを向上させたり reiser4 ファイルシステムのサポートなどメインラインに含まれていない機能を使うため、というのが大多数の理由でしょう。他の理由としては、カーネルの改善がどうやってなされるのか知ってみたいという好奇心もあるかもしれません。

しかしながら、システムのスピードアップにベストな方法はまずカーネルをあなたのシステム、特にアーキテクチャとプロセッサーのタイプに適合させることだと気づくのは重要なことです。速度をアップさせるために、カスタムカーネルの(一般的なアーキテクチャ用の設定を使って)パッケージ済みのバージョンを使うのは推奨されませんし、あまり価値はありません。他の利点は、あなたが持っていない・使っていない物のサポートを含めないことで、カーネルのサイズ(そしてビルド時間)を減らすことができるということです。例えば、新しいカーネルバージョンがリリースされた時、私はいつもカーネルのコンフィグを皮切りに bluetooth, video4linux, 1000Mbit イーサネットといったサポートを削除します。次のカーネルをビルドする前に私は使わないものを知っています!このページではカーネルコンフィグのカスタマイズについては触れませんが、最初のステップとしてカーネルのビルドを行い、それからパッチセットを使ってみるのを推奨します。

インストール方法

カスタムカーネルパッケージのインストールには Arch Build System (ABS) を使います。カスタムパッケージをビルドしたことがない場合は次の記事を読んで勉強できます: Arch Build System (日本語), Creating Packages (日本語)

あなたがカーネルにパッチをあてたりカスタマイズをしたことがないとしても、インストールはそこまで難しいものではなく、また、それぞれのパッチセットの PKGBUILD がフォーラムにはたくさんあります。ただし、すぐ近くのバンドワゴンに飛びつくのではなく、それぞれのパッチセットの効能を調べるところから始めるのを推奨します。そのほうがいきなりカーネルを選ぶよりもやるべきことについて多く学ぶことができるでしょう。

#コンパイル を見て下さい。

主なパッチセット

まず初めにパッチセットは様々な人によって開発されていることに注意してください。人々の中には linux カーネルの開発に深く関わっている人もいるでしょうし、そうでないひともいるでしょう。開発者のカーネルの理解度はパッチセットの信頼性と安定性に反映されます。

また、パッチセットによっては他のパッチセットとあわせて使うと効果がないものもあります (パッチの名前にそれが示されているかもしれません)。パッチセット(とカーネルアップデート)は非常に短い間隔でリリースされ、ほとんどの場合それを完全に追いつづける価値はありません。あまり夢中にならないようにしましょう、それを趣味にするなら話は別ですが。

ググればもっと多くのパッチセットがあります - そのときはクォーテーションを使うのを覚えておいて下さい (例: "-nitro")。そうしないと google はあなたが望む検索結果を表示しません

Note: This section is for information only - clearly no guarantees of stability or reliability are implied by inclusion on this page.

-ck

These are patches designed to improve system responsiveness with specific emphasis on the desktop, but suitable to any workload. The patches are created and maintained by Con Kolivas, his site is at http://users.on.net/~ckolivas/kernel/. Con maintains a full set but also provides the patches broken down so you can add only those you prefer.

The -ck patches can be found at http://ck.kolivas.org/patches/3.0/

-rt

This patchset is maintained by a small group of core developers, led by Ingo Molnar. This patch allows nearly all of the kernel to be preempted, with the exception of a few very small regions of code ("raw_spinlock critical regions"). This is done by replacing most kernel spinlocks with mutexes that support priority inheritance, as well as moving all interrupt and software interrupts to kernel threads.

It further incorporates high resolution timers - a patch set, which is independently maintained.

[as said from the Real-Time Linux Wiki]

patch at http://www.kernel.org/pub/linux/kernel/projects/rt/

-bld

Warning: This scheduler is in development.

BLD is best described as a O(1) CPU picking technique. Which is done by reordering CPU runqueues based on runqueue loads. In other words, it keeps the scheduler aware of the load changes, which helps scheduler to keep runqueues in an order. This technique doesn't depend on scheduler ticks. The two most simple things in this technique are: load tracking and runqueue ordering; these are relatively simpler operations. Load tracking will be done whenever a load change happens on the system and based on this load change runqueue will be ordered. So, if we have an ordered runqueue from lowest to highest, then picking the less (or even busiest) runqueue is easy. Scheduler can pick the lowest runqueue without calculation and comparison at the time of placing a task in a runqueue. And while trying to distribute load at sched_exec and sched_fork our best choice is to pick the lowest busiest runqueue of the system. And in this way, system remains balanced without doing any load balancing. At the time of try_to_wake_up picking the idlest runqueue is topmost priority but it has been done as per domain basis to utilize CPU cache properly and it's an area where more concentration is requires.

Google code Webpage: http://code.google.com/p/bld/

Patches are only available for 3.3-rc3, 3.4-rc4 and 3.5.0.

-grsecurity

Grsecurity is a security focused patchset. It adds numerous security related features such as Role-Based Access Control and utilizes features of the PaX project. It can be used on a desktop but a public server would receive the greatest benefit. Some applications are incompatible with the additional security measures implemented by this patchset. If this occurs, consider using a lower security level.

The -grsecurity patches can be found at http://grsecurity.net

Tiny-Patches

The goal of Linux Tiny is to reduce its memory and disk footprint, as well as to add features to aid working on small systems. Target users are developers of embedded system and users of small or legacy machines such as 386s.

Patch releases against the mainstream Linux kernel have been discontinued. The developers chose to focus on a few patches and spend their time trying to get them merged into the mainline kernel.

-pf

linux-pfAUR is yet another Linux kernel fork which provides you with a handful of awesome features not merged into mainline. It is based on neither existing Linux fork nor patchset, although some unofficial ports may be used if required patches haven't been released officially. The most prominent patches of linux-pf are TuxOnIce, the CK patchset (most notably BFS), AUFS3, LinuxIMQ, l7 filter and BFQ.

個々のパッチ

These are patches which can be simply included in any build of a vanilla kernel or incorporated (probably with some major tweaking) into another patchset. I have included some common ones for starters.

Reiser4

Reiser4

Gensplash/fbsplash

Gensplash - http://dev.gentoo.org/~spock/projects/

コンパイル

Arch Linux ではカーネルコンパイルに複数の方法があります。

Arch Build System を使う

Arch Build System の利用には既存の linuxPKGBUILDパッケージ管理システムを使えるというアドバンテージがあります。PKGBUILD があるので、ソースがダウンロードされた後、ビルドを止めてカーネルを設定することができます。

Kernels/Compilation/Arch Build System (日本語) を見て下さい。

伝統的な方法

手動でソース tarball をダウンロードし、標準ユーザーとして home ディレクトリでビルドを行います。設定を行った後、コンパイル・インストールする方法は2つあります; 伝統的に手動で行うか Makepkg + pacman を使うかです。

伝統的な方法のメリットは、他の Linux ディストリビューションでもカーネルを動作させることができることです。

Kernels/Compilation/Traditional を見て下さい。

プロプライエタリの NVIDIA ドライバ

カスタムカーネルと一緒にプロプライエタリの NVIDIA ドライバを使う方法は NVIDIA#Alternate install: custom kernel を見て下さい。

参照