5. 5
Let's go back to the start
Apt drives it
Periodic update cycle
Packages tied to a release
Ubuntu
The Ubuntu we all know and love.
The one that is everywhere
7. 7
And here we are
New architecture
Transactional
Moldable
Isolated and independent components
Snappy
Ubuntu Core (and Personal) have a
snappy architecture.
9. 9
Eagle view of Ubuntu Core
AppApp
App
OSOS
Kernel
G
a
d
g
e
t
Reliable updates
Safe
Simple packaging
App
10. 10
OS
The big dependency.
The same on every hardware.
Generic initrd
Exposes capabilities.
Ubuntu Core
Common base for all snaps.
11. 11
Kernel
The Linux kernel itself
Modules
Hardware specific initrd
Bootloader assets.
Linux et. al.
The Linux kernel and associated
hardware-specific drivers (or libraries
such as those which provide OpenGL)
are all bundled into a single snap, called
the “kernel snap” although it may
occasionally include software that is not
strictly part of the kernel.
13. 13
Apps
Can access resources exposed through
capabilities.
No conflicts between apps
Kernel control groups
Kernel Namespace (CLONE_NEWNS)
AppArmor and SecComp
Confined
Apps have clear interfaces.
15. 16
On the cloud
Vagrant and KVM images for
rapid prototyping.
snappy Ubuntu Core can be
found on all the major clouds like
AWS, Azure & GCE
Also on private clouds
Used to be in the Ubuntu phone foundations team
Responsibilities:
- snappy: design and dev
- ubuntu-device-flash
- oem
- webdm
- bootloaders
While in foundations:
- storage
- mms
- notificaciones
- portar/integrar
Manik Tajeda
Manik Tajeda
Maintainer scripts
Wait six months
Use a PPA?
Everything shared, is shared for everything.
Huge dependency tree.
Packaging correctly is hard.
If you want to confine your binaries, it is rather hard (native apparmor rules and seccomp).
An image is a blob
System Image.
Applied in deltas
Layered
A minimal android runs in an lxc container.
Generally small updates, rolling if you want to be trendy
Introduces clicks:
No maintainer scripts
hooks instead.
The dependency is the “framework”
Ubuntu Store allows freedom for releasing software targeting a release.
SDK which basically defines the supported framework.
Confinement through apparmor easyprof
Trusted helpers
Builds on top of Touch
Everything is a snap
Moves away from system image:
Total isolation and no more layering.
Layers require an orchestrator
Isolated components talk over interfaces.
Small and isolated make it easy to use.
Confusion between snappy and Ubuntu Core
Ubuntu is not apt as Ubuntu Core is not snappy
manik
Everything comes from the store
Initially we had frameworks (15.04), this has grown to live as capabilities.
frameworks was a bad name
.
Abstracción de hw sería el kernel y un par de cosas más
Gadget define
Apps can have forks.
Apps provide apps, today as either a cli or a daemon.
Bootloader assets *
Manik discusses this slide
Snaps that need to interact with a piece of hardware or use non-default permissions need to declare that they consume a capability of a given type. Hardware systems can offer capabilities of various kinds.
Today there's 2, rolling and 15.04
The numbered releases are stable. 16.04 will be an LTS.
Half truth, stable releases are stable on the stable channel.
Edge is the daily build.
There is no stable channel for rolling.
Manik
Manik
Manik
Manik
manik.
manik
Partes
- parte central
- independientes entre ellos
- usado para el snap final o para contruir
Plugins:
- go, py2/3, java, c, ubuntu
Ciclo de vida:
- pull → parts/part-name/src
- build → parts/part-name/build, después ../install
- stage → combina todos los parts en ./stage
- snap → partes productivas de stage + ./meta
- assemble → crea el snap
Show pi2
login
run unavailable commands
run some snappy commands
Partes
- parte central
- independientes entre ellos
- usado para el snap final o para contruir
Plugins:
- go, py2/3, java, c, ubuntu
Ciclo de vida:
- pull → parts/part-name/src
- build → parts/part-name/build, después ../install
- stage → combina todos los parts en ./stage
- snap → partes productivas de stage + ./meta
- assemble → crea el snap