According to GNU Hurd Architecture the GNU operating system was originally designed to be used with the GNU Hurd kernel which is a microkernel architecture.
How is it that hobbyists were able to combine the Linux kernel with GNU software to create GNU/Linux systems if Linux is a monolithic design? Does the Linux kernel replace GNU components like application IPC, device drivers, file system, etc. or was there a major effort to bring these GNU user mode utilities into kernel mode? If the latter is true, how difficult was it to do that?