Become a fan of Slashdot on Facebook

 



Forgot your password?
typodupeerror
×
GNU is Not Unix

GNU/Hurd Gets POSIX Threads 382

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..."
This discussion has been archived. No new comments can be posted.

GNU/Hurd Gets POSIX Threads

Comments Filter:
  • by gowen ( 141411 ) <gwowen@gmail.com> on Monday September 30, 2002 @11:31AM (#4359644) Homepage Journal
    ... 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?
  • Good ! (Score:3, Interesting)

    by Anonymous Coward on Monday September 30, 2002 @11:31AM (#4359646)
    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 :)
  • by PhoenxHwk ( 254106 ) on Monday September 30, 2002 @11:34AM (#4359665) Homepage
    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 :)
  • Darwin and MkLinux? (Score:4, Interesting)

    by Henriok ( 6762 ) on Monday September 30, 2002 @11:35AM (#4359676)
    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?
    • by Per Abrahamsen ( 1397 ) on Monday September 30, 2002 @12:03PM (#4359969) Homepage
      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.

      • Can anobody explain what are the benefits and drawbacks of an exokernel based system compared to a microkernel one? From what I understand, both are similar in that they have a minimal kernel. The difference is that microkernels use daemons to provide services to client programs while exokernels have the same functionality in user space libraries. At least exokernel advocates seem to be saying that exokernels are quicker than microkernels (and potentially quicker than traditional monolithic kernels too) because there is no need to context switch when you need system services. And microkernels need some kind of IPC to communicate with the daemons, which adds even more overhead, right?
        • Hi! Maybe someone might disagree, but in my understanding the Exokernel project was basically a second-generation microkernel, similar to L4. Cheers, GNU/Wolfgang
        • by Arker ( 91948 )

          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 [gnu.org].

          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 [tu-dresden.de] 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.

  • acronym (Score:4, Interesting)

    by Anonymous Coward on Monday September 30, 2002 @11:37AM (#4359697)
    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".

    • Yeah, if there's one thing the HURD/HIRD community is good at, it's pushing the envelope on increasingly tedious, cutesy, inside-joke acronyms.

      Come to think of it, that's the only thing they're particularly good at.
      • I would have guessed Richard M's General Public Threads. Not that it would make any more sense.

        Earth to GNU/Crew: if you want people to use it, at least name it something that someone can understand.

    • Acronyms are strange creatures. Witness PCMCIA which, since people can't memorize computer industry acronyms, was renamed PCCard. However, my favourite acronym (apart from Special High-Intensity Training) would be TWAIN. This whole thing is clearly Slashpoll material:

      Favorite acronym:

      1. TWAIN
      2. PCMCIA
      3. RMGPT
      4. HHGTTG
      5. POSIX
      6. TLA
      7. ETLA
      8. GNU/CowboyNeal
      • Heard they had a good one in the early NATOPS [navy.mil] (Naval Air Training and Operating Procedures Standardization) book for the E-2C:
        Fast Update Control Knob...
      • Witness PCMCIA which, since People Can't Memorize Computer Industry Acronyms...

        Sneaky...

        • Re:acronym (Score:3, Interesting)

          by richie2000 ( 159732 )
          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).

    • It would be ironic if ahremgippity were to become
      an adjective to describe slow/fast (whichever
      way it works out in the end) thread performance,
      thus thwarting the "no default interpretation"
      intention of the authors.
    • My proposal for the next version's expansion of RMGPT:

      RMS Mandated GNU/POSIX Threads.

  • an excerpt (Score:4, Informative)

    by Anonymous Coward on Monday September 30, 2002 @11:42AM (#4359746)
    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.



    • Shouldn't that be -1 Redundant rather than 5 (Informative?!). There is no problem following the link to read the article. The site is not slashdotted.

      How rude.
  • by FreeLinux ( 555387 ) on Monday September 30, 2002 @11:43AM (#4359751)
    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?
    • by jbailey999 ( 146222 ) on Monday September 30, 2002 @11:51AM (#4359832) Homepage
      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 [gnu.org] - It explains what we're doing different with the Hurd, and what the core servers are used for.

      Tks,
      Jeff Bailey

    • by Ektanoor ( 9949 ) on Monday September 30, 2002 @12:37PM (#4360345) Journal
      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...
    • Linux and BSD both represent the "monolithic design" approach to kernels. And that approach is running into trouble, at least on Linux.

      For example, on Linux, there are very few drivers that are shipped separately from the kernel. Lots of hardware can only be used if you pull over the kernel source tree, patch it, recompile it, and install it. That makes it unusable for many potential users and applications. Even for people who know how to do that, it's a big pain. Similarly, there are many things people would like to do with networking, file systems, and other kernel functions that are just hard to do in Linux.

      I don't know whether the Hurd addresses any of these issues. But there is definitely a need for more kinds of free kernels. We shouldn't be locked into a single approach to free kernels.

    • 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?

      Why should it have anything to do with Linux and BSD?

    • Someone at my LUG [swflug.org] demo'd Hurd and it looked very intriguing. The kernel was tiny and everything interesting happened on userspace. He mounted ftp sites and so on into the filesystem under his home dir without superuser privileges.

      I believe in competition. If they think this is a better way to design a kernel, more power to them. I'll even switch to Hurd if they make it inticing enough.

    • This article has one selling point: The Hurd has POSIX threads. Linux doesn't. I'm not kidding and this is not FUD. You try fork()ing a process in one thread and wait()ing for it in another thread if you don't believe me.

  • The link is /.ed (Score:3, Informative)

    by smallpaul ( 65919 ) <paul @ p r e s c o d . net> on Monday September 30, 2002 @12:00PM (#4359923)
    Here is another one [geocrawler.com]
  • Is it just me or does the GNU/HURD icon bear a startling resemblance to South Park's Mr. Hanky?
    • does the GNU/HURD icon bear a startling resemblance to South Park's Mr. Hanky?

      It might, but that's not even close to what was intended. It's a baby GNU [gnu.org]. Slashdot uses the "GNU" topic [slashdot.org] mostly for HURD stories and for GPL violation stories.

  • From what I have read, the HURD tries to go to a direction that no other O/S has gone before. This is good because innovation is needed, but they should get rid of all the notions of the past: processes, filesystems, users, groups etc. all these things are for O/Ses of the past. A computer is primarily a deposit for information. We put information in it, we exctract information from it, we process information (and we play games!). They should do the following design: each computer shall have a global tree of information nodes, where as each information node can act as a repository for other information nodes. The system shall be object-oriented, where each node has a specific interface that must implement. Each information node will be an object with all OO shit on it: property querying, run-time type id, message passing, etc. If you sit down and think of it, everything is an object and a repository: there are files, some files are databases, some databases contain records, some records contain entries...an executable contains code, data, resources...a font contains metrics...a window contains other windows...a network contains other computers...etc. By ditching the notion of 'program/task/process', we can get rid of re-usability once and for all. Let me describe an example. Let's suppose that I want to make a bitmap processing application. Here is the traditional way: 1) design the gui 2) find/implement some lib which manages most formats 3) implement a nice C++ framework for working with those formats 4) implement drawing and other operations Here is the new way: 1) use the global 'Bitmap' class as an interface for manipulating bitmap objects; jpeg, tiff, and other formats know the internals of themselves; all I need to know as a programmer is the bitmap API: draw line, put pixel, get width, get height, resize, etc. Suppose that I wanted to search for a photo which is like another photo, possibly with some pattern matching. With traditional operating system: 1) must use special program 'cause I can't do this operation on the system level 2) must use database 3) must use digital imaging app 4) most propably I will not have all this so I will do it by hand The new way: 1) having a handle to the 'bitmap' in hand that I want to compare with, I scan the object tree and call operator '==' for each bitmap. Or use an API like 'patternMatch' which is common to all 'bitmap' types. Another example: lets say I want to browse my MP3 collection for songs of a specific artist The traditional O/S: 1) can't do it (well, except on BeOS) The new O/S: 1) search and return a list for all objects that are subclasses of 'mp3' and where 'artist == Madonna'. Only one browser whould be needed. Custom browsers could be embedded within a master interface. An app could be one object with all its data (code, resources, dlls, etc) in one object repository. The HURD follows some of the above logic, but not completely. They are trying to implement traditional things (filesystems, proccesses, etc) but with a microkernel architecture. But this is not a big deal, because monolithic kernel customization has become very easy, even for non-programmers. They should be doing something for the future.
    • by Anonymous Coward
      lookout folks! a sun(tm) java(tm) programmer thinks he knows how to design an OS.

      hm... i bet you got an A+ in your OO-101 course last year, huh?

    • From what I have read, the HURD tries to go to a direction that no other O/S has gone before.

      Perhaps, but I remember hearing about HURD which was "coming real soon now" around the same time I first heard about Linux back in early 1992. They may have been going in a direction that other OS has gone, but they've being doing that for such a long time you shouldn't be able to see them anymore.

      Instead, (some) people are still talking about HURD as the "next big thing". They were doing that back in 1992, HURD has been the vapourware of the Open Source community, only briefly eclipsed in recent years by Mozilla, who at least have finally turned out a decent product. A lot of people have lost faith that the HURD project will ever produce something you can run on a production system.

      This is good because innovation is needed, but they should get rid of all the notions of the past: processes, filesystems, users, groups etc. all these things are for O/Ses of the past.

      Perhaps, but they're notions that have served us well, we're used to them and we can actually get some work done by using them. I've yet to find anybody with a decent user interface design for an OS based (purely) on an object model. The underlying technologies may be OO, but as soon as you start talking about the user interface the old metaphors start to show up again.

      I'll be conviced that (pure) object model operating systems are a good thing when someone can give me an idea of what sort interface you're actually going to present to the user, and when that interface actually offers significant advantages over the more mature systems we have now.

      Al.
    • 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.

  • NT/Win2K and POSIX (Score:3, Interesting)

    by Total_Wimp ( 564548 ) on Monday September 30, 2002 @12:55PM (#4360508)
    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
    • MS put in a screwed up implementation just to put in a checkbox feature necessary for government contracts.
    • The POSIX subsystem was put there so that Microsoft could compete for government contracts that specified POSIX compatibility in the RFP's.

      I could be wrong, but I doubt that Microsoft's POSIX subsystem gets much use. First, there are many POSIX standards [pasc.org], which were designed as a base reference for UNIX-like compatibility. Microsoft only implemented support for POSIX 1. If you try and imagine how loose these standards must be in order for Windows NT 3.51 to meet them, you'll be understanding how meaningless this level of compatibility is. The base level POSIX standards say nothing about the X Window system, for instance.

      In practice, Microsoft got NT in to the bidding process for those contracts, and won some of them. Once Windows is selected, the (extremely limited) NT POSIX interfaces are generally ignored in favor of building more robust Win32 code.

      • The built-in POSIX subsystem is pretty much worthless, but it's also been obsoleted by a $100 Microsoft product called "Services For UNIX" (formerly Interix), which provides a UNIX personality subsystem on top of NT's kernel, and ships with GCC (+source), korn shell etc.

        I can't say much about this thing, but before MS bought it up, it was UNIX(tm) certified by The Open Group.

        SFU/Interix is being sold as a migration solution, not a development platform, but in theory there's no reason one couldn't use it that way. According to MS, SFU was used in the Hotmail migration from FreeBSD.

        Rapping MS's knuckles for something that's been rectified for a few years is unfair. I would expect the built-in POSIX to go away with the next server release, because according to MS it's a security best practice to remove it.
    • Now this post comes along and it becomes obvious to me that POSIX is a big deal in the UNIX-like-OS world.

      Pretty much, if it doesn't implement POSIX, it isn't really UNIX.

      Did MS just screw up their implementation or is it something potentially useful that nobody happens to use?

      They screwed up...

      Al.
  • At this point in time I think we all must sit back and ask whether GNU/HURD is *really* useful or just an overextended ego trip. Remember this story [slashdot.org].

    -Sean
    • At this point in time I think we all must sit back and ask whether GNU/HURD is *really* useful or just an overextended ego trip.

      As if every open source program isn't an overextended ego trip. But just because some people from GNU are working on it, it's open to attack, eh?
  • by Milican ( 58140 ) on Monday September 30, 2002 @01:14PM (#4360704) Journal
    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 [gnu.org].

    JOhn
    • The entire operating environment devised from GNU tools (glibc, gcc, emacs, and so on) is called the GNU system. The slash notation indicates system/kernel, so when the GNU system is combined with the Linux kernel, it is referred to as GNU/Linux; when the GNU system is combined with the GNU Hurd kernel, it is referred to as GNU/Hurd (it could rightly be called GNU/GNU Hurd, but that would be a little more than most people would want to type, and some would see the presence of GNU twice as redundant).

      Anyway, I'm sure we all understand what is meant here.
  • by Polo ( 30659 ) on Monday September 30, 2002 @02:18PM (#4361329) Homepage
    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.

  • Humorous (Score:2, Funny)

    by jvalenzu ( 96614 )
    Do people really find this funny? Now I understand how dreck like Will and Grace and Red Dwarf get made
  • what a pity that the POSIX threading model is so archaic (and that nobody seems to have heard of any alternatives).

    for instance CSP [navy.mil] has a reasonable theoretical foundation and is infinitely nicer to program with than those locks and semaphors invented in the '70s...

    here's [bell-labs.com] a brief history and more accessible explanation. plan 9 [bell-labs.com] has a nice C implementation [bell-labs.com].

    so much nicer to program with!

"What man has done, man can aspire to do." -- Jerry Pournelle, about space flight

Working...