kmview - Kernel Mode implementation of View-OS
kmview [ options ] prog
The main goal of the View-OS project is to give each process its own
view of the system resources. For example, each process can mount
filesystems or hide some file or directories. It is also possible to
assign virtual network interfaces, IP addresses or define virtual
devices for each process (or for hierarchies of processes).
kmview is the kernel mode implementation of View-OS concepts. It works
on a linux kernel providing utrace and it needs the kmview kernel
module already loaded to work. It is a modular partial virtual
machine. kmview before loading any module is completely transparent, a
process behaves inside kmview as it would have behaved outside. Each
module can customize specific entities: there are modules to mount
filesystems at user-level (umfuse) , to define virtual networks (umnet)
, to define virtual devices (umdev) , to provide interpreters for
executables, e.g. to support executables for foreign architectures
(umbinfmt) , to hide, move, overlay parts of the file system (viewfs).
These are some examples of modules provided by the View-OS team.
kmview aims to provide a general interface to customize the system call
semantics of process under specified conditions. So more modules will
be added both by the View-OS team and by third parties.
kmview can also be used as a login shell in /etc/passwd (see
passwd(5)). When kmview is a login shell the mapping between each user
and his/her startup script is in the file /etc/viewospasswd (see
Load the specified startup script instead of the standard one
($(HOME)/.viewosrc). /etc/viewosrc is always loaded first, and
then either $(HOME)/.viewosrc or the script specified by -fB or
set the name of the view. The view can be read and set using vuname
or viewname commands.
-p module [ , module_options ]
--preload module [ , module_options ]
preload modules. Modules will be loaded as shared libraries thus
all the rules to load libraries apply. Modules must be loaded from
a directory within the ld.so search path or should be specified by
their pathnames. If necessary configure the LD_LIBRARY_PATH
environment variable appropriately. module_options are module
specific configuration options, thus the reader should refer to
each service module manual for a complete description. Modules can
be loaded at run time using the um_add_service command.
kmview is able to provide module nesting, i.e. a module can provide
services on the basis of virtual services provided by another
module or even by the module itself. For example it is possible to
mount a file system image which is stored in an already virtually
mounted filesystem. This feature requires the pure_libc library.
The -x or --nonesting option disables the nesting feature.
This option diverts the debugging output to the file specified, it
is useful when kmview has been compiled with debugging extensions.
Print the version and exit.
Print a short help message and exit.
user startup scripts information for kmview login shells.
global configuration script
user configuration script (it is not automatically loaded in case
of login shell. Add it at the end of the login script if needed)
um_add_service(1), um_del_service(1), um_ls_service(1),
um_mov_service(1), umfuse(1viewos), lwipv6(1viewos), umdev(1viewos),
umbinfmt(1viewos), viewfs(1viewos), vuname(1viewos), viewname(1viewos),
View-OS is a project of the Computer Science Department, University of
Bologna. Project Leader: Renzo Davoli. Development Team: P. Angelelli,
A. Bacchelli, M. Belletti, P. Beverini, D. Billi, A. Forni, L.
Gardenghi, A. Gasparini, D. Lacamera, C. Martellini, A. Seraghiti
Howto’s and further information can be found on the project wiki