En 1990, el sistema GNU estaba casi terminado. Faltaba crear un solo componente central, el kernel. Decidimos crearlo como una colección de procesos de servidor que se ejecutaría sobre Mach. Mach es un microkernel desarrollado en la Carnegie Mellon University y, más tarde, en la Universidad de Utah. El GNU Hurd es una colección de servidores —o «manada de gnus»—implantados en Mach que desempeñan las diversas tareas propias del kernel de Unix. Su desarrollo se retrasó mientras esperábamos la publicación de Mach como software libre, tal y como nos habían prometido.
Una de las razones que nos impulsó a elegir este diseño era evitar lo que parecía la parte más dura del trabajo: depurar un programa de kernel sin un depurador de fuentes. Esto ya se había resuelto en Mach, y esperábamos depurar los servidores Hurd como programas de usuarios, con el GDB. Pero pasó mucho tiempo hasta que lo logramos, y los servidores multiproceso que se envían mensajes entre sí resultan extremadamente difíciles de depurar. La consolidación del Hurd ha llevado muchísimos años.