1 / 40

Embedded Linux Conference 2011 Android Builders Summit 2011 Report

Embedded Linux Conference 2011 Android Builders Summit 2011 Report. パナソニック株式会社 加藤 慎介. 目次. Embedded Linux Conference (ELC) 概要 Android Builders Summit (ABS) 概要 ELC 2011 Keynote Report Session Report Demo/Showcase , ELC Closing Session ABS 2011 Keynote Report Session Report その他. 目次.

heinz
Download Presentation

Embedded Linux Conference 2011 Android Builders Summit 2011 Report

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Embedded Linux Conference 2011Android Builders Summit 2011Report パナソニック株式会社 加藤 慎介

  2. 目次 • Embedded Linux Conference (ELC) 概要 • Android Builders Summit (ABS) 概要 • ELC 2011 • Keynote Report • Session Report • Demo/Showcase,ELC Closing Session • ABS 2011 • Keynote Report • Session Report • その他

  3. 目次 • Embedded Linux Conference (ELC) 概要 • Android Builders Summit (ABS) 概要 • ELC 2011 • Keynote Report • Session Report • Demo/Showcase,ELC Closing Session • ABS 2011 • Keynote Report • Session Report • その他

  4. ELC 概要 • ELC (Embedded Linux Conference 2011)とは? • 組込み系のLinuxの技術についての国際技術会議 • 主催はThe Linux Foundation (LF) • 昨年度までCE Linux Forum (CELF)だったが,2010年にCELFとLFが合併し,CELFはLFのWorkgroupとなった • 著名なKernelメンテナーやLinux技術者をはじめ,世界の組込みメーカー系企業の技術者が多数参加 • ELC 2011 概要 • 日時:4月11日(月)~13日(水) • 場所:サンフランシスコ • 参加費:475ドル(早期割引 -50ドル) • 参加者:約350名で非常に盛況 • 昨年より約100名増加(2年前からでは約170名増加) • 日本からは若干名の参加,今年度は韓国系企業の参加者増が目立った • Session:約50件(Sessionは3会場で同時開催) • 詳細サイト: • http://events.linuxfoundation.org/events/embedded-linux-conference/ • http://elinux.org/ELC_2011_Presentations

  5. ABS 概要 • ABS (Android Builders Summit)とは? • Androidの実装・搭載に注目した国際技術会議(アプリケーションにはフォーカスしていない).今回が第1回目. • 主催はThe Linux Foundation (LF) • ABS 2011 概要 • 日時:4月13日(水)PM~14日(木) • 13(水)はELCと共催 • 場所:サンフランシスコ • 参加費:275ドル(ELCとの同時申込みの場合100ドル) • 参加者:ELCと共催日約300名,ABS単独日約120名 • Session:約20件(Sessionは2会場で同時開催) • 詳細サイト: • http://events.linuxfoundation.org/events/android-builders-summit/ • http://events.linuxfoundation.org/events/android-builders-summit/slides

  6. 目次 • Embedded Linux Conference (ELC) 概要 • Android Builders Summit (ABS) 概要 • ELC 2011 • Keynote Report • Session Report • Demo/Showcase,ELC Closing Session • ABS 2011 • Keynote Report • Session Report • その他

  7. Keynote • Title : The Yocto Project • Speaker : Dirk Hohndel (Intel) • 概要 • Yocto Projectの概要講演(スライド等はなく,口頭のみでの Yocto Project の概要の講演) • Yocto ProjectはDistributionではない • 様々なハードウェア環境でDistributionを作るための,テンプレートや基盤,ツールを提供する • 4月にVersion 1.0をリリースした

  8. Keynote • Title : Becoming Part of the Linux Kernel Community • Speaker : Arnd Bergmann (IBM, Linaro) • 概要 • 次のLinux Kernelでの注目パートについての「思い」をレクチャー • PC/サーバ/(純粋な)組込み,以外の分野でのLinux利用の増加 • Android,MeeGo • Free 3D グラフィックスの流れ • ドライバのオープン化の流れ • メモ • 要は「Linux Kernel Mainlineにコミットしよう」ということ • 特にグラフィック関係のドライバのオープン化の話が最近Hotになってきている

  9. Session • Title : Identifying Embedded Real-Time Latency Issues: I-Cache and Locks • Speaker : Frank Rowand (Sony America) • Real-Time系のSessionをLinux関係のConferenceで毎年2,3回発表している人物 • 概要 • SMP ARM での,I-Cacheのミスヒットによる性能劣化についての検討 • はじめに最大割り込み禁止時間を測定したところ,do_local_timer()が最大割り込み禁止時間を作っている一つの要因とわかった • 使用ツール • Ftrace の irqsoff tracer (latency-format option enabled) • do_local_timer()について,ミスヒットとストール時間をみて検討 • 検討に使用しているKernelは2.6.23.17-rt14,2.6.29.6-rt14 • 本Sessionでは課題抽出が目的で,改善はフォーカス外.ただし思いつく改善案を提示 • I-Cache増やして,I-Cacheミスを減らす.(実際のテストはしていない) • クリティカルなコードを(I-Cache)ロックして,I-Cacheミスを減らす.(ただ今回のターゲットボードはI-Cacheロックに対応していない) • クリティカルなコードを高速なメモリに配置して,I-Cacheミス時のコストを減らす.(ただ今回のターゲットボードは高速なメモリを実装していない) • L2-Cacheを追加して,I-Cacheミス時のコストを減らす. • ハードを変更して,L2の有無での検討実施 • ほとんどのL1 I-CacheミスはL2から補填される.ただし,一部 L2からも補填されない時がある.

  10. Session • Title : Snapshot Booting on Embedded Linux • Speaker : Kang Dongwook (ETRI) • 概要 • スワップテーブルにSnapshot Imageへのリンクを作っておき,スワップの仕組みを使って,組込みでのSnapshotブートを実現 • シャットダウン時 • 使っていたメモリページを全て退避 • ブート時 • メモリをレストア、そしてジャンプ • DMAを使ってNANDの読み込み時間を改善 • 5.19秒 vs 23秒 • 3.82秒 vs 22.98秒 • 最新のSnapshot BootではBoot Loaderの時間が短縮 • 利用シーン • シャットダウンの時間は延びる(10秒以上長くなる) • フリーのメモリ(ページ)が十分足りる場合(半分以上フリーページが必要) • NANDのサイズが十分足りる場合 • Androidではスナップショットが200MBを越える

  11. Session • Title : Linaro : A Year of Change • Speaker : David A Rusling (Linaro, CTO) • LinaroのCTOとしての発表だが,SpeakerはARMのFellow • 概要 • ここ2年で思ったこと • ARM搭載物は“典型的な”組込みLinux以外に移ってきた • 多様性は歓迎するが,フラグメンテーションはNG • Upstreamingの欠乏は非効率 • コラボレーションが欠けている • ARM Linux 向けに活動しているエンジニアが十分でない • なぜARMの組込み向けLinuxは違いができてしまうのか? • プロダクトのタイムラインが短く,また最新のオープンソースに基づいていない • プロダクトが多岐にわたる(SoC,System) • Proprietaryな部分が価値になっている • Linaroについて • 2010年6月立上げ,コアエンジニアは約20人 • ARMで使う上での共通な組込みLinuxの問題をUpstreamで解決するべく,オープンに活動している • Linaroはどのように運営されているか? • メンバーによって技術課題を挙げて,ワークグループを立上げ,解決していく • 今は,ToolchainとKernel にフォーカス.今後はGraphicsとPMにもフォーカスする • Toolchain WG • 対象:ARMv7A,Thumb 2,Neon • 対象:コアToolchain,gcc,glibc,binutils,gdb

  12. Session • Title : Optimization for Cheap Flash Media • Speaker : Arnd Bergmann (IBM) • 次の日に別テーマでKeynoteを担当した人物.Linaroのメンバーでもある • 概要 • 安いFlashを最大限に活用するために,という題目だが,内容は,Wear Leveling とガベッジコレクションについてのレクチャー • 一般的なWear Levelingの話 • ガベッジコレクションの話 • リニアアクセス,ブロックReマッピング,Data Logging

  13. Session • Title : RT-Preempt : What’s The State and Why There is No Roadmap • Speaker : Thomas Gleixner (linutronix) • 著名なKernelメンテナー(分野:Real-Time) • 概要 • RT-Preemptの現状について,と,今後の展望 • RT-Preemptの最新の安定版:2.6.33 • Real-Timeに関してMainlineに入っているもの • ハイレゾタイマー • Mutexの仕組み • 一般的な割り込みハンドラの仕組み • ユーザスペースMutexの優先度継承 • PreemptibleなRCU • スレッド割り込みハンドラ • 強制スレッド irq/softirq • トレースの仕組み など • 残っているもの • Preemptible mmu gather (2.6.40でのメインライン化を目指している) • PerCUP modifications • Preemptible memory and page allocator • Soft-interrupt modifications • Sleeping spinlocks • いつメインラインに入るか? • 2007,2008,2009にそれぞれ「リアルタイムのパッチはほとんど,年の終わりにはマージされるだろう(by Jonathan Corbet)」といわれてきた(が,まだマージされていない) • 実際,Redhat,IBM,OSADL,Linutronixがテストに多大な努力もしている • なぜロードマップがないのか? • 我々はパワーポイントは使わないから • 我々はKernel Developerだから • メインライン化の道を探しているところだから • だけど・・・ロードマップはあるよ(と言って,「会場の地図」を見せた。会場爆笑) • 最後にLinusの有名なセリフ • 「And yeah, I still think the hard-RT people are mostly crazy (by Linux - 2010)」

  14. Session • Title : High-Performance Computing using GPUs • Speaker : Mike Anderson (The PRT Group) • 概要 • 最近のトレンド • プロセッサ:マルチコア • ビデオやゲーム:3D, ストリーミング • マルチコアで性能向上するためには • スレッド並列処理がより重要になる • データの並列処理はより考えられたものにする必要がある • GPU搭載のモバイルデバイスが当たり前になる • LinuxのアプリケーションはすでにGPU対応が考えられている

  15. Session • Title : Integrating a Hardware Video Codec into Android Stagefright using OpenMAX IL • Speaker : Damian Hobson Garcia (Igel) • 概要 • Android の Stagefright media server • Video/Audioの再生/録音の仕組み(ソフトウェアコーデック)としてデフォルトで搭載されている • モバイルプラットフォームで1920x1080@30fpsでのビデオ再生をしたい • Stagefright(のソフトウェアコーデック)では無理 • ハードウェアコーデック(H.264)をStagefrightにどう入れるか? • OpenMAX IL を使う (Bellagio OpenMAX IL) • 実験環境 • Renesas SH (ARM Cortex-A8 @ 800MHz) • 実装 • OpenMAXの/src/base/omx_base_* を流用 • Androidのソースは frameworks/base/media/libstagefright/OMXCodec.cpp のみ修正 • libstagefrighthw.so作成 • quirksというものも利用

  16. Session • Title : How to Power Tune a Device Running on a Linux Kernel for Better Suspend Battery Life • Speaker : Mark Gross (Intel) • 概要 • 内容は,省電力のレクチャー • まずは形式的に検討部分を分類 • 重要でない部分は検討から除外 • Spec Sheets,ドライバのソースコード,データバス,など • SOCを知る • クロックとパワーコントロールを知る • プラットフォームの状態を知る • アプローチ • まずはデバイス(ハードウェア)毎に消費電力の初期値を測定 • その次に省電力パッチやデバドラのUpdate等を実施 • 省電力モードになっていないハードウェアをPickUpして,省電力モードにする

  17. Session • Title : Runtime PM, Upstream I/O Device Power Management • Speaker : Magnus Damm (Runesas) • 概要 • 省電力はより重要になってきているが,伝統的なLinuxのPower Management(PM)は組込みシステムには完全には適さない • なぜか? • PCでのユースケース向けに設計されているから • 組込みベンダーからのコミュニティへのフィードバックが少ないから • 組込みベンダーはPMを“ソース非公開”として扱うから • System-Wide PM • RAMとDiskを使ったSuspendがあるが,全く違うもの • Suspend-to-Disk • システム全体の電力断が可能 • Suspend-to-RAM • 起動はSuspend-to-Diskより早い • デバイスによりWakeupに対応しているかがまちまち • ハードが対応していても,ソフトが未対応,など ソフトでの問題であれば,対応させる • CPU Runtime PM • IdleループによってCPUコアの電力を管理する • Tickless CMT Timer • I/O Device Runtime PM • include/linux/pm_runtime.h の関数を使ってRuntime PMを実現

  18. Session • Title : MeeGo BoF • Speaker : Alison Chaiken (Nokia) • 概要 • MeeGoについて何でも語ろう,というBoF • 初めにSpeakerからMeeGoのトピック説明 • 2011年の予定:4月に1.2リリース,10月に1.3リリース • MeeGo,Linaro,Android の3つの比較

  19. Session • Title : Android for Servers ? • Speaker : John Stultz(IBM/Linaro) • 概要 • AndroidのOS技術でサーバにも活用できるものがあるか? • AndroidのOS技術とは,Linux Kernel と Android用のPatch • Android用のPatchを下記に分類 • バグフィックス/新HW対応 関係:Pmem, GPIO Drivers, ARM, MMC, Bluetoothなど • Power Management関係:Early suspend, Wakelocks, Alarm Timer • エラーレポート関係:Logger, Ram_console, Apanic • セキュリティ関係:Paranoid network • パフォーマンス関係:ashmem, binder, LowMemoryKiller, Yaffs2 • いつKernelメインラインにマージされるのか? • 不明 • LKMLで議論が活発なもの • Wakelocks,Binder,LowMemoryKiller,Alarm Timer • サーバに役立ちそうな技術 • AndroidのLowMemoryKillerは,OOM Killerが動く前にアプリをKillするので,サーバにも使える • Wakelocksの仕組みは省電力に効果がある • ARM, MMC, Bluetoothなどのバグフィックス

  20. Session • Title : Hot Multi-OS Switch: How to run Ubuntu, ChromiumOS, Android at the Same Time on an Embedded Device • Speaker : Gregoire Gentil (Always Innovating) • 概要 • マルチOSをマルチディスプレイで実現 • 利点:ひとつのキーボード・マウスで4つのPFをそれぞれ操作 • ひとつのビデオコンテンツを,2つのPF上でそれぞれ再生 • 背景 • KernelはLinuxなのに,Userspaceはいろいろある.では,一つのKernelでさまざまなUserspaceを同時に動作させられないか? • Beagleboardを使ってマルチOSを実装 • chrootを利用 • 課題を解決 • 課題:コアOSの選定,出力制御,入力制御 • デモ(デモでは,Ubuntu,ChromiumOS,独自Distribution,の3つ) • chrootで3つのディストリビューションを起動し,3つのディスプレイにそれぞれの画面を出力 • マウスはそれぞれのディスプレイにカーソルがある状態で,マウスを動かすとそれぞれの画面(ディストリビューション)でマウスカーソルが動き,キーボードをタイプすると全ての画面で入力されてしまう • 例:Ubuntuでコマンドライン入力をしていたら,CromeOSでは検索している,とか • ディスプレイ出力にはUSB->HDMI変換デバイスを利用 • 出力・入力制御により,マウスカーソルを3つの環境で1つにして,カーソルをディスプレイ間を移動可能に.3つの環境のうち一つだけに入力制御するように変更 • 同じ再生コンテンツを2つのPF上でそれぞれ再生

  21. Session • Title : Moving Forward : Overcoming Compatibility Issues BoFs • Speaker : Yoshitake Kobayashi (Toshiba) • 概要 • 長期スパンのシステムでのハードウェア変更時の課題について議論するBoF • Speakerの投げかけ,その1 • 長期スパンシステムにおいて,ハードウェアを新しくせざるをえなくなった場合に,Kernelと上位層(ライブラリ,アプリ,テストケース)の担保をどうするか? • 新しいハードウェアのドライバを古いKernelにバックポートする? • 新しいハードウェア上で動作する最新のKernelを使う? • 正解は,ハードウェアの特徴やユーザの要求次第であるが,このBoFでは「KernelのVersionUpはできない」ユースケースを考える • Speakerの投げかけ,その2 • ハードウェアが変わった場合,何かしらKernelの変更は必要になる.その場合のシステム全体の(それまでとの)互換性はどう確認する? • 会場の意見 • 当時のハードウェアを在庫として持っておくしかない • システム自体のKernelを定期的にUpdateしていくべきだ(by IBMの人でKeynoteも担当した人物) • この意見に対しては他数人から 「そもそもそれができないシステムでどうするか?を話し合うBoFだ」 「理想は分かるが,実際にKernelをUpdateできないシステムは存在する」 などの意見あり

  22. Demo/Showcase • Yocto Project • Yoctoでビルドしたシステムでオーディオ再生,というデモ • SonyのGoogle-TV • AndroidはFroyoベース.Linuxは2.6.23 • KernelShark • Ftraceのトレース結果をビジュアル表示するツール.CPU毎のプロセス占有状態などを表示可能

  23. ELC Closing Session (1/4) • 事前に参加者にアンケートをとっており,その結果を使ってのイベント • アンケート • 2011/04/06 4:44:45 +0900 の Tim からのメール • [Members] Help needed for ELC - please take 10-minute survey • 壇上で,クイズ100人に聞きました,形式のクイズ • 全員参加で,いくつかのクイズの回答を事前に書き,その後に答えごとに得点を発表&答え合わせ.総得点上位者から景品Get! • 1位はSonyのGoogle-TV • 2位はSonyのGoogle-TV-STB • 以下,LWN.netの年間購読権やO’Reillyの本,など

  24. 目次 • Embedded Linux Conference (ELC) 概要 • Android Builders Summit (ABS) 概要 • ELC 2011 • Keynote Report • Session Report • Demo/Showcase,ELC Closing Session • ABS 2011 • Keynote Report • Session Report • その他

  25. Keynote • Title : Motorola Innovation Rising • Speaker : Christy Wyatt (Motorola) • 概要 • Androidについて,Motorolaの商品と照らしながらこれまでの流れについて講演 • なぜAndroidか? 下記がそろっているから • Internet Rich,Scalability,Industry Platform,Ecosystem,Open Innovation • Androidのシェア • Apple iOSは越えた • MotorolaのAndroid搭載商品 • 27モデル,98カ国で705のリリース • 次は,MotorolaXoom,MotorolaATRIX 4G • FroyoがリリースされたときにMotorolaの対応速度はHTCと並び最速 • アプリケーションは2009年10月は2~3万だったのが、2011年1月では25万に迫る勢い

  26. Keynote • Title : From the Alliance to the Evolution : The History and Future of Android Innovation • Speaker : Mark Charlebois (Qualcomm) • 概要 • QualcommとAndroidの歴史 • QualcommはOHAのFoundingメンバー • 初のAndroid端末はQualcommのChipset (1.0 HTC -Oct 22, 2008) • 初の1GzのAndroid端末はQualcommのChipset (Nexus One -Jan 5, 2010) • 初のLTE搭載Android端末はQualcommのChipset (HTC Thunderbolt -Mar 17) • Androidのリリースサイクル • Cupcake:9.7 Month,Donut:9.1 Month,Eclair:7.9 Month,Froyo:6.7 Month • QualcommのChipset • 7つのChipset(7x00, 7x25, 7x27, 7x30/8x55, 8x50,8650A, 8x60)がAndroid向けに用意 • 今後について • Telephonyの機能発展 • LTE,eHRPD,DOrBのような技術に対応するフレームワーク • Dual SIMやDual Standby に対応するフレームワーク(Nov 2010) • SIM ツールキット • CSIM サポート • IPv6 for CDMA/EVDO • マルチメディアの機能発展 • QCELP/EVRC encode/decode,voice memo,LPA (low power audio),FM Radio,WVGA,720p encode/decode,1080p encode/decode • その他 • マルチコアサポート.Trackballのないデバイスのサポート,PM,Web Core (WebGL in Gingerbread, Enhanced Webkit and V8),商用DRM • Mobile Web Apps • P2P アプリケーション は AllJoyn.Augmented Reality は QDevNet • Code Aurora Forum (CAF)について • QulCはFoundingメンバ • 全てのupstreamへの貢献はCAFを通してやっている • 現在NativeアプリとWebアプリには違いがあるが,共通部分が増えていく • ひとつはマルチコアによる恩恵

  27. Keynote • Title : Open API Standards as a Foundation for Android Innovation • Speaker : Neil Trevett (NVIDIA) • 概要 • グラフィックAPIのこれまでと今後の進化について • Khronos Family of Standards • COLLADA, WebGL, WebCL • OpenGL, OpenGL/ES, EGL, OpenMAX/AL, OpenSL/ES, OpenVG • OpenMAX/IL • Khronosはオープンでロイヤリティフリー • いくつかPickUpして説明 • WebGLは,Web上での3Dをプラグインなしで可能にする • OpenSL/ESはAdvanced Audioに,OpenMAX/ALはマルチメディアに • デバイスプラットフォームによるAPI • Chrome,Symbian,MeeGo,などは OpenGL/ES,OpenMAX/IL,EGL • Appleは OpenGL/ES,OpenGL • Androidは OpenGL/ES,OpenMAX/IL,EGL,OpenSL/ES • TEGRA2の宣伝(ゲームシーンで特に威力を発揮)

  28. Keynote • Title : Porting Android to New Hardware • Speaker : Karim Yaghmour (Opersys) • O’Reillyの「組込み Linux System」本の著者 • 概要 • ハードウェアへのポーティングと,AndroidとLinuxについてのレクチャー • ハードウェアにポーティングする際の,変更ポイントをダイジェストで紹介 • レクチャーの章立て • Components to port • Cross-development toolchain • Porting the Linux Kernel • Developing device drivers • Getting the AOSP • Implementing Android hardware libs • Customizing the user-space • Building the AOSP • Components to write to flash • Useful Embedded Linux tricks • メモ • 技術的に中身のあるKeynote • 時間が限られている中でAndroidの技術要素を全て網羅 • プレゼン資料が公開されているので詳細はそちらを参照

  29. Keynote • Title : Beyond The Phone • Speaker : Marko Gargenta (Marakara) • 概要 • 電話以外のデバイスを例に挙げながら,Androidの要素技術についてのレクチャー • Androidは電話を超えるか? • Car,セットトップボックス,などなど • AndroidのUIを使っていろんなデバイスが考えられる • 複合プリンタの例 • なぜAndroid? 下記のものがあるから • アプリ開発のフレームワーク,タッチスクリーン,グラフィックス,WiFi • 足りないものは? • カスタムドライバ,カスタムライブラリ,アプリフレームワークのサポート,New Home アプリ • 足りないものを補えばAndroidベースの複合プリンタにできる • TV Boxの例 • 足りないものは? • TV用のUI,ストリーム関係とDRM • Summary • Androidはオープンだから,自分でいろいろと追加すれば,いろんなデバイスに搭載可能

  30. Session • Title : AllJoyn and the New Era of Peer-to-Peer Technology • Speaker : Greg Burns (Qualcomm(QulC)) • 概要 • AllJoynとは? • QulCが開発した,新しいモバイルPeer-to-Peerをベースにした近接関係 • AllJoynはソフトウェアbus • それぞれのデバイスではbusデーモンが起動 • アプリ間通信はデーモンで直接接続 • それぞれのデバイスのデーモンは,他のデバイスのデーモンと通信 • busのフォーメーションはアドホック • プロトコル • DBus wire-protocol,WiFiやBluetoothもサポート • メモ • コンセプト提案のようなコマーシャル映像も流していた. • 3人が3様のデバイス(スマートフォン,タブレット,携帯ゲーム機)でそれぞれが繋がって仮想空間でゲームをしている.スマートフォンのユーザに着信があり数十分電話→終了後,また仮想空間にJoin.というような映像

  31. Session • Title : Android Internals • Speaker : Karim Yaghmour (Opersys) • O’Reillyの「組込み Linux System」本の著者 • 概要 • Androidの中身を以下の分類で,それぞれレクチャー • Android Concepts • Overall Architecture • System startup • Linux Kernel • Hardware Support • Native User-Space • Dalvik • JNI • System Server • Activity Manager • Binder • Stock AOSP Apps • Hacking • メモ • あくまでSessionであるがKeynote並の参加者数 • プレゼン資料が公開されているので詳細はそちらを参照

  32. Session • Title : Managing Android and the Complexity inside • Speaker : Peter Vescuso (Black Duck Software) • 概要 • OSSライセンスの話(特にモバイル分野) • OSSはイノベーションをもたらしている • 3800プロジェクトある(2010現在) • ここ3年で2倍になった • 94%がMobile Phone (Android/iPhone)向けのOSSプロジェクト • Androidでのコンプライアンスが検討事項になりつつある • Copyleft型のライセンスと,そうでないものを分けて考える • 潜在的にはライセンスコンフリクトが起こりうる • GPLv3でApacheとのコンフリクトは解決した • 潜在的にはパテントの問題もある • アプリケーションマーケットとライセンス • AppleのiTunes StoreではGPLのアプリは頒布できない • Androidのマーケットではそのような制限はない • 変化の早いオープンソースで様々なライセンスをどう管理するか? • 例えばAndroid • Linux Kernel はGPLv2 • 約165の異なるコンポーネント(Kernelミラーは含まない.165のうち約半分はExternal) • 約19種のOSSライセンス • 相対するライセンスやOSI非認証のライセンス • 早い変化(約3~4ヶ月でのメジャーバージョンアップ) • トレーニング・ツール・プロセスを使って管理するのが良い • Reference • Black DuckのHPにAndroidのWhitePaperなどを掲載 • http://www.blackducksoftware.com/android

  33. Session • Title : Using the Debian Package Manager to Assemble Android-Based Mobile Phone Software System • Speaker : Magnus Back (Sony Ericsson) • 概要 • Debianのパッケージ管理システムを用いて,ビルドシステムは一つにしてコンフィグの動的設定で,対象顧客用のソフトウェアをビルドする仕組み,について • これまで • Sony Ericsoonは150~200の顧客に携帯を出しているが,顧客によりスペック・詳細要件があり,古いProprietaryなソフトウェアでは,それぞれStaticなコンフィグで解決していた • プロダクト毎に28のConfigで17プロダクト=450のConfig • 450のConfigごとに1.5時間のビルド時間=ビルド時間で1ヶ月 • Android • Android携帯を出すために,顧客それぞれのビルドシステムが必要 • 全てのConfigはそれぞれのプラットフォームに紐付けされる • アプリ開発者にとってはAndroid-PFは大きすぎる • prebuiltのコンポーネントをReuseする良い方法がない • 理想としては,ビルドシステムは一つにして,コンフィグを(動的に)設定するだけで,対象顧客用のソフトウェアをビルドするような仕組み • Debianのパッケージ管理システムを用いて,実現できないか? • Debianのパッケージを異なるビルドシステム間のインタフェースファイル結果のプロトコルに使う

  34. Session • Title : Trying to improve Android Boot Time With Readahead • Speaker : Tim Bird (Sony America) • 概要 • SonyはGoogleTVを出している.ブート時間短縮が必要 • 現状,Cold Boot で約30秒かかる.Suspend/Resume機能もあるがスタンバイの電力消費がある • Androidの一般的なブート時間をまずは測定 • どうやって計測したか? • BootchartをAndroidのInitに追加 • いくつか非効率な部分を発見 • 主には,パッケージスキャンとファイルアクセスルーチンの時間 • Readaheadを使ってみる • Readaheadを使う理由 • CPUではなくI/Oがボトルネックになっているから • Class preloading,と,パッケージスキャン • パッケージスキャンはシステム全体の起動時間の10%を占めている • アプリを変更しなくて良いから(私はKernel開発者だから.Javaは詳しくない) • 他のプロダクトにも応用できるかもしれない • Readaheadの概要 • ブート中に要求される前にRead DataをLinuxのページキャッシュに読み込んでおく(I/Oの待ち時間削減) • 読み込みはCPUの空き時間に実施 • 注:ReadするTotal Data 及び 使えるCPUサイクルの全体数は今回変えていない • ゴールは,I/Oの待ち時間をなくすこと • より良いI/Oスケジューリングもなされる • Readaheadするデータの決定方法が必要 • MinicoreとStraceというソフトウェアを使った • テスト環境 • Sony Internet TV,Kernelは2.6.23,スケジューラーはCFQ • チェックポイント • Readaheadがバックグラウンドで動いているか? • Class preloading,と,パッケージスキャンの時間が短縮されているか? • 結果 • Readahead in background で 約1.83秒短縮(4.65%の改善) • noopスケジューラはほとんど影響しない • プロセス優先度の変更は影響しない

  35. Session • Title : A Walk Through the Anrdoid Stack • Speaker : Aleksander “Sasa” Gargenta (Marakana) • 概要 • Androidの要素技術について,具体的にソースコード上の場所まで示しながらレクチャー • Linux Distributionとの違い • glibcがない.X11がない./etc/passwd, /etc/fstab などがない • あるのは,ドライバモデルなどLow Levelの層,プロセス・メモリ管理,共有ライブラリ,ネットワークスタック • Binder IPC • Exposed via /dev/binder • Runtime info at /proc/misc/binder • 実装は drivers/misc/binder.c と include/linux/binder.h を参照 • Ashmem • プログラムは /dev/ashmem をOpenして,mmapを使って,Binder経由でファイルを共有 • 実装は mm/ashmem.c と include/linux/ashmem.h を参照 • Pmem • 実装は drivers/misc/pmem.c と include/linux/android_pmem.h を参照 • Wakelocks • 実装は drivers/android/power.c と include/linux/wakelock.h を参照 • http://source.android.com/porting/power_management.html

  36. Session (cont.) • Title : A Walk Through the Anrdoid Stack の続き • 概要 • Alarm • 実装は drivers/rtc/alarm.c と include/linux/android_alarm.h を参照 • Low Memory Killer • 実装は drivers/misc/lowmemorykiller.c と security/lowmem.c を参照 • 優先度については /sys/module/lowmemorykiller/parameters/ • Bionic • BSD libc からの変更点 • arbitrary Android system-properties のサポート • Android Kernel Logger Driver のサポート • Android-specific な user/group 管理のサポート • Android-specific な getservent のサポート • /etc/protocol は未サポート • HAL (User-space Hardware Abstraction Layer) • Native Daemons • /system/bin/servicemanager, /system/bin/vold • Surface Flinger, Audio Flinger • Function Libraries • LibWebCore/Webkit, V8, SQLite, OpenSSL, FreeType, etc. • Dalvik • Activity Manager Service, Connectivity Manager Service, Additional Manager Services • などなど

  37. Session • Title : Android System Programming Tips and Tricks • Speaker : Tim Bird (Sony America) • 概要 • AndroidのいろんなTips紹介 • Gig, Repo, Build system • Fast building • make -j6 (マルチコア+2がよい) • export USE_CCACHE=1 • Fastboot,ADB • TraceやDebug ツール • dmesg,Logcat,Strace,Bootchart,DDMS,gdb • Performanceツール • Smem,Traceview,0xbench • メモ • プレゼン資料が公開されているので詳細はそちらを参照

More Related