We need to discuss this in detail, my current feeling is that for a classic system it will look just like you outline above: a single
core snap with snapd (and potentially systemd, base, coreutils, see below), any number of base snaps and app snaps.
For ubuntu core device and core we have two options:
- core contains systemd,bash,coreutils(or busybox), snapd, just the bare minimum to boot a ubuntu core device. the application runtime is provided via ubuntu-16.04
- core contains just snapd, the boot environment if provided via the ubuntu-core-16 snap
I lean towards option (2) because it means we can make "core" even smaller, but we should explore this a bit more before making a decision.