SlideShare ist ein Scribd-Unternehmen logo
1 von 52
Fuchsia 概略その 1
横浜 Android and モバイル OS
プラットフォーム部
第 40 回勉強会
2018/4/21
@l_b__
今日の内容
● 2016 年 8 月に突如公開された Google の OS
Fuchsia について概略を簡単に。
● 内容は
https://fuchsia.googlesource.com/docs/+/master/README.md
に書かれていることがメインです。
● 今回はカーネルとその上の OS 基本機能まで
で、アプリケーション実行環境はほとんど
触れていません。
自己紹介
● Twitter ID:@l_b__
●
PF 部の司会進行役 兼 懇親会手配役 兼 配信
係 兼 雑用係
●
フレームワーク周りが好物です
●
BeOS 好きだったのと Java-er なので Be 関
係者が多い ( 多かった )Android に惹かれま
したので Fuchsia にも。
●
仕事は某 SIer で Android フレームワーク修正
からアプリ作成までやっていましたがここ
Fuchsia とは
Fuchsia とは
●
https://fuchsia.googlesource.com/ に前触れ
なしに突如ソース公開された OS
Fuchsia とは
●
一番の特徴として Linux カーネルを使用して
いない OS 。
●
公開当初は Magenta 、現在は Zircon と呼ば
れるマイクロカーネルを使用している。
●
ユーザーランドも新規構築された Linux とも
Android とも全く異なるシステム。
Fuchsia とは
●
GUI やアプリケーションフレームワークを持
つので、様々な用途に使用できそうだが、
いつ何に使用されるかは明確にされていな
い。
– 現状の対応アーキテクチャは x64 と ARM
●
噂レベルでは Android や ChromeOS の置き
換えという話もあるが…
Fuchsia とは
●
Web ブラウザ上で動く非オフィシャルな GUI
デモが公開されている。
– https://mgoulao.github.io/fuchsia-web-demo/
ソースの取得とビルド
● https://fuchsia.googlesource.com/docs/+/master/d
● https://fuchsia.googlesource.com/docs/+/master/g
●
repo ライクな jiri を使ってソースを取得
●
fx set x64   or   arm64  でターゲット設定
●
fx full-build  でビルド
●
ビルドツールは Ninja
実行 (QEMU)
●
fx run でソースツリーに含まれる QEMU 上
で実行
– fx run -g でグラフィック有効にして実行とあ
るが ...
ディレクトリ構成
$ ls /
blob
boot   カーネル、デバイスドライバ、システムコマンド
data   ローカル永続ストレージ  
dev    デバイスツリー
install
pkgfs  
svc コンポーネントに提供されるサービス
system  システム実行ファイル、ライブラリ
tmp    一時記憶域
volume
※ 正確な意味は Namespace の項を参照
起動時プロセス
Fuchsia の構成
Fuchsia の Layer
●
Fuchsia は以下の 4Layer で構成される
Layer 名 概要
Zircon OS 基盤。カーネルやデバイスマネージャ、デバイスドライ
バ、 libc やその他システムライブラリ、 FIDL 、 C/C++ バックエ
ンドが含まれる。
Garnet システムサービス。ネットワーク、メディア、グラフィック、
パッケージ管理、アップデートシステムが含まれる。
Peridot マルチデバイスユーザーエクスペリエンスの作成に必要なサービ
ス。デバイス、ユーザー、 Story Runner 、 Ledger 、 Resolver が
含まれる。
Topaz Module( カレンダ、 E メール、ターミナル等 ) 、 Agent(E メール /
チャットコンテンツプロバイダ等 ) 、 Shell (ベースシェル、ユー
ザーシェル)、 Runner ( Web/Dart/Flutter Runner )の 4 つの主
要なソフトウェアカテゴリが含まれる。
Zircon
Zircon とは
●
マイクロカーネル ( ソースツリーの
zircon/kernel 以下 ) とユーザー空間のシス
テムサービス、ドライバ、ライブラリ
(zircon/system 以下 ) で構成される OS 基盤
Zircon カーネル
●
元々は Magenta という名前でリリースされ
た。
●
元になったのは組み込み機器向けの
LittleKernel(LK)
– https://github.com/littlekernel/lk
●
Qualcomm が Android のセカンドブートロー
ダーとして採用。
– https://android.googlesource.com/kernel/lk/
LK
●
LK を作ったのは Fuchsia の初期開発者の一
人、 Travis Geiselbrecht 氏。
●
NewOS の作者でもある。 NewOS は BeOS
の後継を目指す Haiku OS のカーネルとし
て採用されている。
●
同じく Fuchsia の初期開発者である Brian
Swetland 氏と共に、そもそも BeOS のカー
ネル開発者の一人。
Zircon カーネルと LK の違い
●
LK は小さな組み込み機器向け、 Zircon は携
帯電話や PC などが対象。
●
Zircon は LK に C++ のラッパーを被せ、 LK
には無いプロセスの概念等を追加してい
る。
●
LK では全てのコードが信頼される
が、 Zircon は Capability-based security が
採用されている。
Zircon カーネルのコンセプト
●
Zircon カーネルは様々なカーネルオブジェク
トを管理している。
– Process オブジェクト、 Thread オブジェク
ト、仮想メモリオブジェクト、 Channel オ
ブジェクト、 Socket オブジェクト etc
●
ユーザー空間のコードは、システムコールを
介してカーネルオブジェクトのハンドルを
取得し対話することでカーネル機能を利用
する。
システムコール
● https://fuchsia.googlesource.com/zircon/+/master
●
システムコールは仮想ダイナミック共有オブ
ジェクト (vDSO) である libzircon.so によっ
て C ELF ABI 関数として提供される。
カーネルオブジェクト
カテゴリ オブジェクト 概要
IPC Channel 双方向のプロセス間通信
Socket 双方向ストリーム型通信
FIFO FIFO キュー
カーネルオブジェクト
カテゴリ オブジェクト 概要
Tasks Process プロセス
一つ以上のスレッドによって実行される命令と
リソースの集合
Thread スレッド
時分割共有 CPU 実行コンテキストを表す構造
体
Job プロセスのグループを制御
Task “Runnable”(suspend/resume/kill 可能 ) なカーネ
ルオブジェクト。
Process 、 Thread 、 Job は全て Task 。
カーネルオブジェクト
カテゴリ オブジェクト 概要
Signaling Event ユーザーが通知出来るオブジェクト
Event Pair 並行プログラミングで使用される、相互に通知
可能な Event のペア
Futex Fast Userspace muTEX
カーネルオブジェクト
カテゴリ オブジェクト 概要
Memory
and
address
space
Virtual Memory
Object
仮想メモリコンテナ
Virtual Memory
Address Region
仮想メモリアドレス空間の連続領域
Bus Transaction
Initiator
DMA 機能
カーネルオブジェクト
カテゴリ オブジェクト 概要
Waiting Port シグナリングとメールボックスを表すプリミ
ティブ
Kernel
objects for
drivers
Interrupts UserMode I/O の割り込み
Resource 階層的なリソース権限管理
Log カーネルデバッグログ
Zircon デバイスモデル
●
Zircon ではデバイスドライバはユーザー空間
の DeviceHost(DevHost) プロセスにロード
される共有ライブラリ (.so) として実装され
る。
●
DeviceManager(devmgr) プロセスがドライバ
の発見、デバイスとドライバの追
跡、 DeviceHost プロセス生成・管
理、 DeviceFilesystem の管理を行う。
Zircon デバイスモデル
●
実行されているデバイスツリーは dm dump
コマンドで表示可能
– DeviceFilesystem の /dev/sys 配下に bind され
る。
●
posix スタイルの open/close/read/write と
ioctl がサポートされる。
– 将来的には Fuchsia's IDL(FIDL) がサポートさ
れる予定
libc
●
Zircon は Posix システムコールインター
フェースをサポートしないため、 Posix モ
デルの C 関数を必ずしもサポートしない。
– 例えば signal/fork/exec はサポートしない
●
Fuchsia ではプログラムは自由に自前の libc
を使用できる。ただし Fuchsia は各プログ
ラムが動的リンクできる libc.so を提供す
る。
libc
●
Zircon は Posix システムコールインター
フェースをサポートしないため、 Posix モ
デルの C 関数を必ずしもサポートしない。
– 例えば signal/fork/exec はサポートしない
●
Fuchsia ではプログラムは自由に自前の libc
を使用できる。ただし Fuchsia は各プログ
ラムが動的リンクできる libc.so を提供す
る。
libc
●
Fuchsia の libc は C11 標準を実装している。
●
Fuchsia では Filesystem はユーザー空間に実
装されるため、 libc に File I/O 関数は用意
はされるが呼び出しは必ず失敗す
る。 libfdio.so をリンクすることで Channel
IPC 経由で File や BSD Socket を使用する
事が可能になる。
libc
●
pthread は一部が実装される。コア部分と
pthread_mutex_t のような同期プリミティ
ブがサポートされる。
●
Signal はサポートされない。そのため libc は
シグナルセーフの概念を持たない。
●
fork と exec はサポートされない。プロセス
生成には代わりに launchpad が使用され
る。
libfdio
●
fdio はファイル、ソケット、サービス、パイ
プなどのリソースに統一されたインター
フェースを提供する。
●
read 、 write 、 open 、 close 、 seek などの
関数を定義し、 Channel を使って該当する
Filesystem Server や NetworkStack へのア
クセスを提供する。
liblaunchpad
●
launchpad は新しいプロセスを生成 / 開始す
る機能を提供するライブラリ。
●
詳細ドキュメントはヘッダファイルに記述さ
れている。
ユーザー空間の起動シーケンス
●
Zircon から Fuchsia が起動される際には以下
の通りとなる。
– ※ ドキュメントの記述は古い可能性あり
● 1. appmgr
– appmgr は環境ツリーをホストし、その環境で
プロセスを生成する。
– appmgr は空の root 環境を生成
し、 /system/data/appmgr/initial.config に記
述された最初のアプリケーションを作成す
る。
● ※QEMU 環境上にはこのファイルが存在しない
ユーザー空間の起動シーケンス
● 2. sysmgr
– ブート環境を作成し、ブート環境で複数の初
期アプリケーションを作成する。
– sysmgr が最初にサービスへの要求を受け取る
と、 sysmgr は遅れてそのサービスを実装す
るアプリケーションを作成し、そのアプリ
ケーションに要求をルーティングする。どの
アプリケーションがどのサービスを実装して
いるか
は /system/data/bootstrap/services.config に
記述される。
ユーザー空間の起動シーケンス
● 2. sysmgr
– 起動時に実行するアプリケーションのリスト
は、 /system/data/bootstrap/apps.config ファ
イルに記述される。
● ※QEMU 環境には /system/data/bootstrap 以下
が存在しない
ユーザー空間の起動シーケンス
● 3. device_runner
– ユーザーログインとユーザー管理のための対
話型フローを設定する。
– システムのルートビューにアクセス
し、 Device Shell を起動し、ルートビューに
Device Shell を描画する。
– User Provider FIDL API を介して Device Shell
に公開されるユーザーデータベースも管理す
る。
FIDL
● Fuchsia Interface Definition Language (FIDL)
はプログラムで使用されるプロセス間通信
( IPC )プロトコルを記述するために使用
される。
– ※AIDL のようなもの
●
C/C++/Go/Rust 向けのバインディングが提供
されている。
Namespace
●
ファイルアクセスとサービス発見のための機
能。
●
Namespace はコンポーネントに提供される
ファイル、ディレクトリ、ソケット、サー
ビス、デバイス、およびその他の名前付き
オブジェクトの複合階層を指す。
Namespace
●
“ls / “ と打つと、シェルの Namespace からア
クセス可能なオブジェクトのリストが表示
される。
– Fuchsia には " ルートファイルシステム " は無
い。
●
グローバル "root" 名前空間は無い。各コン
ポーネントが独自の root を持っているの
で、「 chroot-ed 環境で実行」という概念
が無い。
Namespace
●
ファイルへのアクセスを制御するために使用
されるメカニズムを使用して、サービスお
よびその他の名前付きオブジェクトへのア
クセスをコンポーネントごとに制御するこ
とが可能。
●
Namespace 内のアイテムは Object と呼ばれ
る。
– Files,Directories,Sockets,Services,Devices,Ac
cessing Objects
Namespace
●
オブジェクト名はオブジェクトをコンテナ内
(ディレクトリなど)に配置するための
ローカルで一意なラベル
– オブジェクト名はオブジェクト自体のプロパ
ティではなくサブオブジェクトのコンテナの
テーブルのプロパティ
Namespace
●
Namespace への参加者
– ファイルシステム
● ファイルを Namespace で利用できるようにす
る。
● 他の Namespace に属するファイルのようなオ
ブジェクトをパブリッシュする単なるコン
ポーネント
– サービス
● 名前空間を使用して検出できる FIDL インタ
フェースの実装を提供するオブジェクト
Namespace
– コンポーネント
● ある環境内でインスタンス化さ
れ、 Namespace が与えられた実行可能プロ
グラムオブジェクト
– 環境
● コンポーネントのコンテナ。コンポーネントが
アクセスできるオブジェクトと、名前による
サービスの要求が特定の実装にどのようにバ
インドされるかを決定する。
BlockDevice
●
Fuchsia の BlockDevice は、他のデバイスド
ライバと同様に IPC 経由でアクセス可能な
ユーザスペースサービスとして実装されて
いる。
●
BlockDevice への読み書き要求は DevHost プ
ロセスへ RPC メッセージとして送信さ
れ、 DevHost はドライバが理解できる I / O
トランザクションに変換する。最終的に
BlockDevice ドライバから実際の HW へ送
信される。
ファイルシステム
●
Fuchsia のファイルシステムはカーネルでは
なくユーザー空間に存在する。
– カーネルはファイル、ディレクトリ、ファイ
ルシステムに関する情報を持たない。
●
ファイルシステムへのアクセスは、ファイル
システムサーバーとの通信 Channel 上の送
受信メッセージに限られる。
– このプロトコルを実装すれば、仮想ファイル
システムとしての機能アクセスが可能。
ファイルシステム
●
Fuchsia では Namespace はクライアント内
に存在する小さなファイルシステムであ
る。典型的な " グローバル”ファイルシステ
ムの代わりに、 Fuchsia のプロセスには
root を表すディレクトリハンドルを提供す
ることが可能で、 Namespace の範囲を制
限できる。
ファイルシステム
●
現在のファイルシステムは以下の通り
– MemFS :メモリ内ファイルシステム
● / tmp のような一時ファイルシステムや /boot に
使用されている。
– MinFS :永続的なファイルシステム
● 単純な従来のファイルシステム。 MemFS とは
異なり、ブロックデバイスへの追加ハンドル
が必要。フォーマット用の "mkfs" 、検証用
の "fsck","mount”,"umount” が提供される。
ファイルシステム
– Blobfs :不変の完全性検証パッケージ記憶
ファイルシステム
● Blobfs は、アプリケーションパッケージなどの
「追記型、読み取り専用」の署名付きデータ
用に最適化された単純でフラットなファイル
システム。
– ThinFS : Go で書かれた FAT ファイルシステ
ム
Ledger
●
各アプリケーション ( 正確には各コンポーネ
ント ) に提供される個別のデータストア。
コンポーネントのコンテキストを通して
Fuchsia フレームワークによってクライア
ントアプリケーションに提供される。
●
同じユーザーの他のアプリ、同じアプリの他
のユーザーからは非公開。
●
各データストアはクラウドプロバイダを介し
て、そのユーザーのデバイス間で透過的に
以上
●
次回はグラフィックス周りやアプリケーショ
ン実行環境を調べられるといいなと。
●
キーワードとして Story/Module/Agent や
Magma/Escher/Scenic など。

Weitere ähnliche Inhalte

Was ist angesagt?

エンジニアなら知っておきたい「仮想マシン」のしくみ (BPStudy38)
エンジニアなら知っておきたい「仮想マシン」のしくみ (BPStudy38)エンジニアなら知っておきたい「仮想マシン」のしくみ (BPStudy38)
エンジニアなら知っておきたい「仮想マシン」のしくみ (BPStudy38)Takeshi HASEGAWA
 
Akkaとは。アクターモデル とは。
Akkaとは。アクターモデル とは。Akkaとは。アクターモデル とは。
Akkaとは。アクターモデル とは。Kenjiro Kubota
 
Webブラウザで動くOSSオフィスソフト、LibreOffice Onlineの中身に迫る / LibreOffice Online Implementa...
Webブラウザで動くOSSオフィスソフト、LibreOffice Onlineの中身に迫る / LibreOffice Online Implementa...Webブラウザで動くOSSオフィスソフト、LibreOffice Onlineの中身に迫る / LibreOffice Online Implementa...
Webブラウザで動くOSSオフィスソフト、LibreOffice Onlineの中身に迫る / LibreOffice Online Implementa...Naruhiko Ogasawara
 
Swift初心者がSpriteKitで一ヶ月でゲームを作った話
Swift初心者がSpriteKitで一ヶ月でゲームを作った話Swift初心者がSpriteKitで一ヶ月でゲームを作った話
Swift初心者がSpriteKitで一ヶ月でゲームを作った話Masaaki Kakimoto
 
Nginxを使ったオレオレCDNの構築
Nginxを使ったオレオレCDNの構築Nginxを使ったオレオレCDNの構築
Nginxを使ったオレオレCDNの構築ichikaway
 
RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)
RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)
RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)Kuniyasu Suzaki
 
ネイティブコードを語る
ネイティブコードを語るネイティブコードを語る
ネイティブコードを語るKenji Imasaki
 
BuildKitの概要と最近の機能
BuildKitの概要と最近の機能BuildKitの概要と最近の機能
BuildKitの概要と最近の機能Kohei Tokunaga
 
ゲームの通信をつくる仕事はどうなるのだろう?
ゲームの通信をつくる仕事はどうなるのだろう?ゲームの通信をつくる仕事はどうなるのだろう?
ゲームの通信をつくる仕事はどうなるのだろう?Kengo Nakajima
 
ibus-skkをなんとかすっぺ会議
ibus-skkをなんとかすっぺ会議ibus-skkをなんとかすっぺ会議
ibus-skkをなんとかすっぺ会議emasaka
 
大規模ゲーム開発における build 高速化と安定化
大規模ゲーム開発における build 高速化と安定化大規模ゲーム開発における build 高速化と安定化
大規模ゲーム開発における build 高速化と安定化DeNA
 
今話題のいろいろなコンテナランタイムを比較してみた
今話題のいろいろなコンテナランタイムを比較してみた今話題のいろいろなコンテナランタイムを比較してみた
今話題のいろいろなコンテナランタイムを比較してみたKohei Tokunaga
 
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―shinjiigarashi
 
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~SEGADevTech
 
Android デバッグ小ネタ
Android デバッグ小ネタAndroid デバッグ小ネタ
Android デバッグ小ネタl_b__
 
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」Masahito Zembutsu
 
イベント駆動プログラミングとI/O多重化
イベント駆動プログラミングとI/O多重化イベント駆動プログラミングとI/O多重化
イベント駆動プログラミングとI/O多重化Gosuke Miyashita
 
遠隔デバイスとの信頼を築くための技術とその標準(TEEP RATS)
遠隔デバイスとの信頼を築くための技術とその標準(TEEP RATS)遠隔デバイスとの信頼を築くための技術とその標準(TEEP RATS)
遠隔デバイスとの信頼を築くための技術とその標準(TEEP RATS)Kuniyasu Suzaki
 

Was ist angesagt? (20)

エンジニアなら知っておきたい「仮想マシン」のしくみ (BPStudy38)
エンジニアなら知っておきたい「仮想マシン」のしくみ (BPStudy38)エンジニアなら知っておきたい「仮想マシン」のしくみ (BPStudy38)
エンジニアなら知っておきたい「仮想マシン」のしくみ (BPStudy38)
 
Akkaとは。アクターモデル とは。
Akkaとは。アクターモデル とは。Akkaとは。アクターモデル とは。
Akkaとは。アクターモデル とは。
 
Webブラウザで動くOSSオフィスソフト、LibreOffice Onlineの中身に迫る / LibreOffice Online Implementa...
Webブラウザで動くOSSオフィスソフト、LibreOffice Onlineの中身に迫る / LibreOffice Online Implementa...Webブラウザで動くOSSオフィスソフト、LibreOffice Onlineの中身に迫る / LibreOffice Online Implementa...
Webブラウザで動くOSSオフィスソフト、LibreOffice Onlineの中身に迫る / LibreOffice Online Implementa...
 
Swift初心者がSpriteKitで一ヶ月でゲームを作った話
Swift初心者がSpriteKitで一ヶ月でゲームを作った話Swift初心者がSpriteKitで一ヶ月でゲームを作った話
Swift初心者がSpriteKitで一ヶ月でゲームを作った話
 
Nginxを使ったオレオレCDNの構築
Nginxを使ったオレオレCDNの構築Nginxを使ったオレオレCDNの構築
Nginxを使ったオレオレCDNの構築
 
RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)
RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)
RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)
 
ネイティブコードを語る
ネイティブコードを語るネイティブコードを語る
ネイティブコードを語る
 
BuildKitの概要と最近の機能
BuildKitの概要と最近の機能BuildKitの概要と最近の機能
BuildKitの概要と最近の機能
 
ゲームの通信をつくる仕事はどうなるのだろう?
ゲームの通信をつくる仕事はどうなるのだろう?ゲームの通信をつくる仕事はどうなるのだろう?
ゲームの通信をつくる仕事はどうなるのだろう?
 
ibus-skkをなんとかすっぺ会議
ibus-skkをなんとかすっぺ会議ibus-skkをなんとかすっぺ会議
ibus-skkをなんとかすっぺ会議
 
大規模ゲーム開発における build 高速化と安定化
大規模ゲーム開発における build 高速化と安定化大規模ゲーム開発における build 高速化と安定化
大規模ゲーム開発における build 高速化と安定化
 
ゼロからはじめるKVM超入門
ゼロからはじめるKVM超入門ゼロからはじめるKVM超入門
ゼロからはじめるKVM超入門
 
今話題のいろいろなコンテナランタイムを比較してみた
今話題のいろいろなコンテナランタイムを比較してみた今話題のいろいろなコンテナランタイムを比較してみた
今話題のいろいろなコンテナランタイムを比較してみた
 
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
 
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~
 
Code Golf
Code GolfCode Golf
Code Golf
 
Android デバッグ小ネタ
Android デバッグ小ネタAndroid デバッグ小ネタ
Android デバッグ小ネタ
 
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」
 
イベント駆動プログラミングとI/O多重化
イベント駆動プログラミングとI/O多重化イベント駆動プログラミングとI/O多重化
イベント駆動プログラミングとI/O多重化
 
遠隔デバイスとの信頼を築くための技術とその標準(TEEP RATS)
遠隔デバイスとの信頼を築くための技術とその標準(TEEP RATS)遠隔デバイスとの信頼を築くための技術とその標準(TEEP RATS)
遠隔デバイスとの信頼を築くための技術とその標準(TEEP RATS)
 

Ähnlich wie Fuchsia概略その1

ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜Hideki Takase
 
LibreOfficeをビルドしてみよう(Windows)
LibreOfficeをビルドしてみよう(Windows)LibreOfficeをビルドしてみよう(Windows)
LibreOfficeをビルドしてみよう(Windows)Masataka Kondo
 
ownCloud のあれこれ July Tech Festa 2016
ownCloud のあれこれ July Tech Festa 2016ownCloud のあれこれ July Tech Festa 2016
ownCloud のあれこれ July Tech Festa 2016Tetsurou Yano
 
Firefox OS - Blaze Your Own Path
Firefox OS - Blaze Your Own PathFirefox OS - Blaze Your Own Path
Firefox OS - Blaze Your Own Pathdynamis
 
クラウド開発に役立つ OSS あれこれ
クラウド開発に役立つ OSS あれこれクラウド開発に役立つ OSS あれこれ
クラウド開発に役立つ OSS あれこれMasataka MIZUNO
 
ソフトウェア工学2023 13 ドキュメンテーション
ソフトウェア工学2023 13 ドキュメンテーションソフトウェア工学2023 13 ドキュメンテーション
ソフトウェア工学2023 13 ドキュメンテーションToru Tamaki
 
minneで学ぶクラウド脳
minneで学ぶクラウド脳minneで学ぶクラウド脳
minneで学ぶクラウド脳Uchio Kondo
 
ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会
ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会
ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会Takayuki Shimizukawa
 
CAMPHOR- day 2020 - Docker 超入門
CAMPHOR- day 2020 - Docker 超入門CAMPHOR- day 2020 - Docker 超入門
CAMPHOR- day 2020 - Docker 超入門KokiMakita1
 
KEONとPEAKが無くてもFirefox OS開発出来る
KEONとPEAKが無くてもFirefox OS開発出来るKEONとPEAKが無くてもFirefox OS開発出来る
KEONとPEAKが無くてもFirefox OS開発出来るandroid sola
 
ABC 2012 Spring Robot Summit
ABC 2012 Spring Robot Summit ABC 2012 Spring Robot Summit
ABC 2012 Spring Robot Summit 三七男 山本
 
【学習メモ#1st】12ステップで作る組込みOS自作入門
【学習メモ#1st】12ステップで作る組込みOS自作入門【学習メモ#1st】12ステップで作る組込みOS自作入門
【学習メモ#1st】12ステップで作る組込みOS自作入門sandai
 
Lesson01
Lesson01Lesson01
Lesson01MRI
 
Keycloakの実際・翻訳プロジェクト紹介
Keycloakの実際・翻訳プロジェクト紹介Keycloakの実際・翻訳プロジェクト紹介
Keycloakの実際・翻訳プロジェクト紹介Hiroyuki Wada
 

Ähnlich wie Fuchsia概略その1 (20)

ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
 
LibreOfficeをビルドしてみよう(Windows)
LibreOfficeをビルドしてみよう(Windows)LibreOfficeをビルドしてみよう(Windows)
LibreOfficeをビルドしてみよう(Windows)
 
ownCloud のあれこれ July Tech Festa 2016
ownCloud のあれこれ July Tech Festa 2016ownCloud のあれこれ July Tech Festa 2016
ownCloud のあれこれ July Tech Festa 2016
 
Firefox OS - Blaze Your Own Path
Firefox OS - Blaze Your Own PathFirefox OS - Blaze Your Own Path
Firefox OS - Blaze Your Own Path
 
クラウド開発に役立つ OSS あれこれ
クラウド開発に役立つ OSS あれこれクラウド開発に役立つ OSS あれこれ
クラウド開発に役立つ OSS あれこれ
 
Keep a diary
Keep a diaryKeep a diary
Keep a diary
 
ソフトウェア工学2023 13 ドキュメンテーション
ソフトウェア工学2023 13 ドキュメンテーションソフトウェア工学2023 13 ドキュメンテーション
ソフトウェア工学2023 13 ドキュメンテーション
 
minneで学ぶクラウド脳
minneで学ぶクラウド脳minneで学ぶクラウド脳
minneで学ぶクラウド脳
 
ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会
ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会
ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会
 
CAMPHOR- day 2020 - Docker 超入門
CAMPHOR- day 2020 - Docker 超入門CAMPHOR- day 2020 - Docker 超入門
CAMPHOR- day 2020 - Docker 超入門
 
KEONとPEAKが無くてもFirefox OS開発出来る
KEONとPEAKが無くてもFirefox OS開発出来るKEONとPEAKが無くてもFirefox OS開発出来る
KEONとPEAKが無くてもFirefox OS開発出来る
 
Windows Azure PHP Tips
Windows Azure PHP Tips Windows Azure PHP Tips
Windows Azure PHP Tips
 
Jap1
Jap1Jap1
Jap1
 
Docker Compose 徹底解説
Docker Compose 徹底解説Docker Compose 徹底解説
Docker Compose 徹底解説
 
ABC 2012 Spring Robot Summit
ABC 2012 Spring Robot Summit ABC 2012 Spring Robot Summit
ABC 2012 Spring Robot Summit
 
【学習メモ#1st】12ステップで作る組込みOS自作入門
【学習メモ#1st】12ステップで作る組込みOS自作入門【学習メモ#1st】12ステップで作る組込みOS自作入門
【学習メモ#1st】12ステップで作る組込みOS自作入門
 
Lesson01
Lesson01Lesson01
Lesson01
 
Keycloakの実際・翻訳プロジェクト紹介
Keycloakの実際・翻訳プロジェクト紹介Keycloakの実際・翻訳プロジェクト紹介
Keycloakの実際・翻訳プロジェクト紹介
 
1MB
1MB1MB
1MB
 
BBBBB
BBBBBBBBBB
BBBBB
 

Mehr von l_b__

Android,Brillo,ChromeOS
Android,Brillo,ChromeOSAndroid,Brillo,ChromeOS
Android,Brillo,ChromeOSl_b__
 
ABS2015 のセッション紹介
ABS2015 のセッション紹介ABS2015 のセッション紹介
ABS2015 のセッション紹介l_b__
 
Androidのリカバリシステム (Androidのシステムアップデート)
Androidのリカバリシステム (Androidのシステムアップデート)Androidのリカバリシステム (Androidのシステムアップデート)
Androidのリカバリシステム (Androidのシステムアップデート)l_b__
 
Binderのはじめの一歩とAndroid
Binderのはじめの一歩とAndroidBinderのはじめの一歩とAndroid
Binderのはじめの一歩とAndroidl_b__
 
Binderのはじめの一歩
Binderのはじめの一歩Binderのはじめの一歩
Binderのはじめの一歩l_b__
 
Open binder
Open binderOpen binder
Open binderl_b__
 
Eclipseを使ったandroid nativeデバッグ
Eclipseを使ったandroid nativeデバッグEclipseを使ったandroid nativeデバッグ
Eclipseを使ったandroid nativeデバッグl_b__
 
PF開発に使えるAOSPのツール達
PF開発に使えるAOSPのツール達PF開発に使えるAOSPのツール達
PF開発に使えるAOSPのツール達l_b__
 
Yapf2013
Yapf2013Yapf2013
Yapf2013l_b__
 
JellyBeanのソースをとりあえず眺めてみた(手抜き)
JellyBeanのソースをとりあえず眺めてみた(手抜き)JellyBeanのソースをとりあえず眺めてみた(手抜き)
JellyBeanのソースをとりあえず眺めてみた(手抜き)l_b__
 
Intentの概要
Intentの概要Intentの概要
Intentの概要l_b__
 
Stagefright入門
Stagefright入門Stagefright入門
Stagefright入門l_b__
 
Stagefright入門
Stagefright入門Stagefright入門
Stagefright入門l_b__
 

Mehr von l_b__ (13)

Android,Brillo,ChromeOS
Android,Brillo,ChromeOSAndroid,Brillo,ChromeOS
Android,Brillo,ChromeOS
 
ABS2015 のセッション紹介
ABS2015 のセッション紹介ABS2015 のセッション紹介
ABS2015 のセッション紹介
 
Androidのリカバリシステム (Androidのシステムアップデート)
Androidのリカバリシステム (Androidのシステムアップデート)Androidのリカバリシステム (Androidのシステムアップデート)
Androidのリカバリシステム (Androidのシステムアップデート)
 
Binderのはじめの一歩とAndroid
Binderのはじめの一歩とAndroidBinderのはじめの一歩とAndroid
Binderのはじめの一歩とAndroid
 
Binderのはじめの一歩
Binderのはじめの一歩Binderのはじめの一歩
Binderのはじめの一歩
 
Open binder
Open binderOpen binder
Open binder
 
Eclipseを使ったandroid nativeデバッグ
Eclipseを使ったandroid nativeデバッグEclipseを使ったandroid nativeデバッグ
Eclipseを使ったandroid nativeデバッグ
 
PF開発に使えるAOSPのツール達
PF開発に使えるAOSPのツール達PF開発に使えるAOSPのツール達
PF開発に使えるAOSPのツール達
 
Yapf2013
Yapf2013Yapf2013
Yapf2013
 
JellyBeanのソースをとりあえず眺めてみた(手抜き)
JellyBeanのソースをとりあえず眺めてみた(手抜き)JellyBeanのソースをとりあえず眺めてみた(手抜き)
JellyBeanのソースをとりあえず眺めてみた(手抜き)
 
Intentの概要
Intentの概要Intentの概要
Intentの概要
 
Stagefright入門
Stagefright入門Stagefright入門
Stagefright入門
 
Stagefright入門
Stagefright入門Stagefright入門
Stagefright入門
 

Fuchsia概略その1