immutable pmOS modular approach
One good use for systemd-sysext is to have the system be made up on a bunch of layers containing different functionality. This has many potential advantages, the most obvious being the potential to avoid generating full OS images for all the devices we support, we could instead split the device specific parts out and have a single generic OS layer (kinda like the Android GSI thing, but with the restriction that we generate both the device parts and the generic parts and they must match exactly, no messy abstraction layers).
For example we might have a rootfs made up of the following layers:
- device-boot (base device package, firmware, and other deps that are needed for hardware to work)
- system-core (basically what you get when you install postmarketos-ui-none)
- system-ui (e.g. plasma-mobile and all deps including middleware like modemmanager)
- device-overrides (any necessary overrides to system layers, should ideally be empty)
This would make building images for more devices much much more efficient, as the system parts only have to be built once per arch. As a result, it also drastically lowers the barrier of entry for folks to build their own customised system images as they wouldn't have to build for all devices they want to support.
Outcomes of this issue
- Determine if and when we want to investigate this approach
- Determine impacts on overall design (see %Immutable postmarketOS design and PoC)