mult – in-kernel resource isolation for OpenBSD and NetBSD

DESCRIPTION

mult is an archived research project to create a high-performance instance multiplicity system. An instance multiplicity system has a forest of process trees, each rooted at init(8), instead of a single, global tree. Each tree, an instance, has a set of resources isolated from other instances.

mult effects multiplicity by isolating system resource in-kernel. It's implemented as a local branch of the NetBSD and OpenBSD operating systems, specifically as tagged in CVS at netbsd-5-0-RC2 and (waiting for stable RC) OPENBSD_4_4. The local branches are tagged as netbsd-5-0-MULT and OPENBSD_4_4_MULT.

Until otherwise stated, all instructions below focus on the OpenBSD version of mult. When the NetBSD version becomes usable, instructions will be added as appropriate.

Note: the below instructions will overwrite existing OpenBSD sources, built objects, and installed binaries. Be careful!

GETTING SOURCES

Since mult has been archived, the anoncvs and cvsweb functionality has been disabled, although the last snapshot is available. If you wish to obtain a copy of the CVS repository, please contact us.

snapshots

CVS sources are checkedout and snapshotted nightly in order to ease the load on our CVS and anoncvs servers. These may be found in the snapshots directory. Note that “src” is the full source tree, including kernel sources, while “syssrc” is just kernel sources.

# rm -rf /usr/src/*
# ftp -V -o- http://kristaps.bsd.lv/mult/snapshots/openbsd-src.tgz | tar -C /usr/ -zxf -

patches

To ease integration of mult sources with preëxisting OpenBSD sources, we also offer nightly unified diffs against the OPENBSD_4_4 tagged sources. The same “src” and “syssrc” conventions apply.

# cd /usr/src
# ftp -V -o- http://kristaps.bsd.lv/mult/patches/openbsd-src.diff | patch -p0

INSTALLING

mult installation follows OpenBSD FAQ 5.3. Brief instructions follow (copied from the FAQ). First, build and install the new kernel from downloaded mult sources:

# cd /usr/src/sys/arch/i386/conf
# config GENERIC
# cd ../compile/GENERIC
# make clean && make depend && make
# make install

Following that, reboot. Then, build and install the userland:

# rm -rf /usr/obj/*
# cd /usr/src
# make obj && make build

DOCUMENTATION

Various documents, publications, conferences slides, manuals and so on, are available in the archives of this site (note: your browser may not be able to view xhtml-strict pages). These pertain to the prototype NetBSD-3.1 implementation of mult and are not relevant to the current code-base.

Changes between the stock OpenBSD and NetBSD operating systems and mult may be found on the changes page.

SEE ALSO

vkernel, user-mode virtualiser in DragonFlyBSD; jail, an in-kernel, functional multiplicity system for FreeBSD; sysjail, a jail-like system atop systrace(4) for OpenBSD; Xen, a hypervisor for FreeBSD and NetBSD.

CONTACT

Please contact Kristaps, kristaps@bsd.lv, with questions or requests for archived sources of repository data.

Copyright © 2008, 2009 Kristaps Dzonsons, $Date: 2009/06/13 10:00:00 $