The microkernel has to provide memory management and user-level-managed page faulting, thread scheduling, and IPC.
One would have to reimplement the mach/
and sysdeps/mach/
parts of glibc
and libpthread. One would have to rewrite mig to generate the new IPCs. One
would have to rewrite libpager to handle paging.
All mach_
calls in glibc and hurd would need to be updated.
Quite a few other Hurd tools also assume a Mach kernel and would have to be adapted or rewritten.