Le Hurd se compose donc d'un ensemble de serveurs fonctionnant en interaction. Au lieu d'un seul programme imposant incluant absolument tout, de la gestion du synchronisme jusqu'au réseau, chacun de ses composants est géré par un serveur indépendant. Chaque serveur fournit un certain nombre de services, sous formes d'appels (RPC). Ces appels sont organisés en interfaces. Ces interfaces sont définies indépendamment des serveurs fournis par le Hurd : elles sont censées être stables (elles n'ont changé qu'une seule fois depuis 1999) et documentées.
Cela rend en principe le développement du Hurd plus facile. Pour remplacer un composant, il suffit de créer un serveur implantant ces mêmes interfaces. On peut aussi remplacer et/ou modifier les composants non essentiels (la majorité) sans arrêter le système. De plus, si l'un des composants plante, il ne doit pas entraîner l'ensemble du système.
Dans le développement initial de Mach, cette idée d'un ensemble de serveurs interagissant était considérée comme un des buts principaux concernant le design, mais le Hurd est apparu comme étant le premier système basé sur Mach, fonctionnant de cette manière. Quoi qu'il en soit, il est apparu que le groupe développant Mach était bien trop occupé à travailler sur Mach pour réfléchir au système d'exploitation dans sa globalité.
Un certain nombre de concepts ayant cours sur UNIX sont implémentés ou étendus dans le Hurd.
En particulier, il fait sienne la maxime Unixienne « tout est fichier » et l'étend pour répondre à une problématique courante des systèmes multi-serveurs : l'identification des serveurs et le contrôle d'accès à ceux-ci. En effet, deux serveurs, pour communiquer entre eux, doivent pouvoir se contacter. Sur Internet, ce sont les adresses IP et le DNS qui remplissent ce rôle. Dans le monde CORBA, ce sont les IOR. MachOS proposait un service de nommage qui permet de contacter un serveur par son nom. Cependant, ce système ajoute un élément critique au système (le serveur de noms) et ne règle pas la question du contrôle d'accès. Le Hurd prend le parti d'utiliser le système de fichiers comme système de nommage : à chaque fichier, il associe un programme. Ces programmes sont des serveurs ordinaires qui implémentent une interface particulière : celle des accès fichiers (lecture, écriture, changement des droits et de propriétaire, etc.) : ils sont appelés traducteurs (translator). Tous les serveurs du Hurd sont des traducteurs, exceptés auth et proc (pour lesquels toute tâche créée dispose automatiquement d'un moyen de communiquer avec ces serveurs). Les systèmes de fichiers sont un exemple de traducteur : ils sont associés à tous les fichiers fournis par ce système de fichiers. Ce qui correspond au montage sous UNIX est le lancement d'un traducteur de fichier sous GNU/Hurd. La nature des traducteurs (programmes ordinaires) rend plus aisé la conception de services spécifiques comme le traducteur ftpfs permet à l'utilisateur de naviguer sur un site FTP distant comme dans une arborescence locale, ou mirrorfs, qui permet à l'utilisateur de monter plusieurs systèmes de fichiers les uns sur les autres.
Sous Unix, chacun des programmes a un identifiant associé, user id ou ID, qui correspond normalement à celui de l'utilisateur qui l'a lancé. Cet ID dicte les actions permises par ce programme. Aucun processus externe ne peut changer l'ID d'un programme en mémoire, et aucun processus ne peut (normalement) obtenir un privilège qu'il n'a pas au démarrage. Sous GNU/Hurd, un processus tourne sous un ensemble d'identifiants, cet ensemble pouvant être nul (aucun ID associé) ou contenant plusieurs ID. Un processus ayant suffisamment de privilèges peut ajouter ou retirer des ID à un autre processus. Par exemple, il existe un serveur password qui retourne un ID lorsque le login est validé.
L'aspect le plus intéressant du Hurd réside dans la capacité qu'a l'utilisateur de lancer son propre système de services. Tout utilisateur peut attacher n'importe quel traducteur à un système de fichiers pour son usage personnel : un utilisateur peut même remplacer des serveurs systèmes, comme le serveur d'authentification, par celui de son choix. Tout cela peut se faire sans affecter les autres utilisateurs, grâce à des privilèges bien définis. En fait, il est même possible, toujours pour le simple utilisateur, de re-lancer un système GNU/Hurd, qui sera alors un sous-Hurd (un Hurd dans le Hurd).