23
Proprietary + Confidential Proprietary + Confidential Proprietary + Confidential Crostini: a Linux Desktop on Chrome OS © 2019 Google, CC BY-SA 2.0

Crostini: a Linux Desktop on Chrome OS - FOSDEM · Slimmed-down Chrome OS for running LXD containers Linux 4.19 maitred - init system that can be controlled over gRPC LXD 3.0.2 tremplin

  • Upload
    others

  • View
    15

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Crostini: a Linux Desktop on Chrome OS - FOSDEM · Slimmed-down Chrome OS for running LXD containers Linux 4.19 maitred - init system that can be controlled over gRPC LXD 3.0.2 tremplin

Proprietary + ConfidentialProprietary + Confidential

Proprietary + Confidential

Crostini: a Linux Desktop on Chrome OS

© 2019 Google, CC BY-SA 2.0

Page 2: Crostini: a Linux Desktop on Chrome OS - FOSDEM · Slimmed-down Chrome OS for running LXD containers Linux 4.19 maitred - init system that can be controlled over gRPC LXD 3.0.2 tremplin

Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem

Proprietary + Confidential

Introduction and agenda

Introduction:- Chrome OS, readily available, fast, secure, open source- Linux on Chrome OS (Crostini)

- Easy to get Debian container, fully integrated with Chrome OS

Agenda:- Getting started with Linux on Chrome OS (crostini), integration with Chrome OS- Architecture- Advanced usage

Page 3: Crostini: a Linux Desktop on Chrome OS - FOSDEM · Slimmed-down Chrome OS for running LXD containers Linux 4.19 maitred - init system that can be controlled over gRPC LXD 3.0.2 tremplin

Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem

Proprietary + Confidential

Getting started: installation

Page 4: Crostini: a Linux Desktop on Chrome OS - FOSDEM · Slimmed-down Chrome OS for running LXD containers Linux 4.19 maitred - init system that can be controlled over gRPC LXD 3.0.2 tremplin

Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem

Proprietary + Confidential

Installation

Preferences: ctrl+shift+p

Page 5: Crostini: a Linux Desktop on Chrome OS - FOSDEM · Slimmed-down Chrome OS for running LXD containers Linux 4.19 maitred - init system that can be controlled over gRPC LXD 3.0.2 tremplin

Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem

Proprietary + Confidential

Graphical apps integration

Page 6: Crostini: a Linux Desktop on Chrome OS - FOSDEM · Slimmed-down Chrome OS for running LXD containers Linux 4.19 maitred - init system that can be controlled over gRPC LXD 3.0.2 tremplin

Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem

Proprietary + Confidential

Drive and file system sharing

Page 7: Crostini: a Linux Desktop on Chrome OS - FOSDEM · Slimmed-down Chrome OS for running LXD containers Linux 4.19 maitred - init system that can be controlled over gRPC LXD 3.0.2 tremplin

Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem

Proprietary + Confidential

Networking

Container reachable on penguin.linux.test, many ports also forwarded from localhost

Page 8: Crostini: a Linux Desktop on Chrome OS - FOSDEM · Slimmed-down Chrome OS for running LXD containers Linux 4.19 maitred - init system that can be controlled over gRPC LXD 3.0.2 tremplin

Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem

Proprietary + Confidential

Settings

Page 9: Crostini: a Linux Desktop on Chrome OS - FOSDEM · Slimmed-down Chrome OS for running LXD containers Linux 4.19 maitred - init system that can be controlled over gRPC LXD 3.0.2 tremplin

Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem

Proprietary + Confidential

Roadmap

Upcoming features:- USB pass-through- Audio support- GPU integration- FUSE

Enterprise (manageability) features:- Device policy OFF: crostini not allowed for anybody using the device- Device policy ON: is the user a member of the enterprise?

- YES: User policy (on/off)- NO: Device policy (on/off for non-affiliated users)

Page 10: Crostini: a Linux Desktop on Chrome OS - FOSDEM · Slimmed-down Chrome OS for running LXD containers Linux 4.19 maitred - init system that can be controlled over gRPC LXD 3.0.2 tremplin

Proprietary + ConfidentialProprietary + Confidential

Proprietary + Confidential

The architecture

© 2019 Google, CC BY-SA 2.0

Page 11: Crostini: a Linux Desktop on Chrome OS - FOSDEM · Slimmed-down Chrome OS for running LXD containers Linux 4.19 maitred - init system that can be controlled over gRPC LXD 3.0.2 tremplin

Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem

Proprietary + Confidential

Overall architecture

Stephen Edmonds from Melbourne, Australia CC BY-SA 2.0, via Wikimedia Commons

Page 12: Crostini: a Linux Desktop on Chrome OS - FOSDEM · Slimmed-down Chrome OS for running LXD containers Linux 4.19 maitred - init system that can be controlled over gRPC LXD 3.0.2 tremplin

Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem

Proprietary + Confidential

Guest VM

Simplified architecture

Linux

Chrome crosvm

Linux

LXD

Unprivileged container

Page 13: Crostini: a Linux Desktop on Chrome OS - FOSDEM · Slimmed-down Chrome OS for running LXD containers Linux 4.19 maitred - init system that can be controlled over gRPC LXD 3.0.2 tremplin

Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem

Proprietary + Confidential

CrosVM

- Hypervisor using KVM with a focus on security- Written in Rust for memory safety- By default, devices run in jailed child processes using namespaces, and

seccomp.- Only boots Linux guests on Linux hosts.- Optimized for Chrome OS hosts, but works on common Linux desktops.

Page 14: Crostini: a Linux Desktop on Chrome OS - FOSDEM · Slimmed-down Chrome OS for running LXD containers Linux 4.19 maitred - init system that can be controlled over gRPC LXD 3.0.2 tremplin

Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem

Proprietary + Confidential

Page 15: Crostini: a Linux Desktop on Chrome OS - FOSDEM · Slimmed-down Chrome OS for running LXD containers Linux 4.19 maitred - init system that can be controlled over gRPC LXD 3.0.2 tremplin

Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem

Proprietary + Confidential

Host-side daemons

● Chrome - Wayland compositor

● Concierge - VM lifecycle manager

● Cicerone - Container lifecycle manager/guest integration

● Seneschal - 9P server factory

Page 16: Crostini: a Linux Desktop on Chrome OS - FOSDEM · Slimmed-down Chrome OS for running LXD containers Linux 4.19 maitred - init system that can be controlled over gRPC LXD 3.0.2 tremplin

Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem

Proprietary + Confidential

Termina

● Slimmed-down Chrome OS for running LXD containers

○ Linux 4.19

○ maitred - init system that can be controlled over gRPC

○ LXD 3.0.2

○ tremplin - exposes gRPC API to control LXD

● Read-only, dm-verity - allows state to be held only in containers

Page 17: Crostini: a Linux Desktop on Chrome OS - FOSDEM · Slimmed-down Chrome OS for running LXD containers Linux 4.19 maitred - init system that can be controlled over gRPC LXD 3.0.2 tremplin

Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem

Proprietary + Confidential

Guest-side daemons

● Sommelier - Nested Wayland compositor, supports X11 forwarding

○ 3 instances - Wayland, X11 (lowdpi), X11(highdpi)

● Garçon - container guest agent

○ Uses PackageKit to run periodic apt upgrades (for CrOS guest tools)

○ App launcher integration via parsing .desktop files

○ Allows opening URLs in host Chrome, new Terminal app windows

Page 18: Crostini: a Linux Desktop on Chrome OS - FOSDEM · Slimmed-down Chrome OS for running LXD containers Linux 4.19 maitred - init system that can be controlled over gRPC LXD 3.0.2 tremplin

Proprietary + ConfidentialProprietary + Confidential

Proprietary + Confidential

Advanced usage

© 2019 Google, CC BY-SA 2.0

Page 19: Crostini: a Linux Desktop on Chrome OS - FOSDEM · Slimmed-down Chrome OS for running LXD containers Linux 4.19 maitred - init system that can be controlled over gRPC LXD 3.0.2 tremplin

Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem

Proprietary + Confidential

crosh: ctrl+alt+t

Preferences: ctrl+shift+p

Page 20: Crostini: a Linux Desktop on Chrome OS - FOSDEM · Slimmed-down Chrome OS for running LXD containers Linux 4.19 maitred - init system that can be controlled over gRPC LXD 3.0.2 tremplin

Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem

Proprietary + Confidential

vsh termina

Page 21: Crostini: a Linux Desktop on Chrome OS - FOSDEM · Slimmed-down Chrome OS for running LXD containers Linux 4.19 maitred - init system that can be controlled over gRPC LXD 3.0.2 tremplin

Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem

Proprietary + Confidential

Running a custom container

Page 22: Crostini: a Linux Desktop on Chrome OS - FOSDEM · Slimmed-down Chrome OS for running LXD containers Linux 4.19 maitred - init system that can be controlled over gRPC LXD 3.0.2 tremplin

Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem

Proprietary + Confidential

Running a custom container

Page 23: Crostini: a Linux Desktop on Chrome OS - FOSDEM · Slimmed-down Chrome OS for running LXD containers Linux 4.19 maitred - init system that can be controlled over gRPC LXD 3.0.2 tremplin

Proprietary + ConfidentialProprietary + Confidential

Proprietary + Confidential

Conclusion, Q & A

© 2019 Google, CC BY-SA 2.0

Guido: [email protected]: [email protected] contact: [email protected]