Slashdot Mirror


First Program Executed on L4 Port of GNU/HURD

wikinerd writes "The GNU Project was working on a new OS kernel called HURD from 1990, using the GNU Mach microkernel. However, when HURD-Mach was able to run a GUI and a browser, the developers decided to start from scratch and port the project to the high-performance L4 microkernel. As a result development was slowed by years, but now HURD developer Marcus Brinkmann made a historic step and finished the process initialization code, which enabled him to execute the first software on HURD-L4. He says: 'We can now easily explore and develop the system in any way we want. The dinner is prepared!'"

13 of 596 comments (clear)

  1. Mach Microkernel vs L4 by TangoCharlie · · Score: 4, Interesting

    What are the relative benefits of L4 vs the Mach Microkernel? Better performance? As I understand it, MacOS X's microkernel is also based on the Mach microkernel... would it make any sense for Apple to look at L4?

    --
    return 0; }
    1. Re:Mach Microkernel vs L4 by Anonymous Coward · · Score: 4, Interesting
      Probably not. The Darwin kernel is really a monolithic layer over the top of a microkernel, not a proper microkernel system. Historically, at least, you gave up too much speed to do a proper microkernel, so monolithic kernels were de rigeur in any application outside the OS laboratory. Just because Darwin is written atop of Mach, it doesn't necessarily follow that Darwin uses a microkernel; and the design of Darwin is that of a monolithic kernel, not a microkernel.

      The Hurd is an interesting design. With luck, it will demonstrate both that the performance hit is no longer of major importance, and that a true microkernel has advantages over monolithic kernels. Only time will tell, of course, if those advantages are going to be properly exploited; but I must admit to curiosity as to what might be implemented above the Hurd that would not be possible (or would be significantly harder) with Linux.

    2. Re:Mach Microkernel vs L4 by js7a · · Score: 5, Interesting
      L4 has only seven system calls, compared to several dozen in Mach. It fits in about 32KB, too, which is very much smaller than Mach.

      But the small size doesn't make most systems faster. Running the same Unix API, L4 adds execution time overhead beyond the default monolithic Linux kernel, about 5%. (Does anyone know the figure for Linux-on-Mach? I know it's much greater than 5%....) However, there are some significant advantages having to do with debugging, maintainability, SMP, real time gaurentees, memory management, configurability, robustness, etc. Detailed discussion here.

      From the overview:

      Kernels based on the L4 API are second-generation -kernels. They are very lean and feature fast, message-based, synchronous IPC, simple-to-use external paging mechanisms, and a security mechanism based on secure domains (tasks, clans and chiefs). The kernels try to implement only a minimal set of abstractions on which operating systems can be built flexibly.

      Other links: L4KA homepage, background info, more info with some historical L3 links.

      Frankly, I think L4 is very much the right way to do things. I wish I could say the same for other parts of HURD.

  2. Re:It hurds by mirko · · Score: 5, Interesting
    The Hurd Project was started in 1983 (it's an instrumental featuring the speech where Stallman explained the origin of the GNU project).
    Now, 22 years later, a definitve breakthrough has been performed.
    I see this as an excitement :
    1. They kept working on it THAT long despite slandering and scepticism such as yours
    2. The rest of the software library (glib, bash, etc.) is already ready
    3. With Linux, Hurd and BSD amongst others, we are slowly getting back to the same variety we had 20 years ago, when we had to exchange basic listings and to port these onto various platforms (Sinclair, Commodore, Amstrad, Sharp...)


    Now, we will see it emerge and, why not, get sufficient audience to become unavoidable. In 20 years from now, it'll be like it's an opportunity as weel as any other so it's not missed, it just took time to emerge, like my favourite whisky.
    --
    Trolling using another account since 2005.
  3. Great by Pan+T.+Hose · · Score: 5, Interesting

    When the first programs run, it is just a matter of time before there is a functional L4 port of Debian GNU/Hurd (or just Debian GNU?). I really like the design of the Hurd, but what I'd like to see the most are not the "POSIX capabilities" but the real capabilities as described in the 1975 paper by Jerome Saltzer and Michael Schroeder, The Protection of Information in Computer Systems. (For those who don't know what am I talking about, I recommend starting from the excellent essay What is a Capability, Anyway? by Jonathan Shapiro, and then reading the capability theory essays by Norman Hardy. As a sidenone I might add that I find it amusing that people who say that there are other advantages than only Digital Restrictions Management of using TCPA/Palladium-like platforms usually quote security features, which have already been implemented in the 1970s, only better and with no strings attached. Those TCPA zealots are usually completely ignorant of the existance of such operating systems as KeyKOS or EROS with formal proofs of correctness without all of the silliness.) Are there any plans to have a real capability-based security model available in the Hurd?

    --
    Sincerely,
    Pan Tarhei Hosé, PhD.
    "Homo sum et cogito ergo odi profanum vulgus et libido."
  4. Re:Mods... by Billly+Gates · · Score: 4, Interesting

    I actually started the lame Duke Nukem posts as a joke, but oddly I had Mozilla mentioned as well. The netscape code finally after 2 years had to be deleted and rewritten.

    After a slow start Mozilla is finally ready and moving fast.

    Hopefully the same fate will happen with Hurd as soon as developers come and take it seriously. Its a selfulling prophesy in free software.

    DNF? Well its proprietary so who knows

  5. Re:Well worth the wait ... by Mark_MF-WN · · Score: 4, Interesting
    HURD will never ever be where Linux is...
    By that logic, no one should ever start a new software project that isn't already being met (however inadequately) by some other piece of software. Why did Linus start writing Gnu/Linux, when there were already great operating systems like Windows/Dos, and Unix/Unix?

    Fankly, I think it's a great thing that BSD and HURD will be putting some pressure on Linux to be the best. Competition makes them strong, and the cross-fertilization of ideas makes them stronger still.

    Besides, HURD may end up being superior to Linux in some domains, such as high-reliability systems (think banking servers), driver development, OS research, shared systems, and the like.

  6. Re:Dilbert == BSA whore by dustmite · · Score: 4, Interesting

    Indeed, ouch, I find that very disappointing, I'll join the "Dilbert boycott". How patronising too, their lame psychological manipulation strategy: "As an engineer like you ..." .. isn't that how you try manipulate 6-year olds? The BSA's tactics disgust me in general.

    I used to like Dilbert, but I cannot stand any comic strip that whores itself out to corporate interests in this way. A comic strip is not an advertising platform.

  7. Re:Benchmarks? by Malor · · Score: 5, Interesting

    If the system is able to stay up without further drive access, that could potentially allow you to copy data still in RAM. If the OS simply instantly failed when the HD controller went, then any data in RAM would absolutely be lost.

    Software failure is more common than hardware. In many cases, drivers can be restarted. Your specific example is probably the toughest one I can think of offhand... you'd have to have a copy of the HD controller cached somewhere to be able to restart it. (since, obviously, you can't load it from HD :)). But most drivers wouldn't be that hard to restart... video and network are two very good examples. I have seen many 2.4 kernel crashes from what appeared to be network-driver failures. Presumably, a microkernel might have survived whatever the problem was.

    You also, of course, have the advantage of each driver/process running in its own address apace, which would probably make very complex code, like the 2.6 Linux kernel, more manageable.

    Just as an offhand observation, I kind of wonder if the 2.6 Linux kernel isn't approaching the level of diminishing returns... it's gotten so complex that it's getting pretty tough to cleanly improve without blowing a lot of stuff up. A microkernel design would probably have made maintenance easier, and *probably* would have given us more stable systems now.

    But they didn't go that way, and restarting Linux kernel development would be pretty stupid, IMO. :-)

  8. Re:Benchmarks? by lokedhs · · Score: 4, Interesting
    But they didn't go that way, and restarting Linux kernel development would be pretty stupid, IMO. :-)
    In a way, you could see the new HURD to be a restart of the Linux kernel development. I.e. a new, better(?), kernel. And I wouldn't call it stupid, quite the contrary. New development is always good.

    The funny thing is that back when Linux was started, it could been seen as a restart of the HURD kernel development. What goes around comes around. :-)

  9. Re:Let's see here by ThousandStars · · Score: 4, Interesting
    Arguably, Apple took even longer, since it was looking at next-generation operating systems before Copland development actually started. In addition, NeXT began (IIRC) in 1986.

    Also, not only did OS X take a long time to develop, it took an even longer time to become usable. The first desktop version, 10.0, was released in Mar. 2001, and it sucked. Actually, it worse than sucked, it was closer to a beta than a release. I consider it more of a developer's preview. The next version, 10.1, released in Sept or Oct 2001, was usable but still too slow, particularly for the hardware at that time. The first version I would call good, and good enough for the casual user, was Jaguar, 10.2.

    Most estimates of the cost of developing OS X in its present are around $1 billion. (Cost of acquiring NeXT was $420M, plus all the development time and money. I think part of the Copland money was counted in there too.) That's a whole lot of development time, money and effort to throw out for a hypothetical, potential and probably minor speed increase. Given the further elaboration above, I agree with the parent's implied answer.

    Still, one could argue that much of the time the parent and I count as "working" on OS X didn't really count (i.e. Copland, which failed, and NeXT, much of which didn't make it into OS X), but these timelines were still important in making today's OS X what it is.

  10. Parent needs a glass hat by QuietRiot · · Score: 4, Interesting

    It took Linux a long time to be recognized as a viable alternative to other Unices.

    Your point? The world now knows there are viable alternatives, and they can be had for historical lows on price.

    I don't think this can be easily done again.

    The world's got practice. It's no longer in the same state it was in '91. Back at that time, very few people had unix machines on their desk or at home. Unix ran in the computer room at work or school and you connected to the system but did little in the way of administration. Millions have been introduced to "the unix-like way of life" (TULWOF), superuser status, and have developed desires to exploit the powers of their machines in an infinite number of ways. The world is primed to be wowed again.

    I see our future selves laughing at our current fascination with Linux like we now look at time we spent with DOS. We'll see someday how horribly inflexible it was compared to what's coming in this next generation of operating systems. Your post shows you know very little about the Hurd and what possibilities it will allow. One cannot currently imagine all the fun things people are going to do with it (them?) X years from now.

    And I doubt that Hurd would have any noticeable advantages over Linux.

    Exactly not the case. There are *profound* advantages [to "the Hurd"].

    If and when a usable system comes to fruition is the question. Developers. Developers. Developers. Get them excited and you'll soon be doing things with your machine you'll never even have considered possible. Maybe not yourself, but people will be doing things they never dreamt possible. There are fundamental differences that are difficult to comprehend having experienced only monolithics. Granted, most of the advantages are not so much at the user level, but from a system administration perspective. Guys working "in the computer room" will probably have much more to be excited about than somebody with a user account. If you know what "having root" is like, the possibilities coming with the Hurd's architecture will be much more meaningful than they would to a typical user. However "typical user accounts" will be much more powerful on a box running the Hurd. Even low level stuff like filesystems floats up into "userland" allowing you the ability to customize your environment to great extents without affecting other users on the same machine.

    So why not have the people working on Hurd work on something new instead, or work on improving Linux? Competition can also hurt, by splitting up the resources into many small parts ...

    Maybe more people should work on the current telephone system instead of wasting their time with VoIP. Maybe you should have worked harder at your old job instead of trying to find a new, better job? The Hurd is to Linux users like Linux is to DOS users. If Linux (as currently implemented) lives in N-space, the Hurd lives in N+1.

    Resources get split up; sure. Consider however how the body of developers grows every day as more and more are introduced to TULWOF. None of us get to justify or dictate how others spend their free time. Get excited about the underdog. Linux has enough developers, don't you think? Will developments made on a new system with completely different rules positively effect Mr. Torvalds pet project? Most certainly I presume. I see the relationship as symbiotic. The Hurd takes on the huge body of software that has been developed due to "the Linux revolution" of the last decade and Linux takes from the Hurd (besides the jealousy that I can only predict will develop eventually) new techniques and perhaps, somehow, some type of hybrid approach to the kernel. There's no telling really; I can only imagine good things coming to both camps. Your attitude of discouraging work on such projects, done freely by others, I see as sel

  11. Re:More interested in development by osierra.com · · Score: 5, Interesting
    This is best illustrated by the parable of the OSs and the gun:
    • With Unix you shoot yourself in the foot.
    • With DOS you keep running up against the one-bullet barrier.
    • With MS-Windows the gun blows up in your hand.
    • With MacOS it's easy to shoot yourself in the foot -- just point and shoot.
    • With SVR4 the gun isn't compatible with your foot.
    • With Linux generous programmers from around the world all join forces to help you shoot yourself in the foot for free.
    • With HURD you'll be able to shoot yourself in the foot Real Soon Now.