Module Name: src Committed By: pooka Date: Tue Dec 2 01:52:13 UTC 2014
Modified Files: src/sys/rump/librump/rumpkern: rump.3 Log Message: most of this manpage moved to rumpkernel.7, so simplify a lot To generate a diff of this commit: cvs rdiff -u -r1.11 -r1.12 src/sys/rump/librump/rumpkern/rump.3 Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/rump/librump/rumpkern/rump.3 diff -u src/sys/rump/librump/rumpkern/rump.3:1.11 src/sys/rump/librump/rumpkern/rump.3:1.12 --- src/sys/rump/librump/rumpkern/rump.3:1.11 Sun Nov 9 17:39:38 2014 +++ src/sys/rump/librump/rumpkern/rump.3 Tue Dec 2 01:52:13 2014 @@ -1,4 +1,4 @@ -.\" $NetBSD: rump.3,v 1.11 2014/11/09 17:39:38 pooka Exp $ +.\" $NetBSD: rump.3,v 1.12 2014/12/02 01:52:13 pooka Exp $ .\" .\" Copyright (c) 2008-2011 Antti Kantee. All rights reserved. .\" @@ -23,168 +23,33 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd July 14, 2013 +.Dd December 1, 2014 .Dt RUMP 3 .Os .Sh NAME -.Nm rump -.Nd Rump Kernel +.Nm librump +.Nd Rump kernel base .Sh LIBRARY -rump Library (librump, \-lrump) +rump kernel base (librump, \-lrump) .Sh SYNOPSIS .In rump/rump.h +.In rump/rump_syscalls.h .Sh DESCRIPTION -A rump kernel is a virtualized kernel instance which retains only part -of the -.Nx -kernel. -Rump kernels are aimed at virtualizing kernel drivers and do not support -for example creating processes, managing virtual memory address spaces -or scheduling threads. -These features are unnecessary overhead when virtualizing drivers. -Rump kernels are created by linking a desired set of components together. -On -.Nx , -these components are available as userspace libraries with -the prefix -.Pa librump . -The high-level -.Xr rumpuser 3 -hypercall interface is used by a rump kernel to request resources and -services from the host it runs on. -Like any virtualized kernel, a rump kernel also provides its own set -of namespaces, such as a file system hierarchy and TCP ports, -that are independent of the ones on the host and of any other rump -kernel instances. -It should be noted that the presence of the provided namespaces -depends on the components that the rump kernel was constructed with. -.Pp -Since a rump kernel does not provide support for applications processes, -existing entities are used as rump kernel clients. -The relationship between the client and the rump kernel defines the -execution model of the rump kernel. -A local client will reside in the same address space and manipulate the -rump kernel with function calls and direct memory references. -Remote and microkernel clients are disjoint from the rump kernel -and make requests though various protocols, see for example -.Xr p2k 3 , -.Xr rump_sp 7 , -and -.Xr rumphijack 3 . -Remote clients will also work over a TCP/IP network, or other similar -communication medium. -.Pp -A rump kernel is bootstrapped by calling -.Fn rump_init . -On a POSIX Host, environment variables can be used to adjust some -operating parameters: -.Bl -tag -width RUMP_MEMLIMITXX -.It Dv RUMP_NCPU -If set, the number indicates the number of virtual CPUs configured into a -rump kernel. -The special value "host" can be used to specify the number of -of host CPUs available. -If the value is unset, two CPUs will be configured. -.It Dv RUMP_VERBOSE -If set to non-zero, activates bootverbose. -.It Dv RUMP_THREADS -If set to 0, prevents the rump kernel from creating any kernel threads. -This is possible usually only for file systems, as other subsystems -depend on threads to work. -.It Dv RUMP_MEMLIMIT -If set, indicates the maximum amount of memory that a rump kernel will -request from the hypervisor via -.Fn rumpuser_malloc . -When the rump kernel is close to the allocation limit, it will attempt -to make more memory available by flushing its caches. -The default is as much as the host allows. -.It Dv RUMP_NVNODES -Sets the value of the kern.maxvnodes sysctl node to the indicated amount. -Adjusting this may be useful for example when testing vnode reclaim -code paths. -While the same value can be set by means of sysctl, the env variable -is often more convenient for quick testing. -As expected, this option has effect only in rump kernels which support VFS. -The current default is 1024 vnodes. -.El +The base of a +.Xr rumpkernel 7 +is provided by the +.Nm +library. +In addition to fundamental routines such as kernel memory allocators +and locking, +.Nm +provides system call wrappers. .Pp -The standardized way for a client to make requests into a rump kernel -is to use rump kernel system calls, which have equivalent syntax and -semantics with regular -.Nx -system calls. -The parameters are expected to be in the -.Nx -type system unless a system -call translation component, for example librumpkern_sys_linux, -is linked into the rump kernel, in which case system call parameters -will be automatically translated from the client type system into -the -.Nx -type system and back. -The rump kernel system calls are made available to a client by -including -.In rump/rump_syscalls.h . -It is also possible to configure unmodified binaries to make syscalls -into a rump kernel with -.Xr rumphijack 3 . +Like the +.Xr rumpuser 3 +library, +.Nm +is a mandatory component and is present in every rump kernel. .Sh SEE ALSO -.Xr rump_server 1 , -.Xr p2k 3 , -.Xr rump_etfs 3 , -.Xr rump_lwproc 3 , -.Xr rumpclient 3 , -.Xr rumphijack 3 , .Xr rumpuser 3 , -.Xr ukfs 3 , -.Xr rump_sp 7 -.Rs -.%A Antti Kantee -.%D 2012 -.%J Aalto University Doctoral Dissertations -.%T Flexible Operating System Internals: The Design and Implementation of the Anykernel and Rump Kernerls -.Re -.Rs -.%A Antti Kantee -.%D June 2009 -.%B Proceedings of the 2009 USENIX Annual Technical Conference -.%P pp. 201-214 -.%T Rump File Systems: Kernel Code Reborn -.Re -.Rs -.%A Arnaud Ysmal -.%A Antti Kantee -.%D September 2009 -.%B EuroBSDCon 2009 -.%T Fs-utils: File Systems Access Tools for Userland -.Re -.Rs -.%A Antti Kantee -.%D March 2009 -.%B Proceedings of AsiaBSDCon 2009 -.%P pp. 71-80 -.%T Environmental Independence: BSD Kernel TCP/IP in Userspace -.Re -.Rs -.%A Antti Kantee -.%D March 2010 -.%B Proceedings of AsiaBSDCon 2010 -.%P pp. 75-84 -.%T Rump Device Drivers: Shine On You Kernel Diamond -.Re -.Rs -.%A Antti Kantee -.%D May 2009 -.%B BSDCan 2009 -.%T Kernel Development in Userspace - The Rump Approach -.Re -.Pp -Web page with more information, including links to the publications: -.Lk http://www.NetBSD.org/docs/rump/ -.Sh HISTORY -Rump kernels appeared as an experimental concept in -.Nx 5.0 . -The first stable version was released in -.Nx 6.0 . -.Sh AUTHORS -.An Antti Kantee Aq Mt po...@iki.fi +.Xr rumpkernel 7