SlideShare uma empresa Scribd logo
1 de 26
Baixar para ler offline
Android,Brillo,ChromeOS
DroidKaigi2016
2016/2/19
@l_b__
今日の概要
昨年の Google I/O で発表され、 11 月に予告無しに突如
ソースコードが公開された Google のスマートホーム向
け OS Brillo 。
公開されたソースを見ると Android と Chrome OS が持つ
機能のハイブリッドと言えるものになっています。
Google の Android チームと Chrome チームが密になる
中から出てきた Brillo 。
どのような Android や Chrome OS に比べて、どのような
OS なのかを眺めてみたいと思います。
注意事項
●
このセッションの内容は Android OpenSource
Project(AOSP) などの公開された情報を元に
しています。ソースコードに基づく箇所以外は憶
測が交じっていますのでご注意ください。
●
Chrome OS と書いていますが、実際に参考にし
ているのはオープンソース版の Chromium OS
になります。
自己紹介
●
Twitter ID:@l_b__
●
横浜 Android and モバイル OS プラットフォー
ム部 ( 通称 横浜 PF 部 #yapf) という勉強会を
やっています。
– http://www.yokohama.android-pf.org/
●
フレームワーク周りが好物です
●
BeOS 好きだったのと Java-er なので Be 関係者
が多い ( 多かった )Android に惹かれました
●
仕事は某 SIer で Android フレームワーク修正か
らアプリ作成までやっていましたが最近は
Android 全く触っていません
Android と ChromeOS の略史
Android と ChromeOS の略史
Android Chrome OS
2003 年 Android 社設立
2005 年 Android 社の Google による買収
2008 年 Android1.0 リリース
G1 発売
Chrome ブラウザリリース
2009 年 ChromeOS 発表
ChromiumOS ソース公開
2010 年 Cr-48 発表
Android と ChromeOS の略史
2013 年 3 月
アンディ・ルービン氏の退任
とスンダル・ピチャイ氏の
Android/Chrome 担当兼任
の発表
http://www.itmedia.co.jp/news/articles
/1303/14/news027.html
Android/ChromeOS/Brillo の略史
Android Brillo
2014 年
6 月
Android L Preview リリース
2014 年
11 月
Lollipop5.0 リリース
2015 年
6 月
Brillo 発表
2015 年
10 月
Marshmallow6.0 リリース
2015 年
11 月
Brillo m7 ソース公開
Android と ChromeOS の仕組み
のおさらい
Android の仕組み
Fastboot ブートローダー
Linux カーネル
Android Init
Native デーモン
Zygote
VM
System
Service
Phone Home Setting
VM VM
apk
App App
VM
apk
VM
apk
VM
apk
VM
apkdex
Android の仕組み
●
アプリケーションのセキュアな実行を目的とした
分散コンポーネント OS
– プロセスによる権限分離
– プロセスごとの DalvikVM/ART による実行環境
– アプリケーションプロセスを高速起動するための
Zygote
– プロセス間通信を司る Binder
– ユーザーランド起動は独自形式 init
– 独自なディレクトリ構成 (/system 、 /data 等 )
ChromeOS の仕組み
U-Boot ブートローダー
Linux カーネル
Upstart
Native デーモンX + Graphic Libraries
Aura WindowManager
Chrome/Chromium Browser
Blink V8 PNaCl
Web Site Chrome App Extention
ChromeOS の仕組み
●
Chrome/Chromium ブラウザを実行することに
特化したシステム
– GentooLinux がベース
– ユーザーランド起動は upstart
– プロセス間通信は D-Bus
– FHS に従ったディレクトリ構成
では Brillo の話を
Brillo とは
●
公式サイト ” Brillo brings the simplicity and
speed of software development to
hardware for IoT with an embedded OS,
core services, developer kit, and
developer console.”
●
Weave プロトコルによるデバイス間通信をサ
ポートする、 32MB 〜 64MB 程度のメモリ搭載
デバイスをターゲットにした組込み機器向け OS
と開発環境
Brillo の仕組み
Fastboot ブートローダー
Linux カーネル
Android Init
Native デーモン avahi-daemon weaved webserved 独自デーモン
Brillo の仕組み
●
Android ユーザーランド (Android Init とディレク
トリ構成 ) でデバイスに独自サービスを組込み
やすくするための軽量 OS
●
開発ボードの BSP(Board Support Package)
から製品向けビルド環境作成を支援する BDK
が用意されている
●
現状はウェアラブルではなく、それなりに性能が
高い GUI を持たないスマートホーム機器向け
Brillo の仕組み
●
アプリケーションを追加する実行環境
(Dalvik/ART 、 Zygote 、 PackageManager 、
ActivityManager 等 ) は無く、独自サービスは
Native デーモンとして組み込む
Brillo で実行されるデーモン
デーモン 概要
ueventd Android の init に含まれるデバイス管理デーモン
logd Android で Lollipop 以降に採用されたログデーモン
dbus-daemon ChromeOS で使用されているプロセス間通信管理デーモ
ン
servicemanager Android で使用されている Binder プロセス間通信管理
デーモン
adbd Android Debug Bridge
Brillo も adb 接続できます
avahi-daemon Zeroconf の Linux 向け実装
(Bonjour を元にした名前解決、サービス発見規格 )
bluetoothtbd Android で Marshmallow 以降に採用された Bluetooth
デーモン
Brillo で実行されるデーモン
デーモン 概要
wpa_supplicant Android 、 ChromeOS で使用されている WiFi 認証デーモ
ン
keystore Android で使用されているセキュアな Key-Value ストレージ
mediaserver Android で使用されているマルチメディアフレームワーク起
動デーモン Brillo では音声再生に使用
nativepowerman Brillo 独自の電源管理デーモン
sensorservice Android で使用されているセンサー管理サービス
metrics_daemon ChromeOS 由来のユーザー使用状況収集デーモン
perfprofd Android Marshmallow 以降のソースに含まれるシステムプ
ロファイリングデーモン
Brillo で実行されるデーモン
デーモン 概要
shill ChromeOS で使用されているネットワーク接続管理デーモ
ン
tlsdated ChromeOS で使用されているセキュアな時刻同期デーモン
update_engine ChromeOS で使用されているソフトウェアアップデートデー
モン
weaved IoT 向けプロトコル、 Weave の実装
webservd HTTP サーバ
kauditd ChromeOS
dnsmasq Android で使用されている簡易 DNS サーバ
Brillo で実行されるデーモン
デーモン 概要
dhcpcd-6.8.2 DHCP クライアントデーモン
firewalld ChromeOS で使用されているファイアーウォール
最後に Android に採用された
ChromeOS の機能の話
Android に採用された ChromeOS の技術
●
Verified Boot と dm-verity
– Android4.4 から導入、本格的な導入は Block-
Oriented OTA が導入された 5.0 から。
– 読み取り専用のパーティション (/system
や /vendor) の 4k 毎のブロックのハッシュ値を
元にハッシュツリーを生成
– ブロック読み込み時にハッシュの不一致 (= 改ざ
ん ) があった場合は I/O エラーにする
– 詳細は
https://source.android.com/security/verifi
edboot/index.html 参照
Android 未採用な ChromeOS の技術
●
MiniJail
– User Namespace 、 CGroup 、 chroot を元にし
たコンテナ仮想化
●
つまり LXC や Docker と原理は同じ
– Brillo でも Webservd に適用されている
– Android への導入は画面出力やユーザー入力を
考えると難しい ?
参考リソース
●
AOSP
– http://source.android.com/
●
Chromium OS Design Documents
– https://www.chromium.org/chromium-os/c
hromiumos-design-docs
●
Qiita の brillo タグ
– http://qiita.com/tags/brillo
– @hidenorly さんが色々試しています
参考リソース

Mais conteúdo relacionado

Mais procurados

minneにおけるテスト〜リリース〜リリース後にやっている事の紹介
minneにおけるテスト〜リリース〜リリース後にやっている事の紹介minneにおけるテスト〜リリース〜リリース後にやっている事の紹介
minneにおけるテスト〜リリース〜リリース後にやっている事の紹介Masataka Kono
 
5 年続く 「はてなブックマーク」 アプリを継続開発する技術
5 年続く 「はてなブックマーク」 アプリを継続開発する技術5 年続く 「はてなブックマーク」 アプリを継続開発する技術
5 年続く 「はてなブックマーク」 アプリを継続開発する技術Yu Nobuoka
 
Yapf2013
Yapf2013Yapf2013
Yapf2013l_b__
 
Androidの新ビルドシステム
Androidの新ビルドシステムAndroidの新ビルドシステム
Androidの新ビルドシステムl_b__
 
20150425 DroidKaigi つかえるGradleプロジェクトの作り方
20150425 DroidKaigi つかえるGradleプロジェクトの作り方20150425 DroidKaigi つかえるGradleプロジェクトの作り方
20150425 DroidKaigi つかえるGradleプロジェクトの作り方Makoto Yamazaki
 
Eclipseを使ったandroid nativeデバッグ
Eclipseを使ったandroid nativeデバッグEclipseを使ったandroid nativeデバッグ
Eclipseを使ったandroid nativeデバッグl_b__
 
僕がAndroid開発する時にちょっと便利だと思うtips
僕がAndroid開発する時にちょっと便利だと思うtips僕がAndroid開発する時にちょっと便利だと思うtips
僕がAndroid開発する時にちょっと便利だと思うtipsMasataka Kono
 
Androidのリカバリシステム (Androidのシステムアップデート)
Androidのリカバリシステム (Androidのシステムアップデート)Androidのリカバリシステム (Androidのシステムアップデート)
Androidのリカバリシステム (Androidのシステムアップデート)l_b__
 
ABS2015 のセッション紹介
ABS2015 のセッション紹介ABS2015 のセッション紹介
ABS2015 のセッション紹介l_b__
 
Android アプリを Jenkins でビルドして GitHub に “リリース” を作る
Android アプリを Jenkins でビルドして GitHub に “リリース” を作るAndroid アプリを Jenkins でビルドして GitHub に “リリース” を作る
Android アプリを Jenkins でビルドして GitHub に “リリース” を作るYu Nobuoka
 
go.mobile で Android 開発
go.mobile で Android 開発go.mobile で Android 開発
go.mobile で Android 開発Hiroshi Kurokawa
 
JellyBeanのソースをとりあえず眺めてみた(手抜き)
JellyBeanのソースをとりあえず眺めてみた(手抜き)JellyBeanのソースをとりあえず眺めてみた(手抜き)
JellyBeanのソースをとりあえず眺めてみた(手抜き)l_b__
 
用途に合わせたアニメーションの実装方法
用途に合わせたアニメーションの実装方法用途に合わせたアニメーションの実装方法
用途に合わせたアニメーションの実装方法Takao Sumitomo
 
絶対落ちないアプリの作り方
絶対落ちないアプリの作り方絶対落ちないアプリの作り方
絶対落ちないアプリの作り方Fumihiko Shiroyama
 
【ヒカ☆ラボ】 dely株式会社 梅森 翔氏 登壇資料 20171121
【ヒカ☆ラボ】 dely株式会社 梅森 翔氏 登壇資料 20171121【ヒカ☆ラボ】 dely株式会社 梅森 翔氏 登壇資料 20171121
【ヒカ☆ラボ】 dely株式会社 梅森 翔氏 登壇資料 20171121leverages_event
 
NPAPIを使ったandroid標準ブラウザの拡張方法
NPAPIを使ったandroid標準ブラウザの拡張方法NPAPIを使ったandroid標準ブラウザの拡張方法
NPAPIを使ったandroid標準ブラウザの拡張方法Naruto TAKAHASHI
 
2015年のAndroidアプリ開発入門 - ABCD 2015 Kanazawa
2015年のAndroidアプリ開発入門 - ABCD 2015 Kanazawa2015年のAndroidアプリ開発入門 - ABCD 2015 Kanazawa
2015年のAndroidアプリ開発入門 - ABCD 2015 KanazawaKeiji Ariyama
 
Androidアプリのストレージ戦略
Androidアプリのストレージ戦略Androidアプリのストレージ戦略
Androidアプリのストレージ戦略Masahiro Hidaka
 
View Customize Pluginで出来ること
View Customize Pluginで出来ることView Customize Pluginで出来ること
View Customize Pluginで出来ることonozaty
 
cocos2d-xにおけるBox2Dの利用方法および便利なツール
cocos2d-xにおけるBox2Dの利用方法および便利なツールcocos2d-xにおけるBox2Dの利用方法および便利なツール
cocos2d-xにおけるBox2Dの利用方法および便利なツールTomoaki Shimizu
 

Mais procurados (20)

minneにおけるテスト〜リリース〜リリース後にやっている事の紹介
minneにおけるテスト〜リリース〜リリース後にやっている事の紹介minneにおけるテスト〜リリース〜リリース後にやっている事の紹介
minneにおけるテスト〜リリース〜リリース後にやっている事の紹介
 
5 年続く 「はてなブックマーク」 アプリを継続開発する技術
5 年続く 「はてなブックマーク」 アプリを継続開発する技術5 年続く 「はてなブックマーク」 アプリを継続開発する技術
5 年続く 「はてなブックマーク」 アプリを継続開発する技術
 
Yapf2013
Yapf2013Yapf2013
Yapf2013
 
Androidの新ビルドシステム
Androidの新ビルドシステムAndroidの新ビルドシステム
Androidの新ビルドシステム
 
20150425 DroidKaigi つかえるGradleプロジェクトの作り方
20150425 DroidKaigi つかえるGradleプロジェクトの作り方20150425 DroidKaigi つかえるGradleプロジェクトの作り方
20150425 DroidKaigi つかえるGradleプロジェクトの作り方
 
Eclipseを使ったandroid nativeデバッグ
Eclipseを使ったandroid nativeデバッグEclipseを使ったandroid nativeデバッグ
Eclipseを使ったandroid nativeデバッグ
 
僕がAndroid開発する時にちょっと便利だと思うtips
僕がAndroid開発する時にちょっと便利だと思うtips僕がAndroid開発する時にちょっと便利だと思うtips
僕がAndroid開発する時にちょっと便利だと思うtips
 
Androidのリカバリシステム (Androidのシステムアップデート)
Androidのリカバリシステム (Androidのシステムアップデート)Androidのリカバリシステム (Androidのシステムアップデート)
Androidのリカバリシステム (Androidのシステムアップデート)
 
ABS2015 のセッション紹介
ABS2015 のセッション紹介ABS2015 のセッション紹介
ABS2015 のセッション紹介
 
Android アプリを Jenkins でビルドして GitHub に “リリース” を作る
Android アプリを Jenkins でビルドして GitHub に “リリース” を作るAndroid アプリを Jenkins でビルドして GitHub に “リリース” を作る
Android アプリを Jenkins でビルドして GitHub に “リリース” を作る
 
go.mobile で Android 開発
go.mobile で Android 開発go.mobile で Android 開発
go.mobile で Android 開発
 
JellyBeanのソースをとりあえず眺めてみた(手抜き)
JellyBeanのソースをとりあえず眺めてみた(手抜き)JellyBeanのソースをとりあえず眺めてみた(手抜き)
JellyBeanのソースをとりあえず眺めてみた(手抜き)
 
用途に合わせたアニメーションの実装方法
用途に合わせたアニメーションの実装方法用途に合わせたアニメーションの実装方法
用途に合わせたアニメーションの実装方法
 
絶対落ちないアプリの作り方
絶対落ちないアプリの作り方絶対落ちないアプリの作り方
絶対落ちないアプリの作り方
 
【ヒカ☆ラボ】 dely株式会社 梅森 翔氏 登壇資料 20171121
【ヒカ☆ラボ】 dely株式会社 梅森 翔氏 登壇資料 20171121【ヒカ☆ラボ】 dely株式会社 梅森 翔氏 登壇資料 20171121
【ヒカ☆ラボ】 dely株式会社 梅森 翔氏 登壇資料 20171121
 
NPAPIを使ったandroid標準ブラウザの拡張方法
NPAPIを使ったandroid標準ブラウザの拡張方法NPAPIを使ったandroid標準ブラウザの拡張方法
NPAPIを使ったandroid標準ブラウザの拡張方法
 
2015年のAndroidアプリ開発入門 - ABCD 2015 Kanazawa
2015年のAndroidアプリ開発入門 - ABCD 2015 Kanazawa2015年のAndroidアプリ開発入門 - ABCD 2015 Kanazawa
2015年のAndroidアプリ開発入門 - ABCD 2015 Kanazawa
 
Androidアプリのストレージ戦略
Androidアプリのストレージ戦略Androidアプリのストレージ戦略
Androidアプリのストレージ戦略
 
View Customize Pluginで出来ること
View Customize Pluginで出来ることView Customize Pluginで出来ること
View Customize Pluginで出来ること
 
cocos2d-xにおけるBox2Dの利用方法および便利なツール
cocos2d-xにおけるBox2Dの利用方法および便利なツールcocos2d-xにおけるBox2Dの利用方法および便利なツール
cocos2d-xにおけるBox2Dの利用方法および便利なツール
 

Semelhante a Android,Brillo,ChromeOS

OSC Hiroshima 2013
OSC Hiroshima 2013OSC Hiroshima 2013
OSC Hiroshima 2013Yuya Adachi
 
[Jagys]android41+開発ツール紹介
[Jagys]android41+開発ツール紹介[Jagys]android41+開発ツール紹介
[Jagys]android41+開発ツール紹介Kenichi Kambara
 
ET2016 Smart Japan Alliance Llilum 161118
ET2016 Smart Japan Alliance Llilum 161118ET2016 Smart Japan Alliance Llilum 161118
ET2016 Smart Japan Alliance Llilum 161118Atomu Hidaka
 
Android Abc2009 Fall Shima091130 1
Android Abc2009 Fall Shima091130 1Android Abc2009 Fall Shima091130 1
Android Abc2009 Fall Shima091130 1shimay
 
Google io2011報告
Google io2011報告Google io2011報告
Google io2011報告cat kaotaro
 
スマートフォンの方式検討に関する基礎知識
スマートフォンの方式検討に関する基礎知識スマートフォンの方式検討に関する基礎知識
スマートフォンの方式検討に関する基礎知識Yugo Yamamoto
 
DEV-008_Developing on the Edge. ~Web プラットフォームと Cordova~
DEV-008_Developing on the Edge. ~Web プラットフォームと Cordova~DEV-008_Developing on the Edge. ~Web プラットフォームと Cordova~
DEV-008_Developing on the Edge. ~Web プラットフォームと Cordova~decode2016
 
みゆっき☆Think#3 「androidに触ってみるよ!」
みゆっき☆Think#3 「androidに触ってみるよ!」みゆっき☆Think#3 「androidに触ってみるよ!」
みゆっき☆Think#3 「androidに触ってみるよ!」techtalkdwango
 
わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門
わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門
わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門Yasuhiko Yamamoto
 
bc10 (Android 2.2対応) について @Gadget1 R2
bc10 (Android 2.2対応) について @Gadget1 R2 bc10 (Android 2.2対応) について @Gadget1 R2
bc10 (Android 2.2対応) について @Gadget1 R2 BeatCraft
 
【de:code 2020】 そのロジック、IoT Edge で動きます - Azure IoT Edge 開発 Deep Dive
【de:code 2020】 そのロジック、IoT Edge で動きます - Azure IoT Edge 開発 Deep Dive【de:code 2020】 そのロジック、IoT Edge で動きます - Azure IoT Edge 開発 Deep Dive
【de:code 2020】 そのロジック、IoT Edge で動きます - Azure IoT Edge 開発 Deep Dive日本マイクロソフト株式会社
 
iPhoneとAndroidのアプリ開発最新潮流
iPhoneとAndroidのアプリ開発最新潮流iPhoneとAndroidのアプリ開発最新潮流
iPhoneとAndroidのアプリ開発最新潮流Rakuten Group, Inc.
 
Android multiscreen
Android multiscreenAndroid multiscreen
Android multiscreenKazuaki Ueda
 
Windows 8 Developers カンファレンス
Windows 8 Developers カンファレンスWindows 8 Developers カンファレンス
Windows 8 Developers カンファレンスKaoru NAKAMURA
 
Androidとは。ちょっと変った視点から
Androidとは。ちょっと変った視点からAndroidとは。ちょっと変った視点から
Androidとは。ちょっと変った視点からdemuyan
 
Let’s play windows 10 io t on raspberry pi !
Let’s play windows 10 io t on raspberry pi !Let’s play windows 10 io t on raspberry pi !
Let’s play windows 10 io t on raspberry pi !Masuda Tomoaki
 
ソニーのディープラーニングツールで簡単エッジコンピューティング
ソニーのディープラーニングツールで簡単エッジコンピューティングソニーのディープラーニングツールで簡単エッジコンピューティング
ソニーのディープラーニングツールで簡単エッジコンピューティングRyohei Kamiya
 

Semelhante a Android,Brillo,ChromeOS (20)

OSC Hiroshima 2013
OSC Hiroshima 2013OSC Hiroshima 2013
OSC Hiroshima 2013
 
[Jagys]android41+開発ツール紹介
[Jagys]android41+開発ツール紹介[Jagys]android41+開発ツール紹介
[Jagys]android41+開発ツール紹介
 
ET2016 Smart Japan Alliance Llilum 161118
ET2016 Smart Japan Alliance Llilum 161118ET2016 Smart Japan Alliance Llilum 161118
ET2016 Smart Japan Alliance Llilum 161118
 
Android Abc2009 Fall Shima091130 1
Android Abc2009 Fall Shima091130 1Android Abc2009 Fall Shima091130 1
Android Abc2009 Fall Shima091130 1
 
Google io2011報告
Google io2011報告Google io2011報告
Google io2011報告
 
スマートフォンの方式検討に関する基礎知識
スマートフォンの方式検討に関する基礎知識スマートフォンの方式検討に関する基礎知識
スマートフォンの方式検討に関する基礎知識
 
Trat_sprint3
Trat_sprint3Trat_sprint3
Trat_sprint3
 
DEV-008_Developing on the Edge. ~Web プラットフォームと Cordova~
DEV-008_Developing on the Edge. ~Web プラットフォームと Cordova~DEV-008_Developing on the Edge. ~Web プラットフォームと Cordova~
DEV-008_Developing on the Edge. ~Web プラットフォームと Cordova~
 
みゆっき☆Think#3 「androidに触ってみるよ!」
みゆっき☆Think#3 「androidに触ってみるよ!」みゆっき☆Think#3 「androidに触ってみるよ!」
みゆっき☆Think#3 「androidに触ってみるよ!」
 
わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門
わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門
わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門
 
bc10 (Android 2.2対応) について @Gadget1 R2
bc10 (Android 2.2対応) について @Gadget1 R2 bc10 (Android 2.2対応) について @Gadget1 R2
bc10 (Android 2.2対応) について @Gadget1 R2
 
【de:code 2020】 そのロジック、IoT Edge で動きます - Azure IoT Edge 開発 Deep Dive
【de:code 2020】 そのロジック、IoT Edge で動きます - Azure IoT Edge 開発 Deep Dive【de:code 2020】 そのロジック、IoT Edge で動きます - Azure IoT Edge 開発 Deep Dive
【de:code 2020】 そのロジック、IoT Edge で動きます - Azure IoT Edge 開発 Deep Dive
 
Android0422
Android0422Android0422
Android0422
 
iPhoneとAndroidのアプリ開発最新潮流
iPhoneとAndroidのアプリ開発最新潮流iPhoneとAndroidのアプリ開発最新潮流
iPhoneとAndroidのアプリ開発最新潮流
 
Android multiscreen
Android multiscreenAndroid multiscreen
Android multiscreen
 
デバイス WebAPI設計の進め方
デバイス WebAPI設計の進め方デバイス WebAPI設計の進め方
デバイス WebAPI設計の進め方
 
Windows 8 Developers カンファレンス
Windows 8 Developers カンファレンスWindows 8 Developers カンファレンス
Windows 8 Developers カンファレンス
 
Androidとは。ちょっと変った視点から
Androidとは。ちょっと変った視点からAndroidとは。ちょっと変った視点から
Androidとは。ちょっと変った視点から
 
Let’s play windows 10 io t on raspberry pi !
Let’s play windows 10 io t on raspberry pi !Let’s play windows 10 io t on raspberry pi !
Let’s play windows 10 io t on raspberry pi !
 
ソニーのディープラーニングツールで簡単エッジコンピューティング
ソニーのディープラーニングツールで簡単エッジコンピューティングソニーのディープラーニングツールで簡単エッジコンピューティング
ソニーのディープラーニングツールで簡単エッジコンピューティング
 

Mais de l_b__

Binderのはじめの一歩とAndroid
Binderのはじめの一歩とAndroidBinderのはじめの一歩とAndroid
Binderのはじめの一歩とAndroidl_b__
 
Binderのはじめの一歩
Binderのはじめの一歩Binderのはじめの一歩
Binderのはじめの一歩l_b__
 
Open binder
Open binderOpen binder
Open binderl_b__
 
PF開発に使えるAOSPのツール達
PF開発に使えるAOSPのツール達PF開発に使えるAOSPのツール達
PF開発に使えるAOSPのツール達l_b__
 
Android デバッグ小ネタ
Android デバッグ小ネタAndroid デバッグ小ネタ
Android デバッグ小ネタl_b__
 
Intentの概要
Intentの概要Intentの概要
Intentの概要l_b__
 
Stagefright入門
Stagefright入門Stagefright入門
Stagefright入門l_b__
 
Stagefright入門
Stagefright入門Stagefright入門
Stagefright入門l_b__
 

Mais de l_b__ (8)

Binderのはじめの一歩とAndroid
Binderのはじめの一歩とAndroidBinderのはじめの一歩とAndroid
Binderのはじめの一歩とAndroid
 
Binderのはじめの一歩
Binderのはじめの一歩Binderのはじめの一歩
Binderのはじめの一歩
 
Open binder
Open binderOpen binder
Open binder
 
PF開発に使えるAOSPのツール達
PF開発に使えるAOSPのツール達PF開発に使えるAOSPのツール達
PF開発に使えるAOSPのツール達
 
Android デバッグ小ネタ
Android デバッグ小ネタAndroid デバッグ小ネタ
Android デバッグ小ネタ
 
Intentの概要
Intentの概要Intentの概要
Intentの概要
 
Stagefright入門
Stagefright入門Stagefright入門
Stagefright入門
 
Stagefright入門
Stagefright入門Stagefright入門
Stagefright入門
 

Último

PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdffurutsuka
 

Último (7)

PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
 

Android,Brillo,ChromeOS

  • 2. 今日の概要 昨年の Google I/O で発表され、 11 月に予告無しに突如 ソースコードが公開された Google のスマートホーム向 け OS Brillo 。 公開されたソースを見ると Android と Chrome OS が持つ 機能のハイブリッドと言えるものになっています。 Google の Android チームと Chrome チームが密になる 中から出てきた Brillo 。 どのような Android や Chrome OS に比べて、どのような OS なのかを眺めてみたいと思います。
  • 3. 注意事項 ● このセッションの内容は Android OpenSource Project(AOSP) などの公開された情報を元に しています。ソースコードに基づく箇所以外は憶 測が交じっていますのでご注意ください。 ● Chrome OS と書いていますが、実際に参考にし ているのはオープンソース版の Chromium OS になります。
  • 4. 自己紹介 ● Twitter ID:@l_b__ ● 横浜 Android and モバイル OS プラットフォー ム部 ( 通称 横浜 PF 部 #yapf) という勉強会を やっています。 – http://www.yokohama.android-pf.org/ ● フレームワーク周りが好物です ● BeOS 好きだったのと Java-er なので Be 関係者 が多い ( 多かった )Android に惹かれました ● 仕事は某 SIer で Android フレームワーク修正か らアプリ作成までやっていましたが最近は Android 全く触っていません
  • 6. Android と ChromeOS の略史 Android Chrome OS 2003 年 Android 社設立 2005 年 Android 社の Google による買収 2008 年 Android1.0 リリース G1 発売 Chrome ブラウザリリース 2009 年 ChromeOS 発表 ChromiumOS ソース公開 2010 年 Cr-48 発表
  • 7. Android と ChromeOS の略史 2013 年 3 月 アンディ・ルービン氏の退任 とスンダル・ピチャイ氏の Android/Chrome 担当兼任 の発表 http://www.itmedia.co.jp/news/articles /1303/14/news027.html
  • 8. Android/ChromeOS/Brillo の略史 Android Brillo 2014 年 6 月 Android L Preview リリース 2014 年 11 月 Lollipop5.0 リリース 2015 年 6 月 Brillo 発表 2015 年 10 月 Marshmallow6.0 リリース 2015 年 11 月 Brillo m7 ソース公開
  • 9. Android と ChromeOS の仕組み のおさらい
  • 10. Android の仕組み Fastboot ブートローダー Linux カーネル Android Init Native デーモン Zygote VM System Service Phone Home Setting VM VM apk App App VM apk VM apk VM apk VM apkdex
  • 11. Android の仕組み ● アプリケーションのセキュアな実行を目的とした 分散コンポーネント OS – プロセスによる権限分離 – プロセスごとの DalvikVM/ART による実行環境 – アプリケーションプロセスを高速起動するための Zygote – プロセス間通信を司る Binder – ユーザーランド起動は独自形式 init – 独自なディレクトリ構成 (/system 、 /data 等 )
  • 12. ChromeOS の仕組み U-Boot ブートローダー Linux カーネル Upstart Native デーモンX + Graphic Libraries Aura WindowManager Chrome/Chromium Browser Blink V8 PNaCl Web Site Chrome App Extention
  • 13. ChromeOS の仕組み ● Chrome/Chromium ブラウザを実行することに 特化したシステム – GentooLinux がベース – ユーザーランド起動は upstart – プロセス間通信は D-Bus – FHS に従ったディレクトリ構成
  • 15. Brillo とは ● 公式サイト ” Brillo brings the simplicity and speed of software development to hardware for IoT with an embedded OS, core services, developer kit, and developer console.” ● Weave プロトコルによるデバイス間通信をサ ポートする、 32MB 〜 64MB 程度のメモリ搭載 デバイスをターゲットにした組込み機器向け OS と開発環境
  • 16. Brillo の仕組み Fastboot ブートローダー Linux カーネル Android Init Native デーモン avahi-daemon weaved webserved 独自デーモン
  • 17. Brillo の仕組み ● Android ユーザーランド (Android Init とディレク トリ構成 ) でデバイスに独自サービスを組込み やすくするための軽量 OS ● 開発ボードの BSP(Board Support Package) から製品向けビルド環境作成を支援する BDK が用意されている ● 現状はウェアラブルではなく、それなりに性能が 高い GUI を持たないスマートホーム機器向け
  • 18. Brillo の仕組み ● アプリケーションを追加する実行環境 (Dalvik/ART 、 Zygote 、 PackageManager 、 ActivityManager 等 ) は無く、独自サービスは Native デーモンとして組み込む
  • 19. Brillo で実行されるデーモン デーモン 概要 ueventd Android の init に含まれるデバイス管理デーモン logd Android で Lollipop 以降に採用されたログデーモン dbus-daemon ChromeOS で使用されているプロセス間通信管理デーモ ン servicemanager Android で使用されている Binder プロセス間通信管理 デーモン adbd Android Debug Bridge Brillo も adb 接続できます avahi-daemon Zeroconf の Linux 向け実装 (Bonjour を元にした名前解決、サービス発見規格 ) bluetoothtbd Android で Marshmallow 以降に採用された Bluetooth デーモン
  • 20. Brillo で実行されるデーモン デーモン 概要 wpa_supplicant Android 、 ChromeOS で使用されている WiFi 認証デーモ ン keystore Android で使用されているセキュアな Key-Value ストレージ mediaserver Android で使用されているマルチメディアフレームワーク起 動デーモン Brillo では音声再生に使用 nativepowerman Brillo 独自の電源管理デーモン sensorservice Android で使用されているセンサー管理サービス metrics_daemon ChromeOS 由来のユーザー使用状況収集デーモン perfprofd Android Marshmallow 以降のソースに含まれるシステムプ ロファイリングデーモン
  • 21. Brillo で実行されるデーモン デーモン 概要 shill ChromeOS で使用されているネットワーク接続管理デーモ ン tlsdated ChromeOS で使用されているセキュアな時刻同期デーモン update_engine ChromeOS で使用されているソフトウェアアップデートデー モン weaved IoT 向けプロトコル、 Weave の実装 webservd HTTP サーバ kauditd ChromeOS dnsmasq Android で使用されている簡易 DNS サーバ
  • 22. Brillo で実行されるデーモン デーモン 概要 dhcpcd-6.8.2 DHCP クライアントデーモン firewalld ChromeOS で使用されているファイアーウォール
  • 24. Android に採用された ChromeOS の技術 ● Verified Boot と dm-verity – Android4.4 から導入、本格的な導入は Block- Oriented OTA が導入された 5.0 から。 – 読み取り専用のパーティション (/system や /vendor) の 4k 毎のブロックのハッシュ値を 元にハッシュツリーを生成 – ブロック読み込み時にハッシュの不一致 (= 改ざ ん ) があった場合は I/O エラーにする – 詳細は https://source.android.com/security/verifi edboot/index.html 参照
  • 25. Android 未採用な ChromeOS の技術 ● MiniJail – User Namespace 、 CGroup 、 chroot を元にし たコンテナ仮想化 ● つまり LXC や Docker と原理は同じ – Brillo でも Webservd に適用されている – Android への導入は画面出力やユーザー入力を 考えると難しい ?
  • 26. 参考リソース ● AOSP – http://source.android.com/ ● Chromium OS Design Documents – https://www.chromium.org/chromium-os/c hromiumos-design-docs ● Qiita の brillo タグ – http://qiita.com/tags/brillo – @hidenorly さんが色々試しています 参考リソース