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: