VIEW-OS(1)

πŸ“¦ version 0.8.2, in debian bookworm, ubuntu jammy, ubuntu noble

πŸ’– VIEW-OS(1) β€” General Commands Manual πŸ’–

okay bestie, you're looking at the manual page for kmview in the VIEW-OS family (it's filed under General Commands Manual, section 1, as one does πŸ’…). Let's get into it.


✨ NAME ✨

kmview β€” the Kernel Mode implementation of View-OS, and yes she ate πŸ‘‘


πŸ¦‹ SYNOPSIS πŸ¦‹

kmview [ options ] prog

🌸 DESCRIPTION 🌸

okay so picture this: the whole goal of the View-OS project is giving each process its own view of the system resources. literally every process gets main character energy. for example, each process can mount filesystems, or hide some file or directories. and that's not even the whole vibe β€” it's also possible to assign virtual network interfaces, IP addresses, or define virtual devices for each process (or for hierarchies of processes, which is giving family plan energy 🫢).

kmview is the kernel module implementation of those View-OS concepts. no cap.

it works on a linux kernel providing utrace, and it needs the kmview kernel module already loaded to work. important. it is a modular partial virtual machine.

here's the cute part: kmview before loading any module is completely transparent β€” a process behaves inside kmview exactly as it would have behaved outside. like, no notes, nothing changed, the vibe is untouched ✨

each module can customize specific entities, and the modules are:

  • umfuse β€” to mount filesystems at user-level
  • net β€” to define virtual networking stacks
  • umdev β€” to define virtual devices
  • umbinfmt β€” to provide interpreters for executables, e.g. to support executables for foreign architectures
  • viewfs β€” to hide, move, overlay parts of the file system

these are just some examples of modules provided by the View-OS team πŸ’œ

kmview aims to provide a general interface to customize the system call semantics of a process under specified conditions. so yeah β€” more modules will be added, both by the View-OS team and by third parties. the pipeline is strong πŸ”₯


πŸ’… OPTIONS πŸ’…

  • -V name, --viewname name β€” set the name of the view. the view can be read and set using the vuname or viewname commands. πŸŽ€
  • -p module [ , module_options ], --preload module [ , module_options ] β€” preload modules. modules will be loaded as shared libraries, so all the rules to load libraries apply, bestie. 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, so 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. ✨
  • -s, --secure β€” set kmview in human mode, i.e. force the check of capabilities and permissions. uid is 0 at startup β€” this way it is possible to load modules and mount services. when a process sets its uid as an unprivileged user (via setuid(2) or viewsu(1)), capability and permissions are enforced. πŸ”’
  • -f rcfile, --rc rcfile β€” use rcfile as the initialization file for kmview. kmview always executes /etc/viewosrc if it exists, then kmview executes the initialization file set by this option or ~/.viewosrc. πŸ—‚οΈ
  • -x, --nonesting β€” umview 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. πŸͺ†
  • -o file, --output file β€” this option diverts the debugging output to the file specified. it is useful when umview has been compiled with debugging extensions. πŸ›
  • -v, --version β€” print the version and exit. ⭐
  • -h, --help β€” print a short help message and exit. πŸ™ˆ

πŸ‘€ SEE ALSO πŸ‘€

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)


πŸ‘‘ AUTHORS πŸ‘‘

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 β€” <http://www.sourceforge.net/projects/view-os>

Howto's and further information can be found on the project wiki β€” <wiki.virtualsquare.org>. 🧚


okay that's the whole page, you're officially a kmview girlie now πŸ’–

this whole thing is VIEW-OS: a process with a view, dated August 18, 2007 β€” yeah she's vintage, she's an icon, she's VIEW-OS(1), and she said periodt. πŸ’…βœ¨

πŸ“¦ where this page comes from