twitter icon   twitter icon   rss icon

Linux.com Japan

Home 特集 Kernel Hackers Meeting Kernel Hackers Meeting2

カーネルハッカーズ座談会 - Kernel3.0 & Linux20周年特集 -

1991年8月25日に産声を上げたLinuxは、 昨年で 20周年を迎えました。そして、カーネルのメジャーバージョンも3.0に更新。この2つの大きな節目を迎えたLinuxについて、日本を代表するコミュニティ開発者、Kernel Hackerの皆さんの集まって頂き、お話を伺いました。
終始笑いにつつまれた座談会の様子を、4回シリーズでお届けしています。

(編集部注:このインタビューは昨年(2011年)の夏に開催されたものです。時勢等はその当時のものであることをご了承下さい)


連載第1回】  連載第2回】  連載第3回】  連載第4回


連載第2回

座談会の連載2回目です。カーネル3.0の技術内容が続いています。お楽しみください。

参加者:
亀澤さん(富士通)・平松さん、西島さん(日立)・野村さん(NEC)・フェルナンドさん(NTT)・山幡さん(VA Linux)・岩松さん(ルネサスソリューションズ)
司会:杉田(Linux Foundation)

杉田:  組込み分野からみて、何か技術が大きく変わったと思う部分はありますか?


岩松:  3.0だとそんなに大きく変わっていないです。ただ、ARM 関係のソースコードがきれいになってきている印象があります。これは Linus が ARMのソースコードに関してよい印象を持っておらず、いろいろ文句を言っていたのが反映されはじめたのかなと思っています。
ARMのソースコードがきれいになっても、主要なARMコアのベンダーは、Linusツリーにはマージせずに独自のツリーを持っているので、うまくツリーの同期が取れるのか心配ではあります。弊社を含めたいくつかのARMコアのベンダーは別のツリーを持たず Linusツリーにマージするように心がけているようです。


杉田:  Debian関係はどうです?


岩松:  armel ABI から armhf ABI に移行が開始されているというのがトピックスですね。ARM のABI にEABIというのがあるのですが、以前は soft float を使ったABIが主流でした。ハードウェアのFPUを使うより、ソフトウェアで処理した方が速かったんです。今は、ARM の FPU ( vfp ) がようやく使えるようになったので、ハードウェアFPUを使ったEABIに移行しつつあります。次のリリースには、2013年の2月ぐらいかな。armhf が 正式サポートアーキテクチャに入る予定です。

平松:  そういえば、8月頃にコードを検索していて驚いたのですが、まだ出てないチップ対応のパッチがupstreamに入ってきていましたよね。入れても誰も検証できないと思うんだけど、どうなの?


岩松:  ビジネス的には、カーネルにソースを入れておいてアピールしたいというのがあるみたいです。だけど、まだ出てないチップだとデータシートがないことが多く、バグを見つけたり協力したいと思ったりしている開発者は困りますよね。バグが、該当するCPUやドライバで起きている場合に、データシートがないと困ることもありますから。


平松:  見つけて面白かったのが、2012年に出てくるCortex A15のQUME用のKVMの実装コード。なぜもうコードが入っているの? って思った。


一同:  あーあった! 確かに、なぜって思ったよね!


杉田:  他に悪影響を与えないからupstreamに入っちゃうのかしら?


山幡:  そうかも。X86関連でもそういうコードはいっぱい入っていますよ。


岩松: 実は、upstreamにソースコードを先行的に入れるというのは、すごく良いことなんです。今すぐ性能が欲しいから入れるというよりも、先に入れておいてバックポートする方がコストが少なくて済むので、早めに入れたいんですよ。


野村: 使う側からしてみれば、ハードウェアベンダーがどんどんコードをアップストリームに入れていってくれるのは良いことですね。入っているものはいつでも使えますから。使う時になって、入れたい/入れて欲しいと思っても、なかなか入らないですし、独自に入れるよりも先に入っていてくれた方が助かる。

平松:  でも、組込み系って、決まった人たちで開発していて参加しにくい雰囲気があります。心理的な面でも、技術的な面でも、何か壁みたいのものがありますよね。


岩松:  昔からだいぶ変わって汎用的になっていますよ。platform deviceの機能が入って、デバイスドライバの設定のインターフェースが、ある程度統一して書けるようになったというのが大きいと思います。今までは ドライバ内に各ボード用の設定を ifdef で書いていたのですが、
ターゲットボードを初期化するときに、ボード固有のデータ、例えば、IRQとか、I/O アドレスをドライバにデータを渡して初期化するようになっています。


杉田:  Debianでも汎用的な動きがありますか?


岩松:  汎用的というわけではありませんが、multiarchサポートを行うことになりました。異なるアーキテクチャのライブラリ等をひとつのシステム内にインストールできる機構です。複数のアーキテクチャのライブラリやヘッダファイル等が同一ファイルシステムに共存できるようになったので、クロスコンパイル環境の構築がより容易になります。この機構が入ることによって、クロスコンパイルバイナリのサポートが行われるかもしれません。今、議論中です。


フェルナンド:  インテルが開発したSFIも組込み向けじゃないですか?


山幡:  Simple Firmware Interface (SFI:解説10) のこと?

【解説10】Simple Firmware Interface
x86システムでレガシーなシステムファームウェア(BIOS、ACPI)に代わる組み込み向けの簡易ファームウェア。もともとIntel の Moorestown のために開発されたもの。2009年の OLS(Ottawa Linux Symposium)で発表された資料参照のこと。
http://kernel.org/doc/ols/2009/ols2009-pages-55-60.pdf


フェルナンド:  そうです。


亀澤:  そういえば、組込み関連のメモリ周りで、今、Marek Szyprowski 達が Contiguous Memory Allocator(解説11)をすごく頑張ってやっているんだけど、何か聞いている?


岩松: いや~、知らないです。どういうものですか?


亀澤:  メモリを数十メガ連続で確保しようって機能です。最初にパッチを出してきた時に、メモリホットプラグでやっているようにページマイグレーションを利用しなよ、とサンプルコードを送ったんだよね。ここ半年ほど、その方向でがんばって提案しているけど、まだ賛成が得られず入ってない。メモリホットプラグじゃなくて、コンパクションのコードを使えとか、いろいろな意見も出ていて、議論が続いている。

【解説11】Contiguous Memory Allocator
scatter/gather DMA ができないハードウェアは、DMA を行うために、連続した物理メモリ領域を必要とする(注)。しかし、稼働しているうちにメモリ・フラグメンテーションが起きて、大きい連続物理メモリ領域が確保できなくなることがある。そのため、起動時に予め DMA 用のメモリ領域を確保する必要がある。いくつかの実装が提案されており、Contiguous Memory Allocator もその一つ。Contiguous Memory Allocator の特徴は、デバイスドライバ等に使われていない時には、普通のメモリと同じ用途に使うことができること。
注)IOMMU を使うと、バス・アドレスを物理アドレスに変換できるので、この問題がなくなる。しかし、組み込み等のローエンドなデバイスにはIOMMUを搭載していないことが多い。


山幡:  組み込みの、どういうところで使うの?


亀澤:  カメラ用に使うって言っていたけど。


岩松:  DMA転送用とか?


亀澤:  なんだろう。MAX_ORDER(ページアロケーション時の上限)を越えた連続メモリを確保したい。だから、やり方としては、ちょんちょんと範囲を切って、メモリ・マイグレーションでどこかへ移して確保って方法はどうですって言ってたら、CPUキャッシュがどうとか、そういう面倒くさい話になって。


山幡:  結局、メモリのキャッシュの問題なのかな?


亀澤:  普通にユーザメモリで使いたいときはキャッシャブル(CPU cacheに乗る)だけどデバイスから使いたいときはアンキャッシャブル(CPU cacheにのせない)にするとか、新しい Zone を切るとまた HIGHMEM の悪夢を再現することになるとか、いろいろね。それに、設定はbootオプションでするのかとか。まあ、組込みだからbootオプションでいいと思うんだけど。

平松: そういう仕組みは、組込みだと空間が決まっているから難しいですよね。それに、すごく特殊なデバイス向けのような気がしますけど?


岩松:  いや、画像処理の分野には、そういうことが結構多いです。


亀澤:  今のスマートフォンだと、カメラと同じだから、用途は結構あると思うよ。


平松:  あー、なるほど!


亀澤:  カメラを使っていない時は、そのメモリ領域は、Opera(Webブラウザ)とかに使えばいいでしょ。でも、そうすると起動時にカメラの領域を見せないようにする必要がある。でも切り離すのは難しい。そうなると、cleancache(座談会vol1参照)でも対応できるのでは、という気もしている。


平松: でも空間は必要ですよね? 特にDMA転送するんだったら。物理的に連続しないといけないから、空間にどう割り当てるかがむずかしいですね。


亀澤: そうそう。



Linux Foundationメンバーシップ

30人のカーネル開発者

人気コンテンツ

  1. Today's Linux 2017/01/05 2017年 1月 04日
  2. Today's Linux 2017/01/17 2017年 1月 16日
  3. Today's Linux 2017/01/06 2017年 1月 05日
  4. Today's Linux 2017/01/12 2017年 1月 11日
  5. Today's Linux 2017/01/11 2017年 1月 10日

Linux Foundationについて

Linux Foundation はLinux の普及,保護,標準化を進めるためにオープンソース コミュニティに資源とサービスを提供しています

 

The Linux Foundation Japan

サイトマップ

問い合わせ先

サイトに関するお問い合わせはこちらまで

Linux Foundation Japan

Linux Foundation

Linux Training

提案、要望

Linux.com JAPANでは広く皆様の提案、要望、投稿を受け付ける予定です。

乞うご期待!