Here we use the jurix distribution. You have to set up manually your
swap space before running the setup program.
When the system is up, the normal boot sequence does not invoke init;
with a init=/sbin/blah command line, we replace init with a shell
-- sets up the network
-- create a ramdisk of small size
-- format it and mount it as /var/run
-- run syslogd and klogd (syslogd creates a lock in the ramdisk); the
messages are sent via udp to another host
-- runs sulogin
This way we have MANY advantages:
-- very low memory consumption: no swap needed, and there is room for
a standard, 400 Kbytes kernel, with /proc support.
-- fast boot sequence
-- the disk is never mounted read/write, just read-only: no problem
when the power is shut down, no disk crash, no fsck needed
-- security: no telnetd, no inetd. To use the machine, one must come
with his keyboard and his screen and type the root password.
At least this is what was done last year. This year, we launch init
that runs the /sbin/blah script (that became /etc/rc.d/boot), and,
when root quits the shell given by sulogin, init continues with a
standard boot sequence: fsck, remount rw, swap space, a few gettys...
Our 386dx40 (which finally got his 8 Mbytes of ram) routes packets
between four cheap ne2000 clones at 700 Kbytes/s.
The jurix is cool because it is simple to understand and modify, and
the boot disk includes mkswap, mke2fs, fdisk, fsck,...