[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: about hurd ?



belahcene wrote:

I heard about hurd? what is it ? is not linux ? if not, what is the difference ? why another system ? linux is not enough ?

Linux is strictly the kernel, the core, of the operating system that you know as Debian GNU/Linux (or Redhat, or SuSE, or Slackware, etc). Everything else, the "ls" command, the "grep" command, the X11 Windowing System, etc, are GNU utilities that sit on top of the Linux kernel. The Linux kernel plus these GNU programs make up a distribution of "Linux".

The HURD is a replacement kernel. You can still run the GNU utilities (and other apps, such as Mozilla, OpenOffice.org, etc) on top of the HURD (theoretically at least).

Or if you wanted, you could use the mach kernel as your kernel, and run the GNU utilities on top of that.

Or you could use a Solaris kernel, and run the GNU utilities on top of that.

etc etc etc

The big difference between the HURD and these other kernels is that the HURD is a microkernel, whereas the others are monolithic kernels (well, the mach kernel, as used in OS/X, is sort of a hybrid microkernel/monolithic kernel).

A monolithic kernel is a kernel that has all the core stuff built-in, like ethernet driver support, and video card driver support, and ReiserFS support, etc. Yes, you can use modules for these drivers, but they're still part of the kernel; they're just bolted on rather than being compiled in. It takes superuser access to add/remove these modules.

A microkernel, on the other hand, is a much smaller kernel that just does the bare basics, with a well-defined API for "modules" (known as "servers", IIRC, in the microkernel world). In such a world, anyone, even if they don't have superuser access, can add a video driver, or a file system driver, etc. Since these servers are so modularized, root access is not needed, and one user's ethernet driver can't interfere with another user's ethernet driver, etc. It's all separated nicely so that the end users can do what they need to do (access the CDROM's burning function) without requiring escalated privileges, and without adversely affecting other users and/or the system.

It's really a fascinating concept. There are some speed penalties because of the extra overhead to keep the servers in their own space, etc, but the advantages could possibly outweigh the disadvantages. For example, if you discover your ethernet driver has a glaring security hole in it, with a monolithic kernel you might have to recompile the kernel (or at least the module), and possibly reboot the machine to get the new kernel working. With a microkernel, you just rebuild the server and reattach it to the microkernel; no reboot required.

It's been a while since I looked at it, so my explanation might be deficient in several ways, but that's my general understanding of the HURD. Unfortunately, last time I looked, it was too immature of a project to be of much value except as a geek/programmer's playland.

--
Kent West
Technology Support
/A/bilene /C/hristian /U/niversity



Reply to: