Presentation: Next Generation Application Management
Using cgroups to make everything /amazing/
In this talk we will present a new cross-desktop specification to provide semantic grouping of processes together to be an "application". We will explain the many problems that we currently face, and how we can embrace an existing kernel technology used by system services to not only solve these but go beyond and expose existing new features.
Plasma's sole job is to connect users to their applications.
There used to be a time where one application was a process. ksysguard would show one easy to manage entry. Now Discord in a flatpak is 13(!) procesess. Have two electron instances and ksysguard is useless. We have backgrounds services that linger with indecipherable names. It doesn't work anymore on the desktop let alone the phone. We need metadata.
This is a solved problem. CGroups are used commonly for your system services. Any sysadmin won't deal with an Apache proces, but the whole webserver as one cgroup. By embracing this not only do we have metadata providing a single-truth of the launched context, but also expose all of the kernel features reserved for cgroups. Separate network namespaces, hard CPU quotas, OOM protection that works, we can expose this either as transient modifiers or as sysadmin overrides.
We've been doing a lot of subtle ground work over the past year to a lot of tiny edge cases where this metadata wasn't transferred correctly both within KDE and throughout the ecosystem.
We will discuss what we've landed so far and what the future holds.