Pseudo persistent process
From MinorFs Wiki
In some operating systems, and also some programming languages, the concept of orthogonal persistence provides the facility for processes to be persistent even across reboots or restarts.
Mainstream operating systems do not provide such measures, but MinorFs provides a first basic building block that should allow building systems with persistent processes on Linux, by elevating language-based orthogonal persistence to the level of OS-based orthogonal persistence.
MinorFs uniquely identifies a running process as a so-called pseudo-persistent process, and offers each such process private storage. This should allow such a process to store/serialize its internal state to persistent storage media without disclosing its internal state within a widely accessible part of the filesystem like the user's home directory. When language-level orthogonal persistence would be combined with this MinorFs facility, Linux could be used to build orthogonally persistent systems with truly persistent processes.
The items of information MinorFs uses to identify a persistent process are:
- The executable and library files that have pages loaded into the process.
- The AppArmor profile the process is running with.
- The executable and library files that have pages loaded into any of the parent processes up to init.
- The AppArmor profiles that all of the parent processes up to init are running with.
- If the config states that it is needed for one of the executable or library files also:
- Config-specified enviroment variables.
- The command line.
- A slot number based on N-th claim. Each process accessing MinorFs will implicitly claim the first free slot for the unique combination of the above.