#title カーネルについて ||'''Contents'''<
><> || * この情報の最終更新は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の標準カーネルにパッチ「[[https://rt.wiki.kernel.org/|CONFIG_PREEMPT_RT]]」を適用して設定を変更し、より強力なリアルタイム性能を持たせたものです。 リアルタイム性能とは、アプリケーションからの処理を、決められた期限までに終了する能力のことです。ある程度早い終了期限(デッドライン)のリアルタイム性能を持たせたカーネル(リアルタイムカーネル)を使うことで、特定のアプリケーションが行う仕事の処理を期待の時間までに終え、遅延(レイテンシ)を短縮することができます。 == リアルタイムカーネルから標準カーネルへ == Ubuntuで利用できるリアルタイムカーネルは、Ubuntu Studioコミュニティの有志がUbuntu向けパッケージのメンテナンスを行い、それをUbuntu Studioのカーネルとしてisoイメージに組み込んでいました。[[https://launchpad.net/ubuntu/+source/linux-rt|パッケージ名「linux-rt」]]です。 しかし10.10では、Ubuntuリポジトリに入れるためのカーネルメンテナンスの負担やUbuntu Kernel Teamの方針、さらには「[[https://rt.wiki.kernel.org/|CONFIG_PREEMPT_RT]]」パッチが対象とするLinuxカーネルのバージョンとUbuntuが採用しているLinuxカーネルのバージョンの違いなどを考慮し、Ubuntu標準のgenericカーネルを使うことになりました。 この背景として、Linuxカーネル2.6.39に「[[https://rt.wiki.kernel.org/|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パッケージマネジャーなどを使って導入することができます。 [[https://launchpad.net/ubuntu/+source/linux-lowlatency|“linux-lowlatency” package in Ubuntu]] @ launchpad.net なお氏のPPAでは現在、12.04(Precise Pangolin)用のRealtimeカーネルパッケージが提供されています。 [[https://launchpad.net/~abogani/+archive/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超のメモリ空間を利用できるよう設定が変更されている|| ||Low``Latencyカーネル (-lowlatency)||Ubuntu標準カーネルの設定を、強いリアルタイム性能を持つように変更したもの。かつての-preemptと同じく、ソフトリアルタイムシステムとして振る舞うが、-lowlatencyの方がより強力。ドライバ(カーネルモジュール)のバージョンはUbuntu標準カーネルに従う。|| ||Low``Latency PAEカーネル (-lowlatency-pae)||Low``Latencyカーネルとソースは同一。32ビットアーキテクチャーでも4GB超のメモリ空間を利用できるよう設定が変更されている|| ||Preemptカーネル (-preempt)||10.04で64ビットアーキテクチャー専用にリリースされたもの。内容はLow``Latencyカーネルとほぼ同じ。|| ||Realtimeカーネル (-realtime)||kernel.orgから取得したソースにCONFIG_PREEMPT_RTパッチを適用したもので、ハードリアルタイムシステムとして振る舞う。大抵の場合、Ubuntu標準のカーネルよりもバージョンの低いカーネルが提供されるため、ドライバ(カーネルモジュール)の点で不利ではある|| ||Realtime PAEカーネル (-realtime-pae)||Realtimeカーネルとソースは同一。32ビットアーキテクチャーでも4GB超のメモリ空間を利用できるよう設定が変更されている|| ||RTカーネル (-rt)||10.04までのバージョンで利用可能なカーネル。内容はReal''Timeカーネルと同一|| == (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」カーネルを利用することができます。 == 起動するカーネルを選択するには == {{attachment:multikernel-grub2.jpg}} 起動時のGRUBのOS選択画面に、現在システムにインストールされているカーネルのリストが表示されます。もしGRUBのOS選択画面が表示されなければ、起動時にSHIFTを押し続けると表示されます。このリストから、使いたいカーネルをテンキーで選択してエンターを押すと、そのカーネルでのブートが始まります。 == 直接の情報源 == 以下のコミュニティ・ドキュメントも参照して下さい。 * [[https://help.ubuntu.com/community/UbuntuStudio/RealTimeKernel|Ubuntu Studio Realtime Kernel]] - リアルタイムカーネルパッケージに関する概要 * [[https://wiki.ubuntu.com/RealTime|Realtime]] - Alessio Igor Bogani氏を中心とするメンテナンス体制の現状