Wednesday, March 18, 2009

HURD

So this week that I have off, I've used a few moments to try and run the experimental operating system HURD. HURD is a Unix-like (think "Linux"), but run by a microkernel, and implementing many of Richard Stallman's (the guy who wrote the GNU utilities that make Linux-based systems worth running),ideas about how computers should work.

Hurd has been under heavy development for more than 15 years, and still barely runs. Part of the reason for this is because they've never had more than 10 developers, almost all of them part-time. Linux draws all the spotlight, glory, and attention. However, I did get it to run, so let me tell you about the experience.

Most manuals suggest installing with ext2, which I did. Then I tried to start it. The ext2 server cannot seem to start up from the hard disk, no matter how hard I try. I was only able to boot it from the livecd, which was from there able to run the ext2 server to read the hard drive. This is bad. The error message is also remarkably unhelpful, claiming that there is a "gratuitous error." The web's suggestions about that only say that it is very bad and shouldn't ever happen. I can think of a number of things that could have gone wrong, but have no means to test them.

The system is supposed to be a Debian, which is fairly unfortunate. Debian is an excellent system for people foraying into the unix-likes, supporting Linux, HURD, BSD, and other platforms, but it does make certain assumptions about the system that made it literally impossible to function. I could not install new software to the hard disk because the root area is a cd, which is read-only. It assumes that if I want to work in a sub-area, that I can wall myself off with unix's "chroot" command. This, for some reason, crashes the machine. Other distributions have the ability to install things into a "new root," helpful for setting up subpartitions, new installations, and so on, but Debian's developers seem to consider this unnecessary, and provide only extremely minimal support for this.

Since last time I tried, they have thankfully fixed that bug in which pressing any key during the system startup would crash the machine, requiring a reboot. They have not fixed the bug in which reading a disk partition requires copying the entire thing into memory. Apparently, HURD developers have either extremely small hard drives, more extensive RAM than the average user, or both. While fixing this isn't within my prowess yet, it shouldn't be too hard for a systems developer. (I know exactly why they do it this way -- it's easier.)

HURD works very well for a UNIX-like system once it does get up and running. It supports many of Linux's filesystems, and has an easy framework for writing new drivers. Plans are in effect for exotic filesystems that no other OS would even consider, such as an FTP-based one. This would allow a person to treat FTP directories as part of their hard disk, making maintaining webpages and so on super easy. The microkernel architecture ensures that drivers shouldn't crash the system, since if they fail, they can be restarted or replaced. The system would also work great for upgrading, since a reboot is only necessary if the kernel itself is replaced, which would be very rare. Compare this to Linux (in which all drivers are in the kernel, reboots are needed to upgrade) and Windows (which needs reboots after installing new drivers, new software, new wallpaper, and if Steve Ballmer feels like it).

I would say that at the moment, HURD would work for a systems-programmer. It is still 3 years from being accessible to programmers in general, 10 years from power users, and 20 years from the populace at large.

EDIT: Next month, I got it to work. And then promptly broke it by attempting to upgrade it. Nice going tightly coupling everything, guys.

No comments:

Related Posts Plugin for WordPress, Blogger...