この記事は Google I/O '19 のセッションの視聴メモです。
想定読者は自分なので正確性や網羅率には問題があるかもしれません。
References
Abstract
Learn how Linux for Chromebooks (Crostini) gives you a secure sandbox for development. Through a variety of demos, this talk will explain the architecture underlying Linux for Chromebooks and the design decisions that keep it easy to use.
訳
どのようにしてChrombookが開発のためにセキュアなサンドボックスを提供するかをご紹介します。様々なデモを通して、このトークではLinux for Chromebooksのアーキテクチャとそれを簡単に使うことを可能にした設計上の決定についてご説明します。
Contents
- セキュリティ上の理由で開発用とその他用でPCを分けてたけど最近一つのPCしか使わなくなったよ
- Chrombookをつかうようにしたからだよ
- 開発用のプログラムはいろんな権限を要求するけど普通のアプリはそうではないので
Architecture & Design
- Linux for Chromebook ではCrOS上にターミナルVMがのっている
- ゲストVMは基本的に権限を読み込みだけに制限されている
- VMはDebian9のContainerシステム上で動作する
- Rustで開発
- セキュリティとシンプルさのちょうどいいところを探すのが使命
Common Workflows
- ファイルアクセス
- ファイルを共有できる領域を分けて階層ごとに管理
- 9pサーバーでVMと共有
- Linux files というディレクトリ以下はすべてLinuxと共有する
- Google Driveのファイルは「Share with Linux」で共有する
- ダブルクリックでファイルを開くとログアウトするまでは自動で共有される
- Local Port Routing
- どのコンテナがどのポートを開放しててどのコンテナがどのポートを見れるのか管理するのはとても複雑だけど簡単に使えるようになってるよ
- どのアプリからでも
127.0.0.1:8080
で普通にローカルサーバーが見れる- CrOSのホストがアクセスする分にはどこでも見れる
- ホストはReadはどこでもできる
- Android開発
- Android Studioを入れるだけでできる
- USB接続をセキュアにするためにどうしてるか
- 端末を接続しただけではLinuxはその存在を知れない
- 接続を許可するダイアログでOKした場合のみ共有される
Advanced Usage
- コンテナはtermina(VMホストの名前)から簡単に操作できる
- コンテナは簡単にスナップショットが取れる
- reddit.com/r/crostini で議論してるよ(redditなんだ…)
Memo
- なんでWebセッションのリストにはいってるんだろう…
- あまり知らない領域なので聞くのが大変だった
- もしかしてPWAのデモをするから…