The GNU Hurd has a number of enticing features: It is a free software and anybody can do changes to it for learning purposes.
It's free software, so anybody can use, modify, and redistribute it under the terms of the.
It's compatible as it provides a familiar programming and user environment. For all intents and purposes, the Hurd provides the same facilities as a modern Unix-like kernel. The Hurd uses the GNU C Library, whose development closely tracks standards such as ANSI/ISO, BSD, POSIX, Single Unix, SVID, and X/Open.
Unlike other popular kernel software, the Hurd has an object-oriented structure that allows it to evolve without compromising its design. This structure will help the Hurd undergo major redesign and modifications without having to be entirely rewritten.
The Hurd is built in a very modular fashion. Other Unix-like kernels (Linux, for example) are also modular in that they allow loading (and unloading) some components as kernel modules, but the Hurd goes one step further in that most of the components that constitute the whole kernel are running as separate user-space processes and are thus using different address spaces that are isolated from each other. This is a multi-server design based on a microkernel. It is not possible that a faulty memory dereference inside the TCP/IP stack can bring down the whole kernel, and thus the whole system, which is a real problem in a monolithic Unix kernel architecture.
One advantage of the Hurd's separation of kernel-like functionality into separate components (servers) is that these can be constructed using different programming languages -- a feature that is not easily possible in a monolithic kernel. Essentially, only an interface from the programming environment to the RPC mechanism is required. (We have a project proposal for this, if you're interested.)
The Hurd is an attractive platform for learning how to become a kernel hacker or for implementing new ideas in kernel technology. Every part of the system is designed to be easily modified and extended.
It is possible to develop and test new Hurd kernel components without rebooting the machine. Running your own kernel components doesn't interfere with other users, and so no special system privileges are required. The mechanism for kernel extensions is secure by design: it is impossible to impose your changes upon other users unless they authorize them or you are the system administrator.
Technical advantages from a users viewpoint can be seen in the weblog entry Some technical advantages of the Hurd.