I'm absolutely impressed by vserver. It is simple, effective and redicilously easy to figure out. It took me a full 5 minutes a to setup a vserver and that was mostly because I didn't read the documentation before starting... --Rik van Riel

vserver patch stuff

Imagine mainframe style partitioning under Linux, but without the performance hit of multiple UML style kernels. Well Jack Gelinas was the man who came up with the solution and patches necessary to run multiple independent `vservers' on one physcial machine; it's close enough to the real thing (totally seperate machines) that say Red Hat can be running on one vserver, and SuSE on another.

But of cause we're not interested in either... Debian rocks, and that's all we're interested in around these parts.

Other possibilities

Fake Devices/syscalls for Reboot, Quotaing and anything that we currently emulate

eg. syscall() or ioctl() which then calls a userspace daemon in the host-server to process/proxy the request

Mergemem patch to save on memory (unify's identical pages, then copy-on-writes)

Bootstraping Debian

Debian works from downloading the packages from your local mirror
off the net, so we cache the packages after we've done this once.

(Poke our package cache into their vserver chroot.)

Call debootstrap to do all the hard work

Fix up /dev/ with minimal set of devnodes
  nodes: full null ptmx random tty urandom zero
  dirs:  pts shm

Create /etc/hostname

Create /etc/hosts

Fix up `/etc/resolv.conf'  (take nameservers from hostserver)

Create /etc/apt/sources.list

Fix up /etc/apt/apt.conf   (Copy APT proxy details from host-server)

Fix up /etc/motd     (Debian `Free Software' default MOTD is enormous)

Fake   /etc/fstab    (vservers aren't bothered about real partitions)

Fake   /etc/mtab     (`df' and friends want something to read)

Fix up /etc/inittab	(empty that doesn't start getty on everything)

Fix up /etc/crontab	(to randomize things like `updatedb' abit) 

-*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- 

Create a config file in	$HOSTSERVER:/etc/vservers/hostname.conf

(Enter the vserver and pretend to be the second half-installer)

EITHER:

  Run `/usr/sbin/base-setup'

OR:

  Run `tzsetup' to setup the timezone
  Reconfigure the `passwd' package to setup initial root/user accounts
  Run `tasksel' to easily select some initial packages

END-EITHER;

Remove networking and hardware-related sysvinit scripts

Remove networking and hardware-related packages (lilo etc)

-*- -*- -*- -*- -*- 

Install vreboot, vhalt, vshutdown   (dpkg-divert these?)