Jon Seager (Jon Seager), Canonical’s vice president of engineering and technical lead for the Ubuntu project, announced the resumption of work on the Ubuntu Core Desktop project, developing an alternative desktop edition of Ubuntu that uses developments from the Ubuntu Core platform and uses packages in Snap format instead of deb packages.
Unlike existing atomically updated distributions, in which system components are mounted in read-only mode, Ubuntu Core Desktop uses the “all components in snap format” model. When using such a model, the contents of the system environment, the Linux kernel, boot loader, desktop environments, multimedia servers, running background processes and applications are delivered in the snap format and are managed by the snapd toolkit.
Unlike the previously developed prototype, they intend to make the distribution more modular and, instead of delivering one snap package with the Ubuntu Core system environment, divide the base system into a set of separately updated snap packages. All applications are intended to run in isolation from the main system, and for packages that do not support isolation, they will provide a layer for launching using virtualization.
To control the access of applications to system and external resources, a mechanism for requesting permissions is being developed, requiring the user to confirm access, for example, when accessing files in the home directory, web camera or microphone from snap packages. Dynamic output of requests is carried out based on the analysis of calls to system calls, and access control is organized using AppArmor.
Development is carried out with an eye to three basic use cases:
- A workstation on which the main activity is associated with using a web browser and working with web applications. This scenario is considered the fastest to implement, since there are already ready-made snap packages with Firefox and Chromium, as well as support for requesting permissions when accessing the camera and microphone.
- A system for software developers that allows you to simultaneously use several development environments installed in isolated environments using workshop tools that use LXD to manage containers. If you need to run applications from deb packages, packages in flatpak format or classic snap packages that do not run on top of Ubuntu Core, containers or virtualization will be used.
- A system for computer game lovers, built around a Steam snap package. Components of the gaming stack, such as Proton, Mesa and drivers, will also be delivered in snap format, which will make it possible to install the latest versions of these components or use different versions with different games.