Session - eLinux.org
Download
Report
Transcript Session - eLinux.org
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/androidbuilders-summit/
http://events.linuxfoundation.org/events/android-builderssummit/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()が最大割り込み禁止時間
を作っている一つの要因とわかった
使用ツール
do_local_timer()について,ミスヒットとストール時間をみて検討
検討に使用しているKernelは2.6.23.17-rt14,2.6.29.6-rt14
本Sessionでは課題抽出が目的で,改善はフォーカス外.ただし思いつく改善案を提示
Ftrace の irqsoff tracer (latency-format option enabled)
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は違いができてしまうのか?
プロダクトのタイムラインが短く,また最新のオープンソースに基づいていない
プロダクトが多岐にわたる(SoC,System)
Proprietaryな部分が価値になっている
Linaroについて
ARM搭載物は“典型的な”組込みLinux以外に移ってきた
多様性は歓迎するが,フラグメンテーションはNG
Upstreamingの欠乏は非効率
コラボレーションが欠けている
ARM Linux 向けに活動しているエンジニアが十分でない
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
トレースの仕組み
など
残っているもの
いつメインラインに入るか?
2007,2008,2009にそれぞれ「リアルタイムのパッチはほとんど,年の終わりにはマージされるだろう(by Jonathan Corbet)」といわれてきた(が,
まだマージされていない)
実際,Redhat,IBM,OSADL,Linutronixがテストに多大な努力もしている
なぜロードマップがないのか?
Preemptible mmu gather (2.6.40でのメインライン化を目指している)
PerCUP modifications
Preemptible memory and page allocator
Soft-interrupt modifications
Sleeping spinlocks
我々はパワーポイントは使わないから
我々は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用のPatchを下記に分類
不明
LKMLで議論が活発なもの
バグフィックス/新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メインラインにマージされるのか?
AndroidのOS技術とは,Linux Kernel と Android用のPatch
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をマルチディスプレイで実現
背景
chrootを利用
課題を解決
KernelはLinuxなのに,Userspaceはいろいろある.では,一つのKernelでさまざまな
Userspaceを同時に動作させられないか?
Beagleboardを使ってマルチOSを実装
利点:ひとつのキーボード・マウスで4つのPFをそれぞれ操作
ひとつのビデオコンテンツを,2つのPF上でそれぞれ再生
課題:コア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と上位
層(ライブラリ,アプリ,テストケース)の担保をどうするか?
正解は,ハードウェアの特徴やユーザの要求次第であるが,このBoFでは「Kernelの
VersionUpはできない」ユースケースを考える
Speakerの投げかけ,その2
新しいハードウェアのドライバを古いKernelにバックポートする?
新しいハードウェア上で動作する最新のKernelを使う?
ハードウェアが変わった場合,何かしら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 10minute 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
Name a popular Linux bootloader
68:BeagleBoard, 5:PandaBoard, 3:Armadillo
Name a country where lots of embedded products are made
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?
53:U-Boot, 25:Grub, 11:LILO
Other than Linus Torvalds, name a famous Linux kernel developer
70:Ubuntu, 11:Fedora, 7:Debian
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か? 下記がそろっているから
Androidのシェア
Apple iOSは越えた
MotorolaのAndroid搭載商品
Internet Rich,Scalability,Industry Platform,Ecosystem,Open Innovation
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のリリースサイクル
QualcommのChipset
今後について
Cupcake:9.7 Month,Donut:9.1 Month,Eclair:7.9 Month,Froyo:6.7 Month
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
Code Aurora Forum (CAF)について
P2P アプリケーション は AllJoyn.Augmented Reality は QDevNet
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
Khronosはオープンでロイヤリティフリー
いくつかPickUpして説明
WebGLは,Web上での3Dをプラグインなしで可能にする
OpenSL/ESはAdvanced Audioに,OpenMAX/ALはマルチメディアに
デバイスプラットフォームによるAPI
COLLADA, WebGL, WebCL
OpenGL, OpenGL/ES, EGL, OpenMAX/AL, OpenSL/ES, OpenVG
OpenMAX/IL
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? 下記のものがあるから
足りないものは?
カスタムドライバ,カスタムライブラリ,アプリフレームワークのサポート,New Home アプリ
足りないものを補えばAndroidベースの複合プリンタにできる
TV Boxの例
足りないものは?
アプリ開発のフレームワーク,タッチスクリーン,グラフィックス,WiFi
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型のライセンスと,そうでないものを分けて考える
潜在的にはライセンスコンフリクトが起こりうる
潜在的にはパテントの問題もある
アプリケーションマーケットとライセンス
AppleのiTunes StoreではGPLのアプリは頒布できない
Androidのマーケットではそのような制限はない
変化の早いオープンソースで様々なライセンスをどう管理するか?
例えばAndroid
GPLv3でApacheとのコンフリクトは解決した
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なコンフィグで
解決していた
Android
プロダクト毎に28のConfigで17プロダクト=450のConfig
450のConfigごとに1.5時間のビルド時間=ビルド時間で1ヶ月
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を出している.ブート時間短縮が必要
Androidの一般的なブート時間をまずは測定
現状,Cold Boot で約30秒かかる.Suspend/Resume機能もあるがスタンバイの電力消費がある
どうやって計測したか?
いくつか非効率な部分を発見
BootchartをAndroidのInitに追加
主には,パッケージスキャンとファイルアクセスルーチンの時間
Readaheadを使ってみる
Readaheadを使う理由
Readaheadの概要
CPUではなくI/Oがボトルネックになっているから
Class preloading,と,パッケージスキャン
パッケージスキャンはシステム全体の起動時間の10%を占めている
アプリを変更しなくて良いから(私はKernel開発者だから.Javaは詳しくない)
他のプロダクトにも応用できるかもしれない
ブート中に要求される前に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との違い
Binder IPC
プログラムは /dev/ashmem をOpenして,mmapを使って,Binder経由でファイル
を共有
実装は mm/ashmem.c と include/linux/ashmem.h を参照
Pmem
Exposed via /dev/binder
Runtime info at /proc/misc/binder
実装は drivers/misc/binder.c と include/linux/binder.h を参照
Ashmem
glibcがない.X11がない./etc/passwd, /etc/fstab などがない
あるのは,ドライバモデルなどLow Levelの層,プロセス・メモリ管理,共有ライブラ
リ,ネットワークスタック
実装は 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
Low Memory Killer
実装は drivers/rtc/alarm.c と include/linux/android_alarm.h を参照
実装は drivers/misc/lowmemorykiller.c と security/lowmem.c を参照
優先度については /sys/module/lowmemorykiller/parameters/
Bionic
BSD libc からの変更点
HAL (User-space Hardware Abstraction Layer)
Native Daemons
/system/bin/servicemanager, /system/bin/vold
Surface Flinger, Audio Flinger
Function Libraries
arbitrary Android system-properties のサポート
Android Kernel Logger Driver のサポート
Android-specific な user/group 管理のサポート
Android-specific な getservent のサポート
/etc/protocol は未サポート
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
Fastboot,ADB
TraceやDebug ツール
dmesg,Logcat,Strace,Bootchart,DDMS,gdb
Performanceツール
make -j6 (マルチコア+2がよい)
export USE_CCACHE=1
Smem,Traceview,0xbench
メモ
プレゼン資料が公開されているので詳細はそちらを参照