Slashdot Mirror


GNU/Hurd Gets POSIX Threads

An anonymous reader writes "Neal Walfield announced the first release of RMGPT, which is (or rather, aspires to one day be) a complete, portable implementation of IEEE Std 1003.1-2001 threads also known as POSIX threads. With this new pthreads library, it will soon be possible to run complex software packages on the Hurd, including the GNOME and KDE desktops, the OpenOffice suite, and the Mozilla web browser. Find more information here, including the humorous meaning behind RMGPT, and insight into a future Hurd release..."

32 of 382 comments (clear)

  1. Given the amount of work ... by gowen · · Score: 4, Funny

    ... that POSIX put in defining this standard, and how much extra functionality this library introduces, should we not refer to the OS as POSIX/GNU/Hurd.

    We don't want to downplay their involvement now, do we?

    --
    Athletic Scholarships to universities make as much sense as academic scholarships to sports teams.
    1. Re:Given the amount of work ... by ajs · · Score: 5, Funny
      I'm sorry, this is getting way too complicated. Clearly, what is needed is an XML format for describing such things. Observe:

      The operating system formerly known as, GNU Hurd is now:

      • <os derived="unix" derived="mach">
        • <kernel name="Hurd"> <distribution name="GNU"> <distribution name="Debian"> <contributor name="POSIX" description="threading, apis"> <contributor name="K&amp;R" description="programminglanguage"> <contributor name="Linux" description="actually running, and proving to the world that free software can produce an OS"> ...
        </os>
  2. Good ! by Anonymous Coward · · Score: 3, Interesting

    Looks like the Hurd server collection is starting to lift off. Since Debian is working on Debian GNU/Hurd, and now this new ability, all the Hurd developers need is some more driver developers.

    If they get that Hurd will start to become a world usable kernel, and it's always good to have some competition in kernel land :)

  3. Slashdotted! by PhoenxHwk · · Score: 4, Funny

    Warning: Too many connections in /prod/www/virtual/kerneltrap.com/www/htdocs/includ es/database.mysql.inc on line 7 Too many connections

    Oh my, looks like the server needs more POSIX/GNU/HURD threads itself :)

  4. Darwin and MkLinux? by Henriok · · Score: 4, Interesting

    What is the relationship between GNU/Hurd, Darwin and MKLinux? All is based around a Mach-kernel. Are there any familiarity between them that have any relevance? Does the continuing work on Darwin and GNU/Hurd benefit from one another, and if so, in what respect?

    --

    - Henrik

    - when the Shadows descend -
    1. Re:Darwin and MkLinux? by Arker · · Score: 4, Insightful

      You aren't the first to think that was odd. I've been interested in that question myself for awhile. I'm no authority, but I'll pass on what I've learned. First Matthias' post is fairly accurate with one major exception. He wrote:

      Software enginiering. Even if you compile everything in the same address space, it makes sense to separate functionality. This way, you keep a nice design, but do not pay the performance price for context switches.

      Right so far, although I'm sure that Linus, among others, disagrees with the notion that you can't do even nicer design in a monolithic kernel if you pay attention.

      BTW, what Apple has done with Mach is basically the same way MS went with NT (yes I know this week they call it XP, but I don't feel any obligation to obey the dictates of their marketing department so I'll keep calling it NT thanks,) starting with a microkernel but then moving certain systems back into kernelspace for performance reasons.

      Also separated address spaces do not reduce the chances of a kernel crash. Even if the BSD layer was in its own address space, a crash would still bring down the Mach kernel, as part of the BSD layer handles disks and so swap devices.

      Here's where I think he's wrong. What he's describing here is how it works in Darwin (and NT) yes, but only because they moved those systems back into kernel space. But the way it works on a proper microkernel system (like the HURD) doesn't just run these things in a separate address space but at a different privilege level, so instead of crashing the kernel you simply crash a daemon and have to restart it. This does mean drawing the lines a little differently than they have, of course.

      You wrote:

      Darwin is Mach and the BSD kernel merged together. They both live in kernel space. So why are they using Mach? I dunno.

      OK, my best guess is that it's simply a historical relic. When Jobs started work on NeXT, it was damn near universal opinion in CS that Microkernels were the way to go, so that's the way he had it done. NeXT, of course, went bankrupt, and was bought at fire-sale prices by Apple, which has now reworked that system into OS X. At no point along the way did it seem clear to the development team that there was any compelling reason to build a new core - the performance problems are minimised by violating the 'microkernel ethic' and moving the personality into kernel space, without actually rewriting the kernel from scratch. So there you go... probably not the way they would write the thing if they had to start over from scratch, but they don't, and it's good enough. Software development is like organic evolution in that way, even though people usually misquote 'survival of the fittest' what Darwin (as in Charles Darwin) actually said was 'survivor of the fit' - it doesn't matter if something's optimal, as long as it's good enough.

      --
      =-=-=-=-=-=-=-=-=-=-=-=-=-=-
      Friends don't let friends enable ecmascript.
    2. Re:Darwin and MkLinux? by Matthias+Wiesmann · · Score: 3, Informative
      Here's where I think he's wrong. What he's describing here is how it works in Darwin (and NT) yes, but only because they moved those systems back into kernel space. But the way it works on a proper microkernel system (like the HURD) doesn't just run these things in a separate address space but at a different privilege level, so instead of crashing the kernel you simply crash a daemon and have to restart it. This does mean drawing the lines a little differently than they have, of course.
      The problem, as I understood (can't remember where I read this) it is that in practice restarting the deamon that handles the swap disk is very tricky. Assume demon A is responsible for the swap infrastructure. If A crashes, the kernel has to restart it - but it has to do this without paging in or out any page (swap is not available anymore). Demon A must probably be reloaded from the file-system - but by design a micro-kernel should not know about file-systems.

      I don't know if the Hurd can manage this kind of recovery. What I'm sure about is that such an recovery mechanism would be complex - and implementing it hard work.

      I'm not convinced that the effort needed to enforce this kind of fault tolerance would be reasonable - on one hand you could tolerate failures of the Unix personality, on the other this would add complexity to both the kernel (to be able to restart demons/servers) and to the servers (they would need to be able to restore their state at restart) - IMHO, for a single OS machine, it sounds overkill.

      One case where I think such an architecture makes a lot of sense is if you implement many virtualised OSes on one single machine. For instance you would have n logical servers that share one micro-kernel - in this case, if one of the virtual servers fails, the others are not affected.

  5. acronym by Anonymous Coward · · Score: 4, Interesting
    The site is kinda slashdotted. Here's the explanation of the acronym:



    Regarding the name, RMGPT, Neal explains, "Most new program names are a bunch
    of letters stuck together. Only later does it become an acronym and the words
    become bound. This is boring; each new release of RMGPT will offer a fresh, new and
    exciting expansion of the 'acronym'." For this first release, RMGPT stands for
    "Rubbish, I asked for mine with Minced Garlic, Please Take this back".

    1. Re:acronym by richie2000 · · Score: 3, Interesting
      Sneaky...

      Isn't it? :-) I snuck that one into a software product helpfile once (Sendit ICSA/SPICE Instant mobile e-mail client for Windows, since bought and killed by Microsoft).

      --
      Money for nothing, pix for free
  6. an excerpt by Anonymous Coward · · Score: 4, Informative
    here's an excerpt:


    Neal Walfield [interview] announced the first release of RMGPT, which "is (or
    rather, aspires to one day be) a complete, portable implementation of IEEE Std
    1003.1-2001 threads [also] known as POSIX threads." I was excited to read Neal's
    announcement email, as this is a big step forward for the GNU/Hurd project. With this
    new pthreads library, it will soon be possible to run complex software packages on the
    Hurd, including the GNOME and KDE desktops, the OpenOffice suite, and the Mozilla
    web browser.

    Regarding the name, RMGPT, Neal explains, "Most new program names are a bunch
    of letters stuck together. Only later does it become an acronym and the words
    become bound. This is boring; each new release of RMGPT will offer a fresh, new and
    exciting expansion of the 'acronym'." For this first release, RMGPT stands for
    "Rubbish, I asked for mine with Minced Garlic, Please Take this back".

    Neal was kind enough to answer a few questions about his pthread efforts. Read on to
    learn more...

    JA: What does this first release of a POSIX threads implementation mean for the
    GNU/Hurd project?

    Neal Walfield: Beyond adding another important, commonly used interface, I think
    that a pthread implementation represents a large step forward in the public eye: we
    should soon have many more major software packages including GNOME, KDE,
    OpenOffice and Mozilla. The perceived lack of support for complex software was
    often assumed to be a result of a general lack of maturity on the part of the Hurd itself.
    In certain respects, this is correct: until now, there was no pthread implementation;
    there are still limits on the maximum size of file systems; and Mach only supports a
    limited amount of hardware. On the other hand, the Hurd was not designed to just
    clone an existing interface; the goal was to study what was available, explore the
    flaws and then redesign it. From this perspective, I think that Hurd has been very
    successful: the translator concept is incredibly powerful and flexible; and security
    wise, Unix just cannot compete.

    JA: You say that RMGPT aspires to one day be a complete, portable implementation
    of IEEE Std 1003.1-2001 threads, also known as pthreads. How complete is it today?

    Neal Walfield: With respect to the pthread interface, all of the prototypes are present;
    implementation wise, I think that we are about ninety percent done. The last ten
    percent consists of advanced scheduling features (e.g. mutex priority ceilings) and
    process shared resources (the ability to share, for instance, a mutex between multiple
    processes just using shared memory). Neither of these are terribly important from a
    usability perspective as not many applications take advantage of them, however, I am
    interested in implementing them. I think that the ABI should remain stable. I am
    relatively confident that the data structures are flexible and expandable enough to
    cover most future changes.

    There are also bugs, however, the implementation seems to be relatively stable under
    normal application load. Several people have compiled some different packages over
    the past few days and they seem to be crashing of their own accord, not pthreads'.

    JA: How long before you expect RMGPT to be fully completed?

    Neal Walfield: The goal right now is to stabilize and get some people to test the code.
    Then we can concentrate on finishing the scheduling and process shared attributes
    and worry about optimizations. It should be integrated into the Debian unstable system
    some time this week. Applications will follow.

    JA: How did you come up with the ever changing acronym RMGPT?

    Neal Walfield: Take, for instance Perl and UVM: the authors are victims of their own
    genius: even though they stated that the name did not mean anything in particular,
    people have tried to guess what their real intentions were thus, de facto interpretations
    have come into use. I am blatantly telling everyone that it RMGPT will have a new
    meaning every release: life does not get any simpler. Plus, it will be less stress for the
    users.

    JA: How close now would you estimate the GNU/Hurd is for another official release?

    Neal Walfield: Getting closer everyday. In fact, I hope that by this time in October,
    we will be a whole month closer.


  7. My apologies to RMS by FreeLinux · · Score: 3, Insightful

    But, I don't see the point. In the beginning Hurd made sense but, it floundered for so long that it has been eclipsed by Linux and the BSDs.

    Without being insulting, I'd just like to ask, what's the point of putting further effort into the Hurd, rather than concentrating on advancing Linux and or the BSDs?

    1. Re:My apologies to RMS by jbailey999 · · Score: 5, Informative
      The core design of the Hurd still isn't in use by any Free OS out there. The idea is to have as much as possible sit in userspace, and to have "translators" that allow any user to add hooks into the filesystem (making cool things like ftpfs and nfs possible without requiring root, and without requiring the sysadmin to install it for you).

      If you're interested, take a look at Towards a New Strategy of OS Design - It explains what we're doing different with the Hurd, and what the core servers are used for.

      Tks,
      Jeff Bailey

    2. Re:My apologies to RMS by Kilobug · · Score: 4, Interesting

      I won't even go into the overhead inherent in a micro kernel message passing architecture.

      That, and rest, means you are not aware of the research done in the last 5 or 10 years in the field of micro-kernel, with what we called the 'second generation micro-kernels', like L4. The cost of "message-passing" (or IPC to use a correct term) can be minimised and reduced by a factor of 10. With fast IPC, a lot things become possible, that are not in monolithic kernels, and even in many micro-kernel based systems. Look at some papers on http://www.l4ka.org/publications/ for more informations.

    3. Re:My apologies to RMS by Ektanoor · · Score: 4, Informative

      Hurd is an OS with a much more "correct" architecture ideology than Linux and BSD. In its core it is much more universal and modular. Unfortunately, there is a huge gap between the paper and reality. The way it has been developed showed many HURDles among the GNU community. The more lavish, intellectual and less pragmatic approach to development made HURD a pariah. That's why Linux came up and ran over it. Being a traditional monlithic kernel that nearly carried all the ills of a 20 year kernel ideology, the penguin won just by being more closed to Earth.

      However I hope that one day HURD will be able to hit the stands. It has been a pitty to see such a good idea living such a sad life. Frankly, we have been quite poor in kernels for the last years...

    4. Re:My apologies to RMS by gmack · · Score: 4, Insightful

      And they wonder why more people Listen to Linus ...
      Linus is not for free software? Then why the hell did he release his code under the GPL?

      No. Non-Free software is NOT needed to devlelop Linux. Linus and the bitkeeper folks have gone our of their way to make sure that it's even easier to sumbit patches the old way than it was before. And as he has stated he is willing to consider a free tool instead of Bitkeeper should one become as good.

      And if you read his book he explains that he in fact tried calling it GNU/Linux for a bit then gave up realising that even he can't fight what's become the defacto naming standard.

      Linus has done more for free software than the GNU folks want to admit. How many people would even be using free software if not for Linux?
      I wouldn't be.. "hey lets lose the useabillity battle but we can still win the war?"

      The fact that stallman has been moved out of the spotlight is pretty much his own doing. Reporters tend not to like people who side track press confrences to argue over naming.

      Linus on the other hand had to be coerced into having a book done and has a notable dislike for politics and correctness. I never see him grabbing the spotlight from someone else and demanding attention.

      While the GNU folks were busy trying to fight the whole battle at once and having press confrence Linus managed to build a working kernel and kickstart the free software movement.

      Yeah I run non free software from time to time.. no I don't like it. But I'd rather run one or 2 non free apps than be forced to use windows on my office desktop and run ENTIRELY non free software.

      I'm all for the free software ideals and I know it will bring a better age of software if it manages to take over.

      But seriously.. lets fight this one battle at a time and spend less time arguing views. Buisness seem to have an apathy for ideals.

      Linus pragmatic approach has brought the entire movement into the public software and he deservs more respect than he has been getting from the GNU people.

  8. Re:bad news for Linux? by aug24 · · Score: 3, Interesting

    Yeah, but equally you could say "Why didn't all the Linux developers join the HURD project".

    It's good to have variety. I don't care if Windows gets destroyed or not. It's rubbish, but I don't care, I don't want to see billg thrown to the lions, I just want to use softs that don't suck.

    Sooner or later, we will have machines that work properly - and it might even be that the HURD is the first one to get there.

    Fitness through diversity, my friend.

    Justin.

    --
    You're only jealous cos the little penguins are talking to me.
  9. Re:The HURT by Lendrick · · Score: 5, Interesting

    Developers! Developers! Developers! Developers! Developers! *gasp, pant, pant* Developers! Developers! Developers!

    The problem, I think, is that people really haven't taken a whole lot of interest in it so far, because in general it doesn't really do anything that Linux doesn't already do better.

    On the other hand, if it's really going to be able to run modern desktop environments now, perhaps people will start taking a bit more interest in it, and then developers will start to show up. I think it's just a matter of reaching critical mass.

  10. The link is /.ed by smallpaul · · Score: 3, Informative

    Here is another one

  11. Re:necessary flame by Anonymous Coward · · Score: 4, Funny


    These guys. I think that's all.

  12. Hurd is a multi-server by Per+Abrahamsen · · Score: 4, Informative

    The idea of a microkernel is to have multiple seperate servers running on top of it, providing some clear seperation between different parts of the system. Hurd is the only one of the three that does this, MkLinux and Darwin are both implemented as a single monolithic server on top of the Mach microkernel.

    Also, they are based on different versions of Mach. I believe Darwin is based on 2.5, MkLinux on 3.0 and Hurd on 4.0 but don't quote me on that.

  13. Re:The HURT by DrXym · · Score: 4, Insightful
    Ironically, HURD was around even before Linux was started. I suspect the reason Linux took off and HURD didn't has a lot to do with the leadership and goals for each project. Linus realizing that if you write a practical kernel 'they will come' and so they did while HURD well, just languished and wallowed in microkernel correctness hell.


    Ten years later and HURD still isn't practical (what's the big deal I wonder) while Linux can drive anything from palm devices to super computers and mainframes.


    It's no wonder RMS is so bitter and twisted these days :)

  14. Re:The HURT by DrXym · · Score: 4, Insightful
    The thing is that HURD had a big head start over Linux. The fact that it never attracted developers is IMHO in no small part to the perceived political nature of the FSF and RMS.


    Development is meant to be fun and Linus clearly put that and pragmatism ahead of the stupid pigheaded politics that the FSF (& RMS) is associated with.

  15. Re:Marx would be proud by Havokmon · · Score: 5, Funny
    Warning: Too many connections in /prod/www/virtual/kerneltrap.com/www/htdocs/includ es/database.mysql.inc on line 7
    Too many connections

    Socialism at its finest. .NET servers wouldn't have this problem.

    Good point. A .NET server would say, "Not enough licenses."

    --
    "I can't give you a brain, so I'll give you a diploma" - The Great Oz (blatently stolen sig)
  16. I don't think you understand the nature of OS by PhysicsGenius · · Score: 3, Insightful

    You see, the only way for non-Windows to beat Windows is for every single person to create their own operating system with slightly different interpretations of the standards. Once this low-level heterogeneity exists, software companies will need to create slightly different versions of each of their products to sell to us (or we could each create our own IRC client, calendar app, webmail frontend, etc). This virtually guarantees our freedom as well as making us immune to virii and girlfriends.

  17. programmers per project by bytesmythe · · Score: 3, Funny
    youll know that the progress of a project is NEVER proportional to the number of developers.

    Unless, of course, there aren't ANY developers, in which case it is directly proportional. ;)

    --
    bytesmythe
    Hypocrisy is the resin that holds the plywood of society together.
    -- Scott Meyer
  18. NT/Win2K and POSIX by Total_Wimp · · Score: 3, Interesting

    I've always found myself intrigued by that fact that Windows NT has a POSIX subsystem. However, security folks always tell you to disable it so I've gotten the distinct impression it isn't really used for anything (I've never personally seen a program that uses it.). Now this post comes along and it becomes obvious to me that POSIX is a big deal in the UNIX-like-OS world. Did MS just screw up their implementation or is it something potentially useful that nobody happens to use? TW

  19. I Think It Should be "GNU Hurd" by Milican · · Score: 3, Insightful

    Since Hurd is a GNU package then it should not be GNU/Hurd. Instead we should use GNU Hurd. Since Linux is not a GNU package then it is referred to as GNU/Linux. For more details see the FAQ.

    JOhn

  20. Re:HURD is taking the wrong direction by wackysootroom · · Score: 3

    While I think that your ideas of an OS that provides an easier user interface, IMHO, you are a bit off.

    The kernel _should_ implement more technical things like processes and filesystems, leaving the interface into this data up to the programmer that writes the abstraction that lives above the filesystem and process layer.

  21. new scheduling terminology too... by Polo · · Score: 5, Funny
    In addition to a new acronym terminology, I think he's created a wonerful new paradigm for scheduling too:
    JA: How close now would you estimate the GNU/Hurd is for another official release?

    Neal Walfield: Getting closer everyday. In fact, I hope that by this time in October, we will be a whole month closer.

  22. Re:Easy to separate HURD and Linux by gnu_wolfgang · · Score: 4, Interesting

    Hi! I don't think any of us is working on the Hurd "because RMS says so". The Hurd already provides many things that other systems will never be able to to. I love being able to add root privileges to a running Emacs when I quickly want to edit a system, configuration file. This is possible on GNU/Hurd, as are many other cute thinks. Cheers, GNU/Wolfgang

  23. RMS vs. Linus by Gerry+Gleason · · Score: 3, Interesting
    Excellent summary of the issues.

    Bottom line is that both of them and their "followers" (if this term can even be used in this context) have done a lot for free software. The RMS camp will continue to exert an important influence within the community and their work will be highly valued, but as you say "business seems to have and apathy for ideals."

    Pragmatism is very important for bringing useful things into the market quickly, and naturally that is where many people are coming from. On the other hand, in the long run, ideas (and ideals) do matter.

    It is important that the GPL is widely adopted, and there isn't a lot of confusion from variations on license terms, but that doesn't mean you should get religious about it. In the long run, these things will settle out, and they already are.

    The microkernel ideas behind Mach and all of its derivatives are an important advance in Computer Science, and the HURD project is where these ideas are being devoloped in full. They are not ready for full scale deployment, but when they are, they will be adopted quickly. That is the beauty of a single clear Free license (GPL), because there is no reason that these two projects can't exchange large pieces of code. If the Linux team wants to pull in the HURD microkernel in a major release cycle, there is no licensing issue. The only issue is whether it make technical sense. Nobody should worry that the HURD doesn't have many drivers, since it should be possible to import drivers from Linux. In fact it should be possible to import them wholesale if the interfaces can be matched.

  24. Re:What about exokernels? by Arker · · Score: 3, Informative

    The main purported advantage to microkernels are stability and flexibility, along with all the other good stuff that comes from modularity of course. A microkernel can run different personalities which present what we generally think of as a kernel interface to the outside, as user processors. So for instance the same box, the same microkernel, could be running a Windows personality for one user, a Mac for another, *nix for a third, all with effective root priveliges if need be, but without actually being able to do any damage outside their virtual sandbox... from a developers standpoint it's an incredible potential, I really can't do it justice but you should read this.

    The potential here has never been exploited, unfortunately. Every existing microkernel AFAIK has wound up ditching the microkernel design at some point down the road, aiming to produce a particular personality (whether win32, the near-BSD personality of Darwin, etc.) and integrating key features of that personality into kernel space for performance reasons, essentially nullifying the whole microkernel idea. The HURD is the exception, and yes it's been a long time making, and it's still not ready yet, but if it ever does hit primetime it will be a very interesting system.

    As to the performance hits, you're right that they are there, however there is a long history of some very smart people working on that problem, and it's gotten a LOT better. I think the current performance winner among microkernels is L4 and you can run a Linux personality on it without seeing a noticeable performance loss over running real Linux on the same processor - that's some very nice optimisation. There has been talk of porting the HURD to run on L4 instead of GNU Mach at some point, I think actually some people working on the problem areas, but for the moment there is no need - HURD is still very much in the developers only phase, it's not for production systems yet so performance isn't critical.

    --
    =-=-=-=-=-=-=-=-=-=-=-=-=-=-
    Friends don't let friends enable ecmascript.