Slashdot Mirror


Hurd: H2 CD Images

An anonymous submitter sends in: "The Debian GNU/Hurd team released a new Hurd CD Image. Snapshot images are produced at a four to eight week interval and the H2 images are the tenth of the series. The Hurd has grown from one CD image in August 2000 (A1) to four images in December 2001 (H2). These images are snapshots of a developing operating system, so suitable precautions must be taken when making an installation. Similar to other architectures, most important programs reside on CD 1, while the other ones contain less important packages. For the moment, Hurd doesn't support card sound and partition size is still limited to 1 GB. Hurd use the Debian packaging system (dpkg and apt as for Debian linux) , so it is simple to install and update packages."

24 of 312 comments (clear)

  1. Hurd vs Linux vs *BSD by whirred · · Score: 4, Interesting

    Until Hurd is closer to Linux or BSD in partition size and overall capabilities, it isn't going to pick up much in the way of popularity.

    What they have now is a rather "chicken and the egg" syndrome - it won't achieve popularity until more people start developing for it, and people won't care enough to develop for it until it's more popular.

    However, the biggest drawback to Hurd is probably the fact that the people it might most appeal to (people who don't like linux or bsd style unix purists) are less likely to use it because they won't want to put up with the Hurd philosophy, when BSD is already there.

    Who is going to use it? Linux has all the bells and whistles for people who love the GPL, and the BSD people who like pure unix and freedom (I know, what is pure unix anyway) are going to stick with *BSD.

    1. Re:Hurd vs Linux vs *BSD by mbrubeck · · Score: 5, Interesting
      Who is going to use it? Linux has all the bells and whistles for people who love the GPL, and the BSD people who like pure unix and freedom (I know, what is pure unix anyway) are going to stick with *BSD.

      Time to repost the famous announcement again:

      Do you pine for the nice days of minix-1.1, when men were men and wrote their own device drivers? Are you without a nice project and just dying to cut your teeth on a OS you can try to modify for your needs? Are you finding it frustrating when everything works on minix? No more all- nighters to get a nifty program working? Then this post might be just for you :-)
      -- Linus Torvalds, October 1991
    2. Re:Hurd vs Linux vs *BSD by castlan · · Score: 3, Interesting

      It looks and acts just like Debian because it is Debian.

      There seems to be much confusion in the philosophical, technical, and intangible Free Software world, I wonder why?

      Debian is an operating system, that is an interface between the user and underlying hardware. If you will pretend with me that MS Wordpad is a reasonable word processor, then there is no reason to have to buy any other software for a basicly functional system. In this context, you can understand why MS had a valid reason to consider Internet Explorer an integral part of Windows... because the Web became significant. Earlier, MacOS included MacWrite, making WYSIWYG word-processing a significant part of the "operating System"... you get it now.

      The Kernel isn't important to the OS, other than that there is something interfacing the higher level systems to the low level hardware - consider Windows NT 4.0 and Windows 95. They have the same basic userland minus a few changes, even though the underlying systems are completely different, i.e. a 32 bit microkernel in NT versus an 8 bit monolithic kernel in 95. Both have 16 bit Windows components integrated.

      Likewise, Debian is a consistent operating system... namely, an incarnation of the GNU operating system. This GNU operating system is the realization of the GNU project, an OS that you can share freely with your friends without worrying about any corporations taking away that right.

      But Debian is Linux! Right? No, Debian uses Linux. Debian GNU/Linux and Debian GNU/Hurd are both GNU, with Debian policy and integrated management utilities. There are slight differences in the userland, major changes in the underlying system... but you don't directly use "Linux".

      Yes, that also means that RedHat is GNU.
      While Redhat uses Linux, that doesn't mean that RedHat "is" Linux. But for the sake of Redhat's marketshare, they are willing to ignore that fact. Wall Street doesn't care that "Guh-new" wants "hackers" to be "Free", or even that it is a clever little recursive acronym. They care that "Linux" is recognizable for investors of software developers, like "dot-com" and "information superhighway". Linux sounds cool, money is cool, that's why were here, put it on the label.

      If you are are using Windows NT, you aren't using the underlying hardware... the HAL, the microkernel components... at the lowest level most users see, your interface is the command interpreter. Usually you use the Explorer.exe interface. With Win 95, without the underlying components, the lowest you'll see is still the command.com text interface, ot the Explorer GUI.

      If you are using a GNU (GNU/Linux) distribution, you aren't using your computer's internal hardware, or the Linux Kernel. If would be very uncomfortable to try using Linux without at least a BASH interface running atop, to accept input from you the mere user.

      The issue isn't that of using the Hurd instead of Debian, Debian will use the Hurd as well as Linux. The issue is that of using The Hurd instead of Linux in your Debian system. Theoretically, the difference can be compared to using Win NT 4.0 instead of Win 95. That is, poorer hardware support, somewhat less simple subsystem configuration, but the promise of a microkernel proving to be more robust than a monolithic kernel like Linux.

      -castlan

  2. Re:what is hurd? by Magus311X · · Score: 5, Informative
  3. Re:What are technical advantages of Hurd? by squiggleslash · · Score: 4, Informative
    It's a different architecture to Linux. Linux has a monolithic kernel - the kernel is essentially one block of code, containing all the operating system services, the device drivers, etc. Some of the inflexibility of the approach has been alleviated by the use of modules, but those modules still become "part of the kernel" when loaded, sharing the same memory space, resources, etc, so we still refer to the Linux design as monolithic.

    HURD is a microkernel, based on Mach, an early experimental microkernel that, commercially, is the basis for some Unixes (Digital Unix, IIRC) and NextStep. Mach itself is tiny and deals with little more than task switching, IPC, and memory management. Processes run over Mach to provide the major services, so there's a TCP/IP server, and a file system server, etc, together with the device drivers. The whole lot, Mach + services is HURD (actually, I can't remember if HURD actually uses Mach directly or something based on it. Someone else can address that)

    Technical advantages? Depends on who you ask. Mach is not known for being a particularly good example of a microkernel, and Torvalds himself has dissed it. It's just a different approach ultimately. I believe, from experience, that it's generally easier to implement things like real time work in a microkernel because a more monolithic structure requires attention be spent in almost every part of a much larger kernel ensuring everything has a finite latency, but that doesn't mean it's impossible.

    Nothing in the above should be taken as meaning support for either architecture, but opinions on this score are so extreme that I'm expecting to be flamed anyway. Oh well, c'est la vie.

    --
    You are not alone. This is not normal. None of this is normal.
  4. Re:What are technical advantages of Hurd? by mindstrm · · Score: 5, Informative

    Because they want to work with something new.
    Because they have some ideas as to how the hurd could be adapted to their purposes.
    The list goes on.

    A lot of people are saying things like 'this will take years to reach the popularity of linux' or 'until it has all the bells and whistles'. Hello....

    Who ever said the hurd was supposed to be ready yet? I don't recall hearing it. The hurd is there for people to work on because they want to, period.

    There was a time when Linux was just as much of an ugly duckling, you know.. where nobody would use it for anything serious. It was something to be tinkered with, nothing more.

  5. microkernels may be the way out by markj02 · · Score: 5, Insightful
    I think this may be the way out for the current problems with the Linux kernel. The 2.4.17 Linux kernel distribution is almost 30Mbytes of sources, gzipped. Most drivers, installable file systems, and other kernel functionality, are either in the kernel source or need to be installed from sources. Getting the right ACPI or APM options requires endless recompiling and rebooting. A bug in any one kernel module will usually take down the whole system. None of the major Linux distributions has placed reconfiguration of the kernel within reach of the average user, and even for the experienced user it's kind of a pain. Imagine where Linux would be today if you needed to recompile the entire command line toolkit or all of KDE every time you install a new version.

    Microkernels attempt to give you a much more "UNIX-like" way of making a kernel: a lot of independent little "servers" that talk to each other and are somewhat isolated from each other. A bug in one kernel module will often not crash the whole system, and there is much less coupling between kernel components. Microkernels are not the most efficient way of achieving that kind of modularity, since the memory protection mechanisms they use are more costly than relying on compiler/language support together with dynamic loading, but given that people are going to continue to write lots of C code for the kernel, a microkernel may be the best compromise for achieving a modular, extensible kernel in the real world.

    Well, it's good to see that both the Hurd and the Darwin projects are coming along. I'll certainly give this a try. Its hard for any new kernel architecture to replace something as mature, functional, and widely-used as Linux. But if something like the Hurd turns out to be significantly easier to extend and hack, it may well catch up quickly. Another path to acceptance is that people find that, despite having fewer drivers and less functionality, the functionality that something like the Hurd offers may be easier to configure and deliver to end users in prepackaged form (i.e., without "make menuconfig" and lots of obscure decisions).

    1. Re:microkernels may be the way out by be-fan · · Score: 4, Insightful

      I think this may be the way out for the current problems with the Linux kernel. The 2.4.17 Linux kernel distribution is almost 30Mbytes of sources, gzipped.
      >>>>>>>
      A microkernel-based OS would be just as big. Unlike Microsoft, the Linux developers need to develop (and distribute) all of their own drivers.

      Getting the right ACPI or APM options requires endless recompiling and rebooting.
      >>>>>
      That's not the fault of the monolithic design. AtheOS, for example uses a modular monolithic kernel, and it can dynamically update kernel components.

      A bug in any one kernel module will usually take down the whole system.
      >>>>>
      But Linux is generally as stable as any microkernel, and monolithic kernels like FreeBSD are more stable than any existing microkernel (except maybe QNX).

      None of the major Linux distributions has placed reconfiguration of the kernel within reach of the average user, and even for the experienced user it's kind of a pain.
      >>>>>>>>
      And it would be the same on a microkernel. The compiling process isn't complicated, the configuring is. That configuring would still be present on a microkernel system, its just that less compiling would be necessary. Since compiling can be hidden behind a GUI tool, and the kernel only takes a few minutes to compile on modern hardware, this doesn't gain much.

      microkernel may be the best compromise for achieving a modular, extensible kernel in the real world.
      >>>>>>>>
      Experience has shown that a moduler monolithic kernel seems to be working quite well.

      --
      A deep unwavering belief is a sure sign you're missing something...
    2. Re:microkernels may be the way out by markj02 · · Score: 5, Insightful
      A microkernel-based OS would be just as big.

      Of course it would. But the different parts of it (drivers, file systems, personalities, distributed shared memory, clustering, video support, VM strategies, etc.) could be developed and tested by different developers, independently. With the Linux architecture, almost everything goes through the bottleneck of the Linux kernel developers, and it just isn't working in practice: important functionality takes years to make it into the kernel. It's not for lack of effort or dedication, it's the architecture and lack of modularity.

      The compiling process isn't complicated, the configuring is. That configuring would still be present on a microkernel system, its just that less compiling would be necessary.

      Of course, compiling is "complicated". It a process that involves many steps and is completely alien to many users. It also takes forever. And minor configuration problems result in complete failure. And if the module you want isn't part of the kernel distribution, things only get worse.

      With a microkernel, module installation could be as easy as installing a new command line program. You can still make configuration mistakes, but a lot of the time and effort can be eliminated. And with a really good microkernel architecture, you can also automate the process much more than it currently is.

      Experience has shown that a moduler monolithic kernel seems to be working quite well.

      It functions well. It doesn't "work well" in the sense of being easy to install, configure, or extend.

  6. Re:More importantly by Lemmy+Caution · · Score: 3, Insightful

    I think that KISS is no longer a part of the de facto Unix world. When you have hundreds of different ways of keeping things simple that have hundreds of simple kludges and workarounds to keep simply working together, the accumulated legacy cruft is, simply, no longer simple. It's a wonderful example of how incredible complex systems can emerge from the very simple behaviours of a few agents. Unfortunately, that makes it a royal pain in the ass sometimes.

  7. I run it. by pinkpineapple · · Score: 5, Insightful

    I installed it on my system on its dedicated spare disk, boot it, run it and update the release from time to time.

    It's not great as for device support but getting there. Drivers have always and will always be a problem for ANY OS (look at MacOS X and *BSD for living examples.) There are other features in the OS itself that make it forth a try.
    If you guys are curious about it, you should definitely give it a try. Some compatibility layer is also provide for Linux drivers and apps. This needs work but what doesn't really.

    The good thing is the upper layers which will provide POSIX compatibility for Unix developers to port their work. Pretty straightforward. The main reason why the distro has grown so largely in a small amount of time.

    I read false assumptions and mistaken comments on this list about what is HURD. It's a kernel like Linux, and it's based on a microkernel architecture. Mach 4.0 happens to be this micro kernel but the architecture is not locked down so this can evolve if needs to be.
    I read also people asking why does HURD exist at all. The answer is pretty simple: Why not? In the ten years it has existed, it should have died many times but it's still here. It's not a commercial OS like BeOS, some it doesn't need to generate streams of revenues to survive. It's just a bunch of code with ideas in it that are still pretty amazing today for it to still occupy developers to put efforts in it.

    After all, we are living in a society that should encourage diversity and growth of new ideas (the US haven't being built with pioneers.) So, I am getting sick and tired of the moronic way of thinking in black & white (binary): Only two alternatives (Linux vs. Windoz) and no space for the others . And why is that? Why not letting people who enjoy using BSD and developing with HURD just do it without being hassled by the 2 main opponents?

    Feeling grumpy because of the rain today.

    PPA, the girl next door.

    --
    -- I feel better now. Thanks for asking.
  8. Re:speed? by be-fan · · Score: 4, Informative

    Usually. The problem is that x86 just wasn't designed for microkernels (or operating systems in general, it seems). A system call (which is essentially nothing more than a jmp) takes 40 times longer than a regular function call (on my PII 300 anyway). That's the performance hit for a monolithic kernel like Linux. A context switch (which microkernels do tons of) takes two user/kernel transitions, plus one save of register state (~100 bytes on x86) and one restore of register state. In computer time, a context switch is glacially slow. Now, microkernels circumvent a lot of the slowdown through tricks like buffering commands (batches commands and sends them together in one message), but it still has more overhead than the monolithic kernel method. Of course, given that people think that KDE2 is a usable piece of software (speedwise), it seems that people don't notice speed differences anyway, so the point may be moot.

    --
    A deep unwavering belief is a sure sign you're missing something...
  9. Alternative to microkernel by be-fan · · Score: 5, Interesting

    The only reason microkernels exist is limitations in existing protection mechanisms. There are only two levels, kernel and user, and each must be protected from the other. My question is this: what about something like the x86 segmentation mechanism? x86 segments have the cool property that a piece of code has the privelege level of the segment containing it. The nifty thing about that is that there are 4 privlege levels, so that you can have the kernel at the lowest level, less important stuff like the GUI at a higher level, and the app at the highest level. That way nothing can crash a more important component. I was wondering why this scheme hasn't been extend to paging. On every memory reference, the processor could check the privelege level of the page containing the currently executing code, and make sure that the target memory has an appropriate privlege level. This makes things even faster than a mono-kernel, since the only thing that is necessary to do a system call is a simple jump to the appropriate code (which would be dozens of times faster than a standard system call on x86). This shouldn't be any slower than the current way of doing things. The privlege of the current code would only have to be read whenever a page boundry was crossed, and would only reference memory during a TLB fault (which would have to reference memory anyway). The proc already does a protection check on the kernel/user bit on the page table entry anyway, so that scheme could be extended to multiple privlege levels without a slowdown. Am I missing something, or does an existing processor already do this?

    --
    A deep unwavering belief is a sure sign you're missing something...
    1. Re:Alternative to microkernel by hughk · · Score: 4, Informative
      Unfortunately, this has become the original chicken and egg situation. Hardware designers had made four distinct privilege rings back to the early days (think for example, about the VAX architecture). Under VAX/VMS, RMS (the record orienatted file system) and databases ran in an intermediate mode (Executive). The fourth mode wasn't used. This gave them some extra capabilities without letting them crash the OS (Ok, they ocassionally did, but nor very often). The OS was fairly monolithic, but extremely stable.

      Under VAX/VMS, you didn't jump directly to the code though. The resulting page access fault would take to long to execute. You did a call that triggered a change-mode which went through a dispatcher. However this was relatively fast as no process switches were involved. Also, it meant that the argument list was always passed in a checked form (however, not the contents of the list, that was up to the system service).

      Unfortunately, Unix concentrated on the two levels only, User and Kernel. Some RISC microprocessor designers then decided that all this extra stuff was superfluous so they dumped the support from the MMU.

      So if you design for the lowest common denominator, then ok, you have two levels only. The uKernel makes it difficult because you have to context switch to process requests. If this is a heavily used system service, do you really want to do this? However, modern processors combined with a modern Unix, can context switch pretty fast.

      --
      See my journal, I write things there
  10. Portability is nicer by Improv · · Score: 3, Insightful

    It's best to avoid processor-specific functionality
    in large architectural decisions if you want to be
    portable. Besides, it's nicer for modern systems
    to have components that are layered better than
    a cake, so that if I have two very important parts,
    I know that they can't crash each other
    accidentaly.

    --
    For every problem, there is at least one solution that is simple, neat, and wrong.
  11. Re:Ok, so HURD is a microkernal os... by Graymalkin · · Score: 3, Informative

    IANAKEOAS ( I am not a kernel expert of any sort) but microkernels differ from monolithic kernels is many ways other than hardware drivers running as services. They only pass messages between components meaning EVERYTHING is a server. Want to run Linux programs on a Mach kernel? Just run a Linux server and the software will run just fine. A good example of this is MkLinux and Windows NT. Windows NT runs a Win32 as a server but by the same token can run a POSIX server so POSIX compliant software also runs on it. MkLinux is a Mach kernel running a Linux server to run Linux software. Microkernels in theory are platform agnostic as they only pass messages between various servers. Most people except Linus Tovalds really dig microkernels and have put alot of work into them. Another advantage is you can remain platform agnostic in design yet run servers specific to hardware you're running on. You can go from running on a StrongARM system with 16 megs of RAM to a 32 processor x86 system using a majority of the same code. Notable microkernel based OSes include Windows NT, MacOS X, and of course HURD.

    --
    I'm a loner Dottie, a Rebel.
  12. Re:not BSD ... but BFD ... by SuperDuG · · Score: 4, Insightful
    The idea is not that GNU is bad, just askewed in their views. I would be willing to bet that 95% of the people who write GPL software, myself included, would not agree with stallman. Then there's the debate of putting GNU on everything ... why ... GNU doesn't own it ... the author owns it ... and unless GNU wants to pay for my life like it does stallman ... my software won't be GNU ... it will however follow the GPL license ... well that is ... until I make it BSD code :-) ..

    --
    Ignore the "p2p is theft" trolls, they're just uninformed
  13. Switch to HURD! by jdavidb · · Score: 5, Funny

    We should all use Hurd instead of Linux. Linux numbers disk partitions from 1 (/dev/hda1, /dev/hda2, ...), while GRUB, the Hurd bootloader, numbers partitions from 0. As any self-respecting computer scientist knows, it is more proper to index things beginning with 0. Therefore, Hurd is a superior operating system, and we should all immediately switch to Hurd.

  14. Take your flamebait to the advocacy newsgroups by abe+ferlman · · Score: 5, Interesting

    Dude, nice attempt to bait the GNU people.

    You imply that people either love freedom or the GPL, but not both. Do we *really* have to have that conversation again here? Unless you're being paid by microsoft, this is just senseless infighting between two groups whose goals are almost totally in alignment.

    It reminds me of a time some friends of mine wouldn't speak to each other. Why? They were both animal rights advocates- but one group thought that it was a good idea to argue that animal testing was ineffective, and the other team thought this was a bad idea because it implied that if testing worked, it would be a good idea. As a result, the movement splintered, while the research advocates ("animal rights opponents") spoke with a unified voice. The internal strategic debate ruined the overall message they were both trying to send.

    The parallel to the BSD vs. GPL debate is striking. It is a fun and important debate to have, but ultimately the harm that comes from ubiquitous closed-source can't-build-on-it software, which satisfies the goals of neither camp, vastly overwhelms the importance of this philosophical discussion. It makes it seem like theologians arguing over how many angels can fit on the head of a pin. If I was Microsoft's head evangelist, I'd be silently funding extremists on both sides trying to create bad political blood between these groups.

    I'm not saying we shouldn't argue, obviously the issues need to be fleshed out. I'm just saying that these arguments ought to show respect for the other side (no more "we're more freedom-loving than you" namecalling), and that they ought to always be mindful of the context they are operating in - discussing the best way to create a body of free software in a world of proprietary de facto standards.

    So I'm begging with all of you, show respect for your adversaries in this discussion. Acknowledge that the point of view held by the other side is understandable even if you believe that it's in error, but most importantly always make a special effort to identify the context of the discussion: that is, how can we best preserve freedom against those who would prefer all software to be proprietary?

    --
    microsoftword.mp3 - it doesn't care that they're not words...
  15. It's the 21st Century! by Mr_Icon · · Score: 4, Funny

    If you write programs for linux today, you shouldn't have too many surprises when you just recompile them for Hurd in the 21st century.

    -- Linus Benedict Torvalds, 31 Jan 92 10:33:23 GMT

    --
    If you open yourself to the foo, You and foo become one.
  16. Re:Microkernels are a stupid idea. by J.+Random+Software · · Score: 3, Informative

    If a module runs with limited privileges, security flaws in it can't be exploited to subvert the rest of the system, and sysadmins can safely allow normal users to install (or even develop) special-purpose modules for themselves without risk to any users who don't want to use those modules.

  17. Re:speed? by Breace · · Score: 3, Informative

    The problem is that x86 just wasn't designed for microkernels (or operating systems in general, it seems)

    I can smell a flamebait when I read one. Sorry, but that statement is plain silly. ia32 has (as you asked earlier in an other comment) excellent features to support a microkernel (or any OS), such as multiple levels of privileges, extensive protection mechanism and relatively fast context switching.

    A system call (which is essentially nothing more than a jmp) takes 40 times longer than a regular function call (on my PII 300 anyway).

    A jmp?? Don't you want it to return??? Linux uses a software INTERRUPT to do system calls (bad decision in my opinion, ia32 provides fine call-gates that are a lot faster).

    A context switch (which microkernels do tons of)

    A microkernel does not have to do tons of context switches. I think what you are talking about is message-passing kernels. A microkernel does not have to based on message passing. It can use calls, and in fact the ia32 architecture lends itself very nicely to switch between privilege levels quickly, thereby providing protection that a monolythic kernel lacks.

    The prove that a well designed microkernel can be VERY fast is QNX.

  18. Uh, no.... by fm6 · · Score: 4, Informative
    Common mistake. Some history. Back in 1984, Richard Stallman decided that software license fees were Evil. He was particularly miffed at AT&T, which started thinking of Unix and Unix apps as a revenue source when they stopped being a regulated monopoly. So Stallman set out to write a free Unix clone he dubbed GNU. ("What's GNU? GNU's Not Unix." A pun and a recursive acronym. Classic MIT geekspeak.)

    GNU was never really finished -- if the HURD kernel is ever final, it will be the last piece. But when you clone a highly modular system like Unix, you end up with a lot of bits and pieces that are useful as separate products. So GNU's libraries, utilities, and (most of all) compilers developed a life all their own. Personally, I've never been impressed with the quality of GNU software, but it does have functionality that closed-source venders always seem to overlook. So GNU products are almost ubiquitous in the Unix world, and have a fair following on other platforms.

    So time passes. It's 1991. People are still waiting for an alternative to paying fees to whoever owns Unix. (It changed hands several times.) One cheap alternative is minix a sort of toy Unix that sells for $100. But a certain Finnish grad student can't even afford even that much. He decides to write his own Unix kernel. He gives away copies to a few friends. Who give it to a few friends... All of a suddent, lots of people are using this kernel to run all the GNU software. Which means there's now a free alternative to Unix! Project GNU has succeeded! It's just not complete.

    And since the final piece of the puzzle is a non-GNU program, that program ends up being the name for the whole conglomeration! Much to the disgust of Stallman. Maybe he's just testy because Torvalds doesn't like EMACS.

  19. Re:speed? by be-fan · · Score: 3, Interesting

    I would have to disagree. The kernel could easily provide services that would provide memory mapping to the driver. I don't see why not. In fact, with proper protection mechanisms in place there's no reason why any user app should not be able to figure out real memory addresses. I don't think that would be ugly.
    >>>>
    It would be quite ugly. There are several problems that crop up. First, each driver would have to dynamically map pieces of process address space into its own space during execution (paltry 4GB address space on x86). To do that, you not only have to make a round-trip to the kernel, but you have to mess with the process address space (which involves an AVL-tree lookup and attempts to merge regions). The kernel doesn't have to do this, because whenever a system call is invoked, the current process's address space is already mapped. Then there is the fact that it becomes a pain to manage all those shared mappings. There can easily be hundreds of processes in the system, and multiple drivers processes would have to map each one. Managing that many shared mappings quickly becomes very messy (and very dangerous, due to the extensive sharing of memory).

    --
    A deep unwavering belief is a sure sign you're missing something...