Re: minimal Hurd system
Marcus Brinkmann wrote:
>
> 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).
>
Ahh, cool, i have been in awe of your script for a while now :)
> > 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:
>
I wasnt sure about this, now im sure it can be done.
> /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
>
Busybox now has a shell builtin, its nicknames LASH (Lame Ass SHell),
its very much in development, but it works and its small, fancy shell
scripts are likely to have problems though.
Looks like i have somthing to experiment with today !
Thanks
Glenn
Reply to: