• この情報の最終更新は2012年4月です
  • 対象とするUbuntu Studioのバージョン

    • 12.04 Precise Pangolin
    • 11.10 Oneiric Ocelot
    • 11.04 Natty Narval
    • 10.10 Maverick Meercat
    • 10.04 Lucid Lynx

リアルタイム性能とカーネルについて

Ubuntu Studioは製作環境とパフォーマンス環境の充実のために、リアルタイムカーネルを標準としてきました。リアルタイムカーネルとは、 Linuxの標準カーネルにパッチ「CONFIG_PREEMPT_RT」を適用して設定を変更し、より強力なリアルタイム性能を持たせたものです。

リアルタイム性能とは、アプリケーションからの処理を、決められた期限までに終了する能力のことです。ある程度早い終了期限(デッドライン)のリアルタイム性能を持たせたカーネル(リアルタイムカーネル)を使うことで、特定のアプリケーションが行う仕事の処理を期待の時間までに終え、遅延(レイテンシ)を短縮することができます。

リアルタイムカーネルから標準カーネルへ

Ubuntuで利用できるリアルタイムカーネルは、Ubuntu Studioコミュニティの有志がUbuntu向けパッケージのメンテナンスを行い、それをUbuntu Studioのカーネルとしてisoイメージに組み込んでいました。パッケージ名「linux-rt」です。

しかし10.10では、Ubuntuリポジトリに入れるためのカーネルメンテナンスの負担やUbuntu Kernel Teamの方針、さらには「CONFIG_PREEMPT_RT」パッチが対象とするLinuxカーネルのバージョンとUbuntuが採用しているLinuxカーネルのバージョンの違いなどを考慮し、Ubuntu標準のgenericカーネルを使うことになりました。

この背景として、Linuxカーネル2.6.39に「CONFIG_PREEMPT_RT」パッチの成果である「force threaded irq-handler」が取り込まれたということもあります。11.10(Oneiric Ocelot)のgenericカーネル(Linuxカーネル3.0.0)ではこの機能が有効となっています。そのため、linuxx-rtやlinux-lowlatencyのように特別にチューニングされたカーネルを利用しなくても妥当なリアルタイム性能を得ることができるようになりました。

lowlatencyカーネル

Ubuntu Studioコミュニティでは11.04向けに、Ubuntu標準のgenericカーネルの設定を変更してソフトなリアルタイム性能を持たせたlowlatencyカーネルを用意しました。Ubuntu Studio開発者のひとりで、カーネルメンテナンスを行っているAlessio Igor Bogani氏が自身のPPAにて提供していました。

12.04(Precise Pangolin)ではこのカーネルのパッケージがUbuntuコミュニティでメンテナンスされるようになり、UbuntuのUniverseリポジトリにおいてlowlatencyカーネルのパッケージが提供されます。パッケージはUbuntu Software CenterやSynapticパッケージマネジャーなどを使って導入することができます。

“linux-lowlatency” package in Ubuntu @ launchpad.net

なお氏のPPAでは現在、12.04(Precise Pangolin)用のRealtimeカーネルパッケージが提供されています。

Realtime kernels @ launchpad.net

Ubuntu Studioで利用できるカーネル一覧と導入方法

12.04出利用できるカーネル一覧

名前

i686

amd64

ABI

入手先

-generic

3.2.0

Ubuntuのリポジトリ群

-generic-pae

3.2.0

-lowlatency

3.2.0

-lowlatency-pae

3.2.0

11.10で利用できるカーネル一覧

名前

i686

amd64

ABI

入手先

-generic

3.0.0

Ubuntuのリポジトリ群

-generic-pae

3.0.0

11.04で利用できるカーネル一覧

名前

i686

amd64

ABI

入手先

-generic

2.6.38

Ubuntuのリポジトリ群

-generic-pae

2.6.38

10.10で利用できるカーネル一覧

名前

i686

amd64

ABI

入手先

-generic

2.6.35

Ubuntuのリポジトリ群

-generic-pae

2.6.35

10.04で利用できるカーネル一覧

名前

i386

amd64

ABI

入手先

-generic

2.6.32
(2.6.35)

Ubuntuのリポジトリ群

-generic-pae

2.6.32
(2.6.35)

-preempt

2.6.32

-rt

2.6.31

利用可能なカーネルの種別とその特徴

デスクトップ用途で利用可能なカーネルの種別とその特徴です。

Genericカーネル (-generic)

Ubuntuの標準カーネル。kernel.orgから取得したソースにUbuntuが開発したパッチを適用している。大抵はリリース時点で最も新しい安定版カーネルが採用されている

PAEカーネル (-pae)

Genericカーネルとソースは同一。32ビットアーキテクチャーでも4GB超のメモリ空間を利用できるよう設定が変更されている

LowLatencyカーネル (-lowlatency)

Ubuntu標準カーネルの設定を、強いリアルタイム性能を持つように変更したもの。かつての-preemptと同じく、ソフトリアルタイムシステムとして振る舞うが、-lowlatencyの方がより強力。ドライバ(カーネルモジュール)のバージョンはUbuntu標準カーネルに従う。

LowLatency PAEカーネル (-lowlatency-pae)

LowLatencyカーネルとソースは同一。32ビットアーキテクチャーでも4GB超のメモリ空間を利用できるよう設定が変更されている

Preemptカーネル (-preempt)

10.04で64ビットアーキテクチャー専用にリリースされたもの。内容はLowLatencyカーネルとほぼ同じ。

Realtimeカーネル (-realtime)

kernel.orgから取得したソースにCONFIG_PREEMPT_RTパッチを適用したもので、ハードリアルタイムシステムとして振る舞う。大抵の場合、Ubuntu標準のカーネルよりもバージョンの低いカーネルが提供されるため、ドライバ(カーネルモジュール)の点で不利ではある

Realtime PAEカーネル (-realtime-pae)

Realtimeカーネルとソースは同一。32ビットアーキテクチャーでも4GB超のメモリ空間を利用できるよう設定が変更されている

RTカーネル (-rt)

10.04までのバージョンで利用可能なカーネル。内容はRealTimeカーネルと同一

(12.04以降)リポジトリから-lowlatencyカーネルを導入する

UbuntuソフトウェアセンターでUbuntuのリポジトリ内から「linux-lowlatency」あるいは「linux-lowlatency-pae」メタパッケージをインストールし、「-lowlatency」カーネルを利用することができます。

(10.04以前)リポジトリから-rtカーネルを導入する

SynapticでUbuntuのリポジトリ内から「linux-rt」メタパッケージをインストールし、「-rt」カーネルを利用することができます。

(10.04以前)リポジトリから-preemptカーネルを導入する

amd64限定でSynapticでUbuntuのリポジトリ内から「linux-preempt」メタパッケージをインストールし、「-preempt」カーネルを利用することができます。

起動するカーネルを選択するには

multikernel-grub2.jpg

起動時のGRUBのOS選択画面に、現在システムにインストールされているカーネルのリストが表示されます。もしGRUBのOS選択画面が表示されなければ、起動時にSHIFTを押し続けると表示されます。このリストから、使いたいカーネルをテンキーで選択してエンターを押すと、そのカーネルでのブートが始まります。

直接の情報源

以下のコミュニティ・ドキュメントも参照して下さい。

UbuntuJapaneseWiki: UbuntuStudioTips/Setup/Kernels (最終更新日時 2013-06-19 11:45:18 更新者 Mocchi)