Subject: Re: DHCP client, integration with ifconfig, etc.
To: Ted Lemon <mellon@fugue.com>
From: Chris G. Demetriou <cgd@cs.cmu.edu>
List: tech-net
Date: 02/09/1997 14:22:01
> What I would like to do is boot a diskless system with a small
> preinitialized memory disk, as in the SSTO kernel.  The init process
> runs a user process, dhclient, which gets enough information when
> doing the DHCP boot to mount root and go.  Dhclient continues to run
> and do the lease management part of the protocol.

This means that any diskless system using DHCP will have to waste a
"fair chunk" of memory (where "fair chunk" could very well be most of
or more than a MB, depending on the system type), permanently, to deal
with system startup.


This also has several 'interesting' results:

(1) you're mounting another (network) partition over your real root.
(Is that even possible (i forget)?  certainly it has the possibility
for interesting interactions with 'df' and users' expectations.)

(2) It makes rebuilding your kernel much more complex (no more simple
rebuild/reboot, you now need to build the kernel and stuff a ramdisk
image in it, etc.

(3) You now have hidden binaries.  What if your dhclient dies, or you
want to restart it for whatever reason?  You no longer can be even
remotely sure that the binary that was running is the binary in the
'normal' place on your file system.



I know very little about DHCP, but from what i've heard, a chunk of it
_has_ to go in the kernel anyway.  You need to do lease management (at
least expiration) in the kernel, because if you don't you could
potentially end up using an IP address after your lease has run out
(what if your daemon dies).  I'd say that the solution you propose for
boot is simply "too weird" (has too much overhead and too many
unexpected side effects) to be a good one, as well.



cgd