1 of 46

ChromeOS Explained��Robert Fekete

12th of May 2016

Lund Linux Con 2016

1

2 of 46

ChromeOS

Lund Linux Con 2016

2

3 of 46

What is chromeOS?

  • Gets you online almost instantly
  • No cumbersome install and setup procedures
  • All drivers are updated seamlessly, always up to date
  • No need to update apps over time
  • No Antivirus needed, hence less risk of infection
    • well your home made photos may still be stolen online but that applies to daCloud mostly
  • No bogged down, slowed down effect over time
  • Googles ”universal syncing system” keeps sync across all devices
  • Offline capabilities, despite beeing a connected device
  • No differentiation, You will get your google desktop on any device

Lund Linux Con 2016

3

4 of 46

Chrome OS Desktop

Lund Linux Con 2016

4

5 of 46

Ctrl-Alt-T

Lund Linux Con 2016

5

6 of 46

Lund Linux Con 2016

6

7 of 46

Browser Technologies

Lund Linux Con 2016

7

8 of 46

Lund Linux Con 2016

8

9 of 46

Architecture

Lund Linux Con 2016

9

10 of 46

ChromeOS HW

Lund Linux Con 2016

10

11 of 46

ChromeOS Firmware

  • Based on coreboot and u-boot
  • Coreboot runs minimal hw init
    • Includes Intel provided reference code
  • U-boot payload provides flexile boot
    • Various boot media, recovery, etc
  • Root of trust for verified boot enforcement and policy

Lund Linux Con 2016

11

12 of 46

Verified Boot

  • Only supported on ChromeOS devices
    • Other devices are in developer mode
  • Read-only firmware root of trust
    • Hw write protection
  • Verifies Bootlooader, updatable firmware,

Kernel arguments, filesystem, modules, ...

  • Root of trust owned by Google!

Lund Linux Con 2016

12

13 of 46

Modes

  • Verified / Normal mode
    • Boots only Google signed ChromeOS images
  • Recovery mode (Esc – refresh(F3) – Power button)
    • Get back to trusted state
    • Boot signed USB image/bkp
  • Developer mode
    • Built in jailbreak mode, run chromiumOS images, root
    • Enter recovery mode, press Ctrl-D.
  • Legacy mode (Ctrl-L)
    • SeaBIOS to load alternate os, Unsupported
  • Crazy developer Mode

Lund Linux Con 2016

13

14 of 46

Crazy Developer Mode

Lund Linux Con 2016

14

15 of 46

Lund Linux Con 2016

15

16 of 46

Kernel

  • Patched Linux Kernel
    • Backported drivers and improvements
    • Security enhancements
    • Coreboot replace uefi, drivers needed in kernel
    • Google do not move to latest kernel too often
  • Includes drivers/API’s for all supported HW
  • Platform enablement starts here

Lund Linux Con 2016

16

17 of 46

Userspace

  • Modified Gentoo Linux distro
  • Layers ChromiumOS on top
  • Standard Linux components
    • Upstart Init, Logging, evdev, X11(RIP),
    • OGL MESA, libdrm, network, usb, BT...
  • Only used by the Chrome Browser
  • Not accessible by other apps.

Lund Linux Con 2016

17

18 of 46

Portage/Gentoo

Lund Linux Con 2016

18

19 of 46

Browser

  • All system components exist to support the browser
  • API’s passed through from ChromeOS to Chrome
  • All unsandboxed native code ships with the verified OS
  • No third party OS extensions or drivers (Unlike Android)
  • All third party code runs in a sandbox, whitelist access to some ioctl’s...

Lund Linux Con 2016

19

20 of 46

Blink

  • Web browser engine, part of the Chromium Project
  • Forked 2013 off the webcore component from Webkit
  • Uses V8 as javascript engine, same as newer Opera
    • Others are: chakra(IE), spidermonkey(firefox),nitro(Apple),...
  • Use the Fork, in order to get more power…
  • Blink's naming was influenced by the non-standard presentational <blink> html tag

Lund Linux Con 2016

20

21 of 46

Native Client

Lund Linux Con 2016

21

22 of 46

All is rendered by the Browser Engine

Lund Linux Con 2016

22

23 of 46

The GFX rendering part

Lund Linux Con 2016

23

24 of 46

Browser composition

  • Ash is the Window manager on Chromium.
  • Aura is the hardware accelerated UI framework built on CC.
  • Aura provides basic primitives like Window, Input.
  • Aura wraps native window, Ozone provides this in case of ChromiumOS.
  • Aura uses CC for window composition.

Lund Linux Con 2016

24

25 of 46

Ozone

Lund Linux Con 2016

25

26 of 46

Ash tray at the bottom

Lund Linux Con 2016

26

27 of 46

How about

X

Lund Linux Con 2016

27

28 of 46

Chromium-freon (Chrome without X)

Lund Linux Con 2016

28

29 of 46

Chromium-Freon Architecture

Lund Linux Con 2016

29

30 of 46

SO�WHY

Lund Linux Con 2016

30

31 of 46

WILL

Lund Linux Con 2016

31

32 of 46

HTML5

Lund Linux Con 2016

32

33 of 46

CHANGE

Lund Linux Con 2016

33

34 of 46

EVERYTHING

Lund Linux Con 2016

34

35 of 46

Because you don’t stumble upon a native app before installing it

Lund Linux Con 2016

35

36 of 46

Web

  • Deep linking and index’ability (hard for native apps)
  • Integration with cloud services
  • Flexible layout primitives
  • Responsive/adaptable design, always up to date
  • One Web fits all – cross platform promise
  • Deployment and distribution model, control
  • Although Many native apps use webview to access content
  • Native apps may embrace new API’s faster though…
    • Web standardization is sloooow.

Lund Linux Con 2016

36

37 of 46

WEB...

Lund Linux Con 2016

37

38 of 46

emscripten

  • Emscripten is an LLVM-based project that compiles C/C++ into highly-optimizable JavaScript in asm.js format. This lets you run C/C++ on the web at near-native speed, without plugins. (http://kripken.github.io/emscripten-site/)
  • For example, emscripten converts OpenGL into WebGL among other things and uses asm.js.
  • Asm.js? an extraordinarily optimizable, low-level subset of JavaScript.  
    • It enables significant performance improvements for webapps that are written in statically-typed languages with manual memory management (such as C) and then translated to JavaScript
  • AOT: Ahead of time Compilation.....

Lund Linux Con 2016

38

39 of 46

How fast?

Lund Linux Con 2016

39

40 of 46

SIMD.js in V8

Lund Linux Con 2016

40

41 of 46

ChromeOS market?

Lund Linux Con 2016

41

42 of 46

Geographic Distribution

Lund Linux Con 2016

42

43 of 46

Note to self! So how much does it really cost?

Lund Linux Con 2016

43

44 of 46

ARC

Lund Linux Con 2016

44

45 of 46

That is all for now� Thank you!

Lund Linux Con 2016

45

46 of 46

Lund Linux Con 2016

46