Docstoc

ELC_ABS_2011_Report_Jamboree

Document Sample
ELC_ABS_2011_Report_Jamboree Powered By Docstoc
					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
       その他
         目次

   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
       その他
            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
          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
         目次

   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
       その他
         Keynote

   Title : The Yocto Project
   Speaker : Dirk Hohndel (Intel)
   概要
       Yocto Projectの概要講演(スライド等はなく,口頭の
        みでの Yocto Project の概要の講演)
         Yocto ProjectはDistributionではない

         様々なハードウェア環境でDistributionを作るための,
          テンプレートや基盤,ツールを提供する
         4月にVersion 1.0をリリースした
            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に
        なってきている
            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からも補填されない時がある.
            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を越える
            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
            Session

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

   Title : High-Performance Computing using GPUs
   Speaker : Mike Anderson (The PRT Group)
   概要
       最近のトレンド
         プロセッサ:マルチコア

         ビデオやゲーム:3D, ストリーミング

       マルチコアで性能向上するためには
         スレッド並列処理がより重要になる

         データの並列処理はより考えられたものにする必要がある

       GPU搭載のモバイルデバイスが当たり前になる
       LinuxのアプリケーションはすでにGPU対応が考えられている
            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というものも利用
            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して,省電力モードに
            する
            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を実現
         Session

   Title : MeeGo BoF
   Speaker : Alison Chaiken (Nokia)
   概要
       MeeGoについて何でも語ろう,というBoF
       初めにSpeakerからMeeGoのトピック説明
         2011年の予定:4月に1.2リリース,10月に1.3リリー
          ス
         MeeGo,Linaro,Android の3つの比較
            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などのバグフィックス
            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上でそれぞれ再生
            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できないシステムは存在する」
                などの意見あり
      Demo/Showcase

   Yocto Project
     Yoctoでビルドしたシステムでオーディオ再生,と
      いうデモ
   SonyのGoogle-TV
     AndroidはFroyoベース.Linuxは2.6.23

   KernelShark
     Ftraceのトレース結果をビジュアル表示するツー
      ル.CPU毎のプロセス占有状態などを表示可能
            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の本,など
          ELC Closing Session (2/4)
   全員参加のときのクイズ
       Normal Question
         Name a desktop Linux distribution

         Name a popular Linux bootloader

         Other than Linus Torvalds, name a famous Linux kernel
          developer
         What is a popular embedded Linux development board?

         Name a country where lots of embedded products are
          made
       Bonus Question
         How many Android phones are activated each day? (guess)

         What is the average airspeed velocity of an unladen
          swallow?
            ELC Closing Session (3/4)
   全員参加のときのクイズ:回答とスコア
     Normal Question
           Name a desktop Linux distribution
               70:Ubuntu, 11:Fedora, 7:Debian
           Name a popular Linux bootloader
               53:U-Boot, 25:Grub, 11:LILO
           Other than Linus Torvalds, name a famous Linux kernel developer
               40:Andrew Morton, 16:Alan Cox, 12:Greg Kroah-Hartman, 5:Ingo Molnar,
                3:Ted Tso, 3:Russell King
           What is a popular embedded Linux development board?
               68:BeagleBoard, 5:PandaBoard, 3:Armadillo
           Name a country where lots of embedded products are made
               33:China, 24:Japan, 14:United States, 9:Taiwan, 5:Germany, 3:UK
       Bonus Question
           How many Android phones are activated each day? (guess)
               315,000 (あくまでELC開催時点.先日のGoogle I/Oでは400,000と発表されて
                いました)
           What is the average airspeed velocity of an unladen swallow?
               回答忘れました・・・
            ELC Closing Session (4/4)
1. Name a leader in the open source movement:
2. Other than gcc, name one of the programs used to build the kernel
3. Name a desktop Linux distribution
4. Name a category of consumer electronics product that runs Linux
5. Name a company that makes CPUs for the embedded market
6 What year was Linux 1.0 released?
7. Name a popular Linux bootloader
8. Name a CPU architecture used in embedded products
9. How many Android phones are activated each day? (guess)
10. Other than Linus Torvalds, name a famous Linux kernel developer
11. Name an important open source project
12. Name a Linux news site
13. What is a popular embedded Linux development board?
14. Name an element of good coding style for the kernel
15. How many attempts does it take to mainline a kernel patch?
16. Name a graphics system or API set for Linux
17. How many seconds does it take an embedded Linux system to start?
18. How long is a jiffy?
19. Name a source code management tool
20. Name a country where lots of embedded products are made
21. Name an embedded Linux distribution
22. Name a filesystem used in embedded Linux
23. Other than ELC, name a major Linux conference
24. Name a Linux subsystem that is large in size
25. Name a subsystem in Linux that takes a long time to initialize on boot
26. What is the average airspeed velocity of an unladen swallow?
         目次

   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
       その他
         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
         万に迫る勢い
             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アプリには違いがあるが,共通部分が増えていく
                ひとつはマルチコアによる恩恵
            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の宣伝(ゲームシーンで特に威力を発揮)
            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の技術要素を全て網羅
       プレゼン資料が公開されているので詳細はそちらを参照
            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はオープンだから,自分でいろいろと追加すれば,いろんなデバイスに搭載
            可能
            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.というような映像
             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並の参加者数
       プレゼン資料が公開されているので詳細はそちらを参照
            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
            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のパッケージを異なるビルドシステム間のインタフェースファイル結果のプロ
            トコルに使う
                  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スケジューラはほとんど影響しない
             プロセス優先度の変更は影響しない
            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
            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
       などなど
            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
   メモ
       プレゼン資料が公開されているので詳細はそちらを参照

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:9
posted:9/9/2012
language:Unknown
pages:40