3.7.1 Amd as a User-Level File System Driver

User level code will be linked with Amd, which can serve as a driver for
the NFS module in the same way that the kernel serves as one for a stackable
vnode module. I will augment Amd with the GNU libdl package, a
library of calls for using user-level dynamic linking. FiST-produced
modules will be automatically and dynamically loaded and unloaded.

There are two major benefits to using Amd.

Most importantly, I can use normal tools like GDB to debug FiST
generated languages as I develop the system. Fixing out-of-kernel bugs is
much easier than fixing in-kernel bugs.

Second, many people know and like Amd, and might be more willing to
accept FiST because it is tied to Amd.

As of this writing, much work on Amd was done to prepare it for FiST. I
have converted Amd to using GNU Autoconf, and in the process learned much
and wrote many useful M4 tests [MacKenzie95]. Amd is near
ready to handle FiST generated file system modules.