Installation: Copy pseudo.h into the kernel 'include/sys' directory as well as the system /usr/include/sys directory. Put pseudo.c into the kernel 'kernel/blk_drv' directory. Apply the kernel.diff patch in your kernel directory. Recompile kernel and reboot. mknod /dev/psm0 b 12 0 mknod /dev/pss0 b 11 0 Type make to make the ramdisk and file device drivers. type ram /dev/pss0 1000 & mkfs /dev/pss0 1000 mount /dev/pss0 /tmp Your /tmp directory is now mounted on a userspace ramdisk. Or copy your root disk into a file and type file /dev/pss0 [file name] & mount /dev/pss0 /mnt ls -al /mnt You have just mounted a file as /mnt There can be upto 16 pseudo devices running (minor numbers 0-15). A simple interface is provided in pseudo_lib.c (take a look at ram.c to see how its used). If a definite block size is needed filter.c can provide block size conversions. As soon as the TCP/IP code is running it would be trivial to make code to remotely mount a disk. WARNING: This is a test version and the "nice" shutdown code for a device doesn't work yet. Changing from one device driver to another on the same minor device may do strange things since old pages may still be in the disk cache. I have also had some lock up trouble when running multiple device drivers at the same time,