View-OS: A New Unifying Approach Against the Global View Assumption

One traditional characteristic of operating systems is that all the processes share the same view of the environment. This global view assumption(GVA) means that for processes running on the same computer, the same pathname points to the same file, the processes share the same network stack and therefore the same IP addresses, the routing characteristics are identical, etc. There have been many proposals for "bending" the GVA for either individual processes or for the system as a whole. Some of these proposals include microkernels or specialized virtual machines. Most proposals are for system administrators, others are tailored to specific applications. A View-OS is our unifying solution for altering the GVA. It allows a user to partially or completely redefine the behavior of an arbitrary subset of the system calls called from his processes, thus altering his view of the environment in terms of file system, communication, devices, access control etc. We have implemented it with a system-call, partial, modular virtual machine called *MView. Each divergence from the standard view may be implemented in a specific module. Hence instead of always having to load a complete kernel (e.g. User-mode Linux), the overhead of a per-process definition of the environment depends on the degree of divergence from the standard global view.