VIEW-OS(1)

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

πŸ’– VIEW-OS(1) β€” umview, bestie πŸ’–

okay so this is from the General Commands Manual, and it's literally the whole mood of a project called View-OS. grab a snack, we're doing this πŸ“


✨ NAME ✨

umview β€” the user-mode implementation of View-OS, no cap πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

umview [ options ] prog

🌸 DESCRIPTION 🌸

so the whole big dream of the View-OS project is this: every single process gets its own view of the system resources. like, not a shared view, its own. a process can mount filesystems, or hide some file or directories, all by itself. and it's also possible to assign virtual network interfaces, IP addresses, or define virtual devices β€” for one process, or for whole hierarchies of processes. iconic behaviour honestly πŸ‘‘

umview is the user mode implementation of all those View-OS concepts. it's a modular partial virtual machine. and here's the part that eats: before it loads any module, umview is completely transparent β€” a process running inside it behaves exactly like it would have behaved outside it. zero difference. periodt.

then each module can customize specific entities. there are modules to:

  • mount filesystems at user-level (umfuse)
  • define virtual network interfaces (lwipv6)
  • define virtual devices (umdev)
  • provide interpreters for executables, e.g. to support executables for foreign architectures (umbinfmt)
  • hide, move, overlay parts of the file system (viewfs)

these are just some examples of modules the View-OS team ships. and the vibe is that umview aims to provide a general interface to customize the system call semantics of a process under specified conditions. so more modules are coming β€” from the View-OS team and from third parties. we love to see it 🫢


✨ OPTIONS ✨

  • -V name, --viewname name β€” sets the name of the view. the view can be read and set using the vuname or viewname commands. name your baby πŸ’–
  • -p module [ , module_options ], --preload module [ , module_options ] β€” preloads modules. they get loaded as shared libraries, so literally all the rules for loading libraries apply. modules have to be loaded from a directory inside the ld.so search path, or you specify them by their pathnames. if you need to, configure the LD_LIBRARY_PATH environment variable appropriately. and module_options are module-specific configuration options, so bestie, go read each service module's manual for the full description β€” I can't make those up. modules can also be loaded at run time using the um_add_service command ✨
  • -s, --secure β€” sets kmview in human mode, i.e. forces the check of capabilities and permissions. uid is 0 at startup, and that's how it's 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. so like, the training wheels come off πŸ”₯
  • -f rcfile, --rc rcfile β€” uses rcfile as the initialization file for kmview. kmview always executes /etc/viewosrc if it exists, and 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's possible to mount a file system image that is stored in an already virtually mounted filesystem. this feature requires the pure_libc library. the -x or --nonesting option disables the nesting feature.
  • -n, --nokernelpatch β€” umview is able to use some specific kernel extensions (when present) to increase its performance. the source distribution of umview includes the kernel patches for the latest kernels. the kernel extensions are enabled by default when available. this option disables the kernel extensions.
  • --nokmulti β€” this option disables the PTRACE_MULTI kernel extension.
  • --noksysvm β€” this option disables the PTRACE_SYSVM kernel extension.
  • --nokviewos β€” this option disables the PTRACE_SYSVIEWOS kernel extension (already experimental, not yet released). πŸ‘€
  • -o file, --output file β€” diverts the debugging output to the file specified. it's useful when umview has been compiled with debugging extensions. πŸ›
  • -v, --version β€” print the version and exit. bye bestie πŸ‘‹
  • -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 thing, you're so welcome πŸ’… and for the record, the tagline is literally "VIEW-OS: a process with a view" β€” main character energy fr fr β€” and this page is dated June 10, 2006, from the VIEW-OS(1) manual. mwah, go mount something πŸŽ€πŸ¦‹βœ¨

πŸ“¦ where this page comes from