[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: minimal Hurd system



On Tue, Sep 19, 2000 at 01:47:05PM +1100, Glenn McGrath wrote:
> Im trying to make a small hurd system.

Wonderful!
 
> Currently i have got a bootable ststem at 5.6 MB, of this
> 
> /hurd directory is 2.7MB
> /lib is 	1.7MB
> /boot is 	892 KB
> /bin is 	204KB (busybox binary)
> /libexec is 	48KB
> and a few small directories here and there.
> 
> I havent tried to do library reduction yet, libc is 1MB, i think i may
> be able to reduce it down to 500KB or so.

Yes, and libmachuser and libhurduser, too. This should work with my
mklibs.sh script (which I wrote for exactly this situation).
 
> I havent touched the /hurd directory its the same as in the 12MB .tar.gz
> image, im not exactly sure what i can remove from here (if anything).

The statically linked filesystem stuff is only needed for the root
fliesystem and can be on another disk. It is possible to have grub, gnumach,
ext2fs and ld.so on one disk (with a special servers.boot script I attach),
and the root filesystem on another disk. This should get you much closer.
 
> Before i started playing with the Hurd i was thinking i might be able to
> make some hurd floppies, but now im having my doubts.
> 
> Does Hurd suppport ramdisks, or how could a two or more floppy system
> work, could we have a boot and root floppy ?

Yes, this is what I described above.
 
> If we had a boot and root floppy /boot could fit on the boot floppy then
> /libs and /bin (and /sbin, /usr/sbin, /usr/bin) might just squeeze onto
> a root floppy with library reduction.

This is what I hope. Remember that the Hurd supports a compressed root
filesystem. So you make your diskimage, gzip or bzip2 it, and then load it
this way in serverboot.gz:

/hurd/ext2fs.static --bootflags=${boot-args} --host-priv-port=${host-port} --device-master-port=${device-port} --exec-server-task=${exec-task} -Tbunzip2:device ${root-device} $(task-create) $(prompt-task-resume)
 
Note the bunzip2, which can also be gunzip. Note the prompt-task-resume,
which prompts for a key before trying to load the root filesystem (so a user
can change the floppy).

I think ext2fs.static is loaded completely into memory, and you don't need
it on the root fs. Same for ufs.static. What we need:

auth
crash
exec
ext2fs      # to mount ext2 fs's
fifo        # Not sure...
ftpfs       # optional
ifsock      # Not sure
init
isofs       # for CD fs
magic       # device files
nfs         # for nfs install
null        # /dev/null
password    # optional for root fs, as we are always root
pfinet      # network
pflocal     # pipes
proc
storeio     # block devices
streamdev   # character devices (new)
term
ufs         # ufs, probably optional

> But then i asume the /hurd directory would be needed very early on...
> this is what is causing me doubts.

Yes, we absolutely need those, but it IS doable. We also need ash. I almost
squeezed the entire system (with bash, fileutils etc) on one root disk, so with
ash and busybox, it should be possible to do it.

Thanks,
Marcus

-- 
`Rhubarb is no Egyptian god.' Debian http://www.debian.org Check Key server 
Marcus Brinkmann              GNU    http://www.gnu.org    for public PGP Key 
Marcus.Brinkmann@ruhr-uni-bochum.de,     marcus@gnu.org    PGP Key ID 36E7CD09
http://homepage.ruhr-uni-bochum.de/Marcus.Brinkmann/       brinkmd@debian.org



Reply to: