GNU/Hurd


GNU/Hurd - Embracing The Future......

The Hurd is basically a team of servers running on Mach microkernel. The original Mach microkernel has been stripped down to a minimum that is required., the new version that is maintained by the GNU project for the Hurd is called GNUMach.

The Hurd has a concept called translators. They literally translate file-system calls to whatever one wants to. For example, there is no mounting in the GNU/Hurd. In order to mount a filesystem., say /dev/hd0s1 (/dev/hda1) at /mnt/hd, one has to simply setup a ext2fs translator on /mnt/hd to handle all file related calls. Whenever a file is opened on anything under /mnt/hd, the call is sent to the translator. The kernel redirects the call and does nothing more. Thereafter, all the talking is between the translator and the program you are running. Now, one has to note that., the program does not need to use any protocol to talk to the translator. It just does its regular file-i/o and the translator would be able to understand it.

Now the significance of this:

1. Everybody knows of ~/.signature file. It contains a piece of text which gets appended to your mail. Now, the email-client takes the contents of this file and throws it into your mail. There are random signature generation programs. But these are email-client specific. Or, the client should have support for some such program.On the GNU/Hurd, one can simply write a translator and make it sit on ~/.signature. Everytime a read is done on ~/.signature, the file-i/o would be redirected to the translator you are using and hence, the translator would be able to give back any string, which can be appended. So, basically one need not modify their email-client at all. one can use their existing simple client, but get more functionality. :) Now this is just a simple example.

2.One can make a translator to view the contents of a disk image file. Something like Linux's loop-mount. Now, for loop mounting on the Linux-kernel, one has to be root. On the hurd., it is sufficient if you own the disk-image file and the directory on which the translator is going to reside. Note., /etc/fstab stuff on the Linux-kernel and other *Legacy* UNIXes are just hacks. The approach given by the Hurd is extensibility.

3. Ever wanted to _grep_ through the html files on a website?. Why use an application written specifically for that. Later if one wants to grep through files served by someother protocol,you'll have to get a client for that. Instead, setup the HTTP translator some where in the home directory and point the translator to the website under question. Now, all the files on the HTTP location would seem like regular files. Simply run `grep` or `tar` on them.. ;-)

4. Oh! I want to write a pppd., but what do I do for the modem.. I dont want to keep dialing out.. :S. Ans: use the Hurd. Write your own translator to emulate a modem and make it sit on a file in your home directory. Write a pppd and make it treat your local file as the modem. And, the rest is obvious. Go on.. use your creativity. :)

Ok., now the /etc/ directory is world readable., i.e. its rights are usually rwxr-xr-x. However, on a UNIX machine., this directory is exactly not world readable. You need a userid to login and read the file. World readable should be truely world-readable. :) The GNU/Hurd system has it. You dont have to login to work. The GNU system lets you do a lot of stuff without even loggin in. And, what user do you run your commands as?, _NO USERID_., yeah thats right.Processes need not always have a user-id :)

The GNU/Hurd has been built from the start to run on a collective. `collective`s are something like clusters., but are better called `distributed OS`es. Since the Hurd is a team of servers, with little abstraction at the micro-kernel level, these servers can be run on a group of machines and still make them seem like one huge SMP machine., a collective :) i.e. the GNU/Hurd was designed keeping `supercomputing` in mind.

The GNU system is highly extensible using Scheme., a superset of the Lisp programming language. Imagine a console which does Emacsen stuff ;-) Its like you login and you are dropped directly into a `eshell` like environment of Emacs. :)

Well, the GNU/Hurd is so professional and mature that it makes all other OSes seem so old and legacy. Many are eagerly waiting for it to stabilize so that they can kick *Legacy* systems off their box ;-)