Slashdot Mirror


Get To Know Mach, the Kernel of Mac OS X

An anonymous reader writes "Linux is a kernel, not an operating system. So what is Mac OS X's kernel? The Mach microkernel. The debate around Monolithic (Linux) and Micro (Mach) kernels continues, and there is a great chapter online about the Mach system from the very good book 'Operating System Concepts'. Which design is better? I report, you decide." Warning: link is to a PDF.

413 comments

  1. This is a tough fight by Anonymous Coward · · Score: 4, Funny

    The apple metrosexuals vs the greasy bearded GNU/linux hippies! Who will win!

    1. Re:This is a tough fight by Anonymous Coward · · Score: 0

      their two arch rivals

      Mozilla and the DoJ?

    2. Re:This is a tough fight by Anonymous Coward · · Score: 0

      "Who will win!"

      Microsoft, as usual.

    3. Re:This is a tough fight by Creepy+Crawler · · Score: 2, Funny

      Who will Win?!?!

      Tune in next week to the same article (poasted at a later dupe-date for your conveinance) and FIND OUT!

      We're also to believe that the Apple Metrosexuals plan to use a hypnotizing-GayRay against the dirty hippies!

      SAME TIME SAME CHANNEL!

      --
    4. Re:This is a tough fight by Anonymous Coward · · Score: 1, Funny
    5. Re:This is a tough fight by InvalidError · · Score: 0, Offtopic

      Tune in next week to the same article (poasted at a later dupe-date for your conveinance) and FIND OUT!

      You must be new here, dupes usually surface on the next day... or even on the very same day.

  2. commence the horse beating by hector_uk · · Score: 5, Funny

    commence the dead horse beating. i start : mach owns.

    1. Re:commence the horse beating by Anonymous Coward · · Score: 0

      my mach kernel is bigger than your kernel.

    2. Re:commence the horse beating by Anonymous Coward · · Score: 0

      no way d00d, m4ch sux0rs!

      GNU/Hurd ROOLZZZ!!!!

      (was that too juvenile? oh wait, this is slashdot)

    3. Re:commence the horse beating by hector_uk · · Score: 0

      but as the name suggest mach go's at the speed of sound, therefor it owns you supremely according to the /. poster logic :D-\ :D-/ :D-\ :D-/ :D-\ :D-/ :D-\ :D-/ :D-\ :D-/ /me dances on the linux kernel

    4. Re:commence the horse beating by Anonymous Coward · · Score: 0

      Slowest Unix on market, Mach is. Poop is I/O and multiprocessing.

    5. Re:commence the horse beating by hector_uk · · Score: 0

      star wars you not are in you yoda are not also

    6. Re:commence the horse beating by skraps · · Score: 5, Funny

      Bottom line, Mach is the most advanced manual shaving system in the world. The Mach3 Turbo is the world's first triple-blade razor, with three blades positioned independently to shave you progressively closer in a single stroke.

      --
      Karma: -2147483648 (Mostly affected by integer overflow)
    7. Re:commence the horse beating by Anonymous Coward · · Score: 0

      You forgot the thing that makes the Mach3 Turbo the most advanced manual razor: the electric pulses designed to raise your hair in order to get a closer shave.

    8. Re:commence the horse beating by beddess · · Score: 1

      this is one of the best that i've seen in years

      --
      "Weasling out of work is important to learn; it is what separates humans from animals. Except for weasels."
    9. Re:commence the horse beating by Anonymous Coward · · Score: 0

      "GNU/Hurd ROOLZZZ!!!!"

      I believe you mean "L4 ROOLZZZ" as GNU/Hurd isn't a kernel, it's a collection of programs designed to run inconjunction with a microkernel. GNU/Hurd used to use Mach for this, though they've now switched to the much faster L4 microkernel.

    10. Re:commence the horse beating by minimunchkin · · Score: 1, Offtopic

      Take the blade off and you have the world's finest lady pleasuring device. Trust me, it works.

    11. Re:commence the horse beating by Anonymous Coward · · Score: 2, Funny

      What?

      It becomes a chocolate credit card?

    12. Re:commence the horse beating by JabberWokky · · Score: 4, Funny
      I believe you're thinking of the M3 Power. If you're getting electric pulses off the M3 Turbo, you're standing in a puddle in your bathroom and you have a bad ground to your electrical outlet.

      --
      Evan

      --
      "$30 for the One True Ring. $10 each additional ring!" -- JRR "Bob" Tolkien
    13. Re:commence the horse beating by Anonymous Coward · · Score: 0

      And I'm getting sick of you doing that.

      One moment miding my own business, next, whomp, being held by you with my face buried between your ladies legs.

      Not that I mind, just some warning would be nice.

      Perhaps a preliminary sorbet or something.

    14. Re:commence the horse beating by JabberWokky · · Score: 2, Insightful
      Take the blade off and you have the world's finest lady pleasuring device. Trust me, it works.

      I'm not quite sure why you think an inert, unmoving stick of plastic roughly shaped like a pencil would be a fine device to pleasure a lady with. There are plenty of other options in various textures (and some that vibrate) built just for that purpose.

      --
      Evan

      --
      "$30 for the One True Ring. $10 each additional ring!" -- JRR "Bob" Tolkien
    15. Re:commence the horse beating by minimunchkin · · Score: 1

      It has a powerful vibrating handle

    16. Re:commence the horse beating by henrywood · · Score: 2, Funny

      Not many of us even get a chance to pleasure the world's finest lady.

      --
      Something is happening here but you don't know what it is, do you, Mr Jones.
    17. Re:commence the horse beating by minimunchkin · · Score: 1, Offtopic

      The turbo has a vibrating handle - it isn't inert at all.

    18. Re:commence the horse beating by Anonymous Coward · · Score: 0

      Made of chocolate?

    19. Re:commence the horse beating by Anonymous Coward · · Score: 0

      Sorry, buddy, but I don't think a handle from a mach 3 could ever compare to oral sex.

    20. Re:commence the horse beating by Anonymous Coward · · Score: 0

      Made of plastic. But that's not the mach turbo, it's the M3 Power that vibrates.

    21. Re:commence the horse beating by jacksonj04 · · Score: 2, Interesting

      I'm glad I'm not the only person to think that. Makes bugger all difference to my shave though.

      In other news: Anybody else being persistantly bugged to moderate or M2? Every single day I come back to find they want me to M2, and almost daily I find another 5 mod points.

      --
      How many people can read hex if only you and dead people can read hex?
    22. Re:commence the horse beating by arloguthrie · · Score: 1

      I'm sure if you march upstairs from the basement and empty the diswasher, your mother will feel a great deal of pleasure.

      --
      ----------
      Cheese it! It's the FEDS!
    23. Re:commence the horse beating by paladin_tom · · Score: 5, Funny

      No, take my pants off and you have the world's finest lady-pleasuring device.


      Trust me, it works.

      --
      #define sig "Every social system runs on the people's belief in it."
    24. Re:commence the horse beating by AaronLawrence · · Score: 2, Interesting

      Perhaps this means that not many people are moderating or meta-modding. I do find it tedious myself; mostly because the moderation isn't immediate, you have to remember to click moderate after reading the page, instead of just closing it, I know that sounds silly but its easy mistake to make.

      --
      For every expert, there is an equal and opposite expert. - Arthur C. Clarke
    25. Re:commence the horse beating by JabberWokky · · Score: 1
      The turbo has a vibrating handle - it isn't inert at all.

      No, the Mach3 Power has a vibrating handle. The Mach3 Turbo is a just stick of molded plastic.

      --
      Evan

      --
      "$30 for the One True Ring. $10 each additional ring!" -- JRR "Bob" Tolkien
    26. Re:commence the horse beating by JabberWokky · · Score: 4, Funny
      Just because they are screaming doesn't mean it is from extacy. ;)

      --
      Evan

      --
      "$30 for the One True Ring. $10 each additional ring!" -- JRR "Bob" Tolkien
    27. Re:commence the horse beating by Anonymous Coward · · Score: 0

      No, take my pants off and you have the world's finest lady-pleasuring device.

      How do you pleasure a lady with pants? Nevermind. I don't wanna know.

    28. Re:commence the horse beating by Anonymous Coward · · Score: 0

      It has a powerful vibrating handle

      Makes me wonder what would happen if Tim "the Tool Man" Taylor modified a vibrator. Power. More power. Arrr.. arrr... arrr.

    29. Re:commence the horse beating by jacoby · · Score: 1

      The engineering wonder is not the three blades (although that's nice) but the clear-through gap allowing the hairs to be rinsed out and extending the useful life of the blade. That's the big win with Mach3.

    30. Re:commence the horse beating by Anonymous Coward · · Score: 0

      I thought minimunchkins were the world's finest lady-pleasuring devices.

    31. Re:commence the horse beating by Howski · · Score: 3, Funny
      No, take my pants off and you have the world's finest lady-pleasuring device.


      Speaking of dead horse beating...
    32. Re:commence the horse beating by Progman3K · · Score: 1

      STFU & GBTF!

      (Shut The F--- Up & Get Back To Fark)

      Just kidding, Hector! Your post title reminded me of lots of comments from discussions on Fark.
      STFU & GBTW (Get Back To Work) are common replies on Fark.

      Cheers.

      --
      I don't know the meaning of the word 'don't' - J
    33. Re:commence the horse beating by titusjan · · Score: 2, Interesting

      I've got the opposite. I haven't had mod points in a year. And yes, I've got the 'willing to moderate' box checked and positive karma.

      Slashdot works in mysterious ways.

    34. Re:commence the horse beating by birge · · Score: 1
      Just because they are screaming doesn't mean it is from extacy. ;)


      It could be from bad spelling. Women hate that.

    35. Re:commence the horse beating by FlyingPostman · · Score: 2, Funny

      Shave her first, and then take the blade off. Now were talking.

    36. Re:commence the horse beating by MolBiolDoc · · Score: 1

      Is it just me, or is the obvious response:

      "I've seen you with your pants off......that's no pleasuring device, it's just a microkernel!"

    37. Re:commence the horse beating by Bun · · Score: 1

      No, take my pants off and you have the world's finest lady-pleasuring device.

      You do something special with a belt?

      --
      "Anyone that has ever gotten an idea based on any of my work and done something better with it-good for you."--J.Carmack
    38. Re:commence the horse beating by Feztaa · · Score: 1, Offtopic

      Hell yes. I have both the Schick Quattro and the Gillette Mach3, and the Quattro is terrible with getting clogged up with hair... Maybe if I shaved every day it wouldn't be a problem, but I only shave once a week, and the Quattro is just unusable. After every stroke, it's so clogged that I literally have to pull the hairs out by running my thumb over the blades (the opposite way, so it doesn't cut my thumb). The Mach3 is an absolute godsend in rinseability.

    39. Re:commence the horse beating by Dolda2000 · · Score: 1

      I think that goes for the M3 Power as well, though. The only way to somehow be affected by the 1.5 V battery in the M3 Power would probably if you connected it directly to your brain. Don't try that at home, kids.

    40. Re:commence the horse beating by jacksonj04 · · Score: 1

      Want some of mine? I've just got another 5...

      --
      How many people can read hex if only you and dead people can read hex?
    41. Re:commence the horse beating by JabberWokky · · Score: 1
      There are no misspelled words in my post. There is, however, a lesser used alternate spelling that is still in the dictionary. I know because I thought my spelling was wrong and checked that it was in the dictionary... without reading the definition. Now that I have, I note that the definition I have is "See Ecstasy", and the spelling is marked obsolete.

      Ah, well. My SO is a chemist and doesn't care about spelling. She is obsessed with corsets and lingere, however. I'll take Victoria's Secret and Madame S bills over nitpicking my spelling any day.

      --
      Evan "She's also the Orion Slave Girl in the Sacramento section of 'Trekkies 2'"

      --
      "$30 for the One True Ring. $10 each additional ring!" -- JRR "Bob" Tolkien
    42. Re:commence the horse beating by birge · · Score: 1

      What, did you look that up in an old english dictionary?

    43. Re:commence the horse beating by xenoandroid · · Score: 1

      You fucking rock for that joke.

    44. Re:commence the horse beating by reso · · Score: 0, Offtopic

      it does clog. i started shaving in the shower and it doesn't clog anymore. of course it's a pain in the ass to shave if you don't have good lighting and have to hold a hand mirror up, but it beats smacking the handle on the rim of the sink to try and get the clog out. i finally broke the handle doing that

      --


    45. Re:commence the horse beating by jweatherley · · Score: 1

      Allow me to give some more props to the Mach3. I'd always used Wilkinsons - I started with the 'Protector' (the anti-cut one for wusses) but that and all subsequent oned just clogged up with hairs. I thought that was the way things were until I tried a Mach3 - it is truly awesome in it's anti-clogging abilities. I'm a lazy once a week shaver and it works like magic - the blade seems to stay sharp fot insane lengths of time too.

      I'd always shied away from the Gilettes because of the daft Top Gun style advertising and being associated with David fucking Beckham doesn't help either. Ignore the adverts - their razors roxor.

      --

      --
      Reverse outsourcing: it's the future
  3. That's the reason Apple's come in those colours... by Anonymous Coward · · Score: 2, Funny

    So people can do the

    You got a light Mac?
    No, but I've got dark brown NeXT machine.

    joke.

  4. MirrorDot by cirisme · · Score: 4, Informative

    Huge PDF on Slashdot. This can't end well. Mirror

    1. Re:MirrorDot by Anonymous Coward · · Score: 0

      Looking at how many bittorrent articles there are, why dont they just post a torrent

    2. Re:MirrorDot by Skye16 · · Score: 2, Insightful

      Because a lot of us are behind restrictive firewalls at work and can't use BT. It's sad. :(

    3. Re:MirrorDot by Milo+of+Kroton · · Score: 2, Funny

      Why is .pdf matter? Does not the American Slashdotter not read the article, true?

    4. Re:MirrorDot by Anonymous Coward · · Score: 0

      But it's on Wiley's servers. We hate Wiley 'cause they trashed Jobs, remember?

    5. Re:MirrorDot by DJStealth · · Score: 1

      Wiley is a big publisher, I'm sure they have the bandwidth for it.

    6. Re:MirrorDot by Anonymous Coward · · Score: 0

      Because Bit Torrent is only used by thieves and pirates. You don't want to associate yourself with them by using it. In fact, merely having it on your computer can be grounds to have your internet connection cut off by your ISP.

    7. Re:MirrorDot by Anonymous Coward · · Score: 0

      MILO! Where been have you!

  5. Complete Book reference by DoctoRoR · · Score: 4, Informative

    This appendix on Mach is from the newest edition of the classic "Operating System Concepts," Seventh Edition by Silberschatz, Galvin, and Gagne (Wiley). ISBN: 0-471-69466-5. Published December 2004.

    There are also free online chapters for FreeBSD and Nachos.

    Link to Wiley's purchase page (given that we are /. them): http://www.wiley.com/WileyCDA/WileyTitle/productCd -0471694665.html

    1. Re:Complete Book reference by LarsWestergren · · Score: 1

      Operating System Concepts (and Operating System Concepts with Java) are both great books. However, I think Gary Nutt's Operating Systems is actually even better. I found it easier to read (or maybe I've gotten better... it was a while since I read OSC). Nutt's book has a lot of interesting lab exercises at the end of each chapter that you can do either on Windows or Unix/Linux. I found this really helps you understand and remember the concepts.

      --

      Being bitter is drinking poison and hoping someone else will die

    2. Re:Complete Book reference by henrywood · · Score: 1

      So we won't be buying that at the Apple stores!

      --
      Something is happening here but you don't know what it is, do you, Mr Jones.
    3. Re:Complete Book reference by PsychicX · · Score: 3, Insightful

      What's interesting is the utter irrelevance of the slashdot posting to the book excerpt. Slashdot talks as if it's a detailed article on the internals of Darwin, which is the OSX kernel, NOT MACH. Darwin is based on Mach, yes, but it's not Mach. And the article never once mentions OSX, or Apple, or Macs. One must seriously wonder...is the ability to read included in the job requirements for a slashdot editor?

    4. Re:Complete Book reference by mrlpz · · Score: 1

      Absolutely not a requirement. There's incontrovertable proof of this. And it's been getting worse and worse. Lately, you see stories coming across /. that you'll think to yourself "Wait a minute, didn't I see that at 'ChatchkiTech.COM' 3 days ago ? Didn't they report that on Yahoo, 2 days ago ? Wasn't it on the 'insert favorite' Nightly News LAST NIGHT ?".

      Absolutely positively, troll me if you'd like, but..."Use the force, young skywalker, search your feelings, you know this to be true...I AM...".

    5. Re:Complete Book reference by temojen · · Score: 1

      Wonderfull... now I can spend $116 to save a little shelf space. I have two different versions already so I can have the (old) appendix on Mach and the (newer) apendicies on Linux and NT.

  6. design is better, performance is worse by iggymanz · · Score: 4, Interesting

    The modular design of microkernels makes for easier design & debugging, and with some designs the freedom to make user space services that can only be in privileged space in monolithic designs, but does one want to pay the overhead for all that message passing? Now that we are getting into parallel processing at the consumer level with multicore and hyperthreaded chips, maybe the answer is yes.

    1. Re:design is better, performance is worse by Halo1 · · Score: 2, Informative
      The modular design of microkernels makes for easier design & debugging, and with some designs the freedom to make user space services that can only be in privileged space in monolithic designs, but does one want to pay the overhead for all that message passing?

      No, which is why Apple's XNU runs in one address space for the most part (I don't even know whether there are parts which don't), and most message passing has been reduced to plain function calls. They still have the design advantages of something which is conceptually built from different subsystems with clean interfaces though.

      --
      Donate free food here
    2. Re:design is better, performance is worse by mrlpz · · Score: 1

      And this is surprising to people because ? C'mon, anyone who's been around the block a few times KNOWS that design != good performance.

      With most software, most folks design to achieve functional goals, then think of performance AFTER the fact. You see it again and again. Here's a blast from the past. Most folks won't remember that between Win NT 3.1 -> Win NT 3.51 ->Win NT 4.0 ->Win NT 5(otherwise known as Win2K ), Microsoft progressively, came to realize that having to transition from GDI user-mode to GDI supervisor-mode took WAY too long. So, across those releases, they migrated more and more and more of what was performed in user-mode back downstairs, just like it'd been in EVERY other Windows OS they'd ever released before.

      Don't believe me ? Familiarize yourself with a little function introduced at the first Win32 conference in 1992...GdiSetBatchingLimit(). It's specific purpose..was for YOU, as a programmer to specify to the Gdi what quantity of graphic orders it would hold in reserve within user-mode, BEFORE "batching them" down to supervisor mode. Obviously after releasing Windows NT, someone came to the serious realization that UI performance was anything BUT that, and with coming to their senses, embarked on undoing their mistakes. Anyone programming in Windows is STILL paying for those sorts of faux pas in WinXP today.

      So, with that little history lesson in mind, who in class again thinks that "Design == Performance" ?

    3. Re:design is better, performance is worse by mrlpz · · Score: 1

      re: design != good performance.

      Ooops...got caught by the > < gotcha. What that phrase was supposed..to say was..

      good design !_NECESSARILY_= good performance.

    4. Re:design is better, performance is worse by drsmithy · · Score: 1
      The modular design of microkernels makes for easier design & debugging, and with some designs the freedom to make user space services that can only be in privileged space in monolithic designs, [...]

      That's the theory, but in the actual practice of microkernel designs, what you end up having to do is move most of those "user space services" into kernel space for decent performance, as NT and OS X do.

      I assume that they at least keep the stuff that would ideally run in user space logically separated from the microkernel - firstly to make it easier to debug and secondly so that once hardware performance is good enough, those modules can be moved back out to user space where they belong.

    5. Re:design is better, performance is worse by Anonymous Coward · · Score: 0

      It's specific purpose

      "Its".

  7. Why warn us? Super Slashdot Effect by licamell · · Score: 5, Funny

    Warning: link is to a PDF"

    Um, if you want to warn anyone maybe you should warn the sys admin of the server that hosts the PDF file that you just put a link to on the main page of slashdot. I think they'll care a little more about the super slashdot effect (I'm coining that term for when a non-html file is linked to from slashdot - be it pdf, mpg, avi, etc.) than we will about taking the extra time to load.

    1. Re:Why warn us? Super Slashdot Effect by Anonymous Coward · · Score: 0

      maybe you should warn the sys admin of the server that hosts the PDF file

      Pfff, any decent sys admin watches his access log 24/7. He should notice a spike any second now...

    2. Re:Why warn us? Super Slashdot Effect by Alpha_Traveller · · Score: 3, Insightful

      Or heck, how about at least telling us how big the PDF file is, so I know the size of the monster I *might* have to download?

      --
      "Love is like pi - natural, irrational, and very important." (Lisa Hoffman)
    3. Re:Why warn us? Super Slashdot Effect by tritone · · Score: 1

      Despite the dinosaur picture, it's not a monster, only 950 KB.

    4. Re:Why warn us? Super Slashdot Effect by ed__ · · Score: 1

      i think the warning is for folks who might be browsing on handheld systems. i recall someone complaining mightily that a pdf link in a previous story just sort of killed their system.

      iirc.

    5. Re:Why warn us? Super Slashdot Effect by Tesla+Tank · · Score: 1

      Real men don't care about how big it is. Real men just download it without ever looking at it.

    6. Re:Why warn us? Super Slashdot Effect by mdfst13 · · Score: 1

      I like being warned about PDF because the Adobe browser plug in uses some odd part of Windows (Journal Viewer?) that I have turned off. As a result, it's a lot easier to do a "Save Link As" than to try to click on it.

    7. Re:Why warn us? Super Slashdot Effect by capmilk · · Score: 1

      Why don't you just delete the browser plugin?

    8. Re:Why warn us? Super Slashdot Effect by FredFnord · · Score: 1
      ...so I know the size of the monster I *might* have to download?
      You mean 'so I know the size of the monster I might eventually have the opportunity to download...'

      '...but probably not.'

      Curse you, Slashdot!

      -fred
      --
      Sign #11 of Slashdot overdose: You see the phrase 'moderate Republican' and you wonder if that would be a +1 or a -1.
  8. As always... by jtpalinmajere · · Score: 5, Insightful

    ... benefits and detriments exist for both monolithic and micro flavors. I doubt a conclusion could ever be made about which one is 'better'... because it all depends on context. "How will the system be used?" "What kind of environment will the system be operating under?" "What are the performance goals of the system?" "What types of hardware will the system(s) need to support?"

    Each system has benefits... but they almost always rely on the existence of certain assumptions.

    1. Re:As always... by jd · · Score: 2, Interesting
      That is very true. Arguably, though, what you have is a continuum, with monolithic kernels at one extreme and exokernels (virtually everything in userspace) at the other extreme. Different requirements would need different designs, somewhere on that continuum, but there would be no "overall best" for all circumstances.


      Actually, as kernels have started adding parallelism (such as SMP, clustering, etc), it becomes harder to really say exactly what sort of design a kernel really has. (Design is intrinsic and should not depend on surroundings, so does not depend on whether you are actually in a cluster, but merely whether the kernel recognizes the concept.)

      --
      It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
    2. Re:As always... by shotfeel · · Score: 1

      it becomes harder to really say exactly what sort of design a kernel really has

      It quickly becomes like the debates about wether the current CPU options fall in the RISC or CISC camp.

    3. Re:As always... by jd · · Score: 1

      Very true, and for exactly the same reason. It is far easier to build hybrids that balance the best of both worlds, for some specific application, than it is to design something with a "pure" philosophy.

      --
      It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
  9. Here's an idea for some news - by Kipsaysso · · Score: 4, Funny

    Let's ask what OS is better. The Apple and Linux people will go at each others throats and will in the end agree that they hate Window$.

    Smucks.

    --
    This is another way of starting a sig with this and ending it with that.
    1. Re:Here's an idea for some news - by Ezdaloth · · Score: 1

      Or SCO sponsored hooligans will join and the fight won't end easy. In that case, can i rent a chair at a spot with a good view? ;)

    2. Re:Here's an idea for some news - by Anonymous Coward · · Score: 0

      Linux people hate Windows. That's why they use Linux.

      Mac people are completely indifferent to Windows, if they're even aware that it exists. That's because they use Macs.

      And it's "schmucks," not "smucks."

    3. Re:Here's an idea for some news - by Anonymous Coward · · Score: 0

      Schmucks?

    4. Re:Here's an idea for some news - by nortcele · · Score: 1
      Let's ask what OS is better. The Apple and Linux people will go at each others throats and will in the end agree that they hate Window$.

      Good idea! And while they are arguing, it will leave the pdf link free for those that desire the facts!
    5. Re:Here's an idea for some news - by Yaztromo · · Score: 3, Funny
      Let's ask what OS is better. The Apple and Linux people will go at each others throats and will in the end agree that they hate Window$.

      I, for one, envision a different outcome. One which is more fair to everyone involved:

      "Well ladies and gentlemen, I don't think any of our contestants this evening have succeeded in encapsulating the intricacies of kernel design, so I'm going to award the first prize this evening to the girl with the biggest tits."

      Yaz.

    6. Re:Here's an idea for some news - by Anonymous Coward · · Score: 0

      So would that be considered a DUAL processors?

    7. Re:Here's an idea for some news - by Anubis350 · · Score: 1

      since I'm both can I go for my own throat? oh, and I use windows for games, so I can hate myself too!

      --
      "goodbye and hello, as always" ~Prince Corwin, from Zelazny's Amber series
    8. Re:Here's an idea for some news - by oscast · · Score: 1

      Why would mac people be unaware of Windows. We go against the grain just as much (if not more so) than linux users.

    9. Re:Here's an idea for some news - by BeepBeepBiloobop · · Score: 1

      What's a 'smuck'?

      Perhaps you meant 'schmuck'?

      --
      I think so, Brain; but where are we going to get a duck and a hose at this hour?
  10. mach inject by Kaamoss · · Score: 4, Informative

    I thought the article was more than relativly informative. Personally I love my mac and I think it's about time people stop fighting over which OS is better, use the right tool for the job, be that Linux, mac, windows, whatever. Anyways, figured I'd throw in a link to some other cool stuff about mach. http://rentzsch.com/papers/overridingMacOSX The page deals with code injection and function overriding within MAC OS X. I think something like it was on here not too long ago but it's also pretty interesting stuff, I'd suggest the read.

    1. Re:mach inject by Anonymous Coward · · Score: 0

      > Personally I love my mac...

      Quite an intimate declaration. Are you sure it's on the right site?

    2. Re:mach inject by TheNetAvenger · · Score: 2, Insightful

      I just had to comment, your post is very refreshing and what I remember the OLD days of Slashdot being like.

      It really isn't so hard to say, all OSes have really cool things about them, and we should talk about these cool things, as they enrich the OSes we develop for or use.

      Why can't something Microsoft does actually be cool, or something Apple does actually be outstanding, or a *nix project create a whole new paradigm that is fantastic.

      Anyway, thanks for the feeling of the old days when people didn't bite immediately when keywords like Microsoft, Apple, BSD, or Linux were used.

      Take care...

  11. Mac OS X is Mach, but it is not a Microkernel by dumbnose · · Score: 5, Interesting
    Mac OS X uses Mach, but it also uses a FreeBSD kernel and compiles them together. This eliminates the runtime characteristics of a Microkernel. This is actually quite common.

    So, even though it uses Mach, you can't call it a Microkernel.

    1. Re:Mac OS X is Mach, but it is not a Microkernel by arete · · Score: 4, Interesting

      I suppose it's possible I'm underinformed, but I believe the "BSD subsystem" of OSX is not compiled "into the kernel" and is entirely a compatibility layer on top of it.

      I suspect this is exactly how to never violate the microkernel design and still have BSD compat.

      --
      Looking for freelance Actionscript (Flash/Flex) or ColdFusion work and/or freelance developers. Email me, put Slashdot
    2. Re:Mac OS X is Mach, but it is not a Microkernel by marcosdumay · · Score: 1, Redundant

      "I suppose it's possible I'm underinformed, but I believe the "BSD subsystem" of OSX is not compiled "into the kernel" and is entirely a compatibility layer on top of it."

      Uh hu! Apple has finished Hurd!?

    3. Re:Mac OS X is Mach, but it is not a Microkernel by Anonymous Coward · · Score: 0

      OS X does *not* have a FreeBSD kernel!!!! I don't understand why this bit of nonsense is so obsessively held, except that it's then used to justify any insane demand from "the community" because "they owe us". The Unix userland is the FreeBSD part.

    4. Re:Mac OS X is Mach, but it is not a Microkernel by kilpatjr · · Score: 2, Informative

      What? no, that's not right.
      It uses the FreeBSD userland utilities, but not the kernel. You can't just compile them together. I mean, it's possible to take parts related to one, like the XYZ bootloader and use it to start the ZYX kernel, you can't just plug in modules or code. The ABIs and APIs are different.
      In this case, MacOS doesn't even do that. They just use a lot of the user utilities and such.

    5. Re:Mac OS X is Mach, but it is not a Microkernel by Halo1 · · Score: 5, Informative

      The BSD and Mach personalities run together in one and the same (kernel) address space. The BSD layer does not consists of merely some user space libraries. See e.g. this graphic.

      --
      Donate free food here
    6. Re:Mac OS X is Mach, but it is not a Microkernel by Anonymous Coward · · Score: 0

      You are misinformed. Look more closely at the architecture of xnu.

    7. Re:Mac OS X is Mach, but it is not a Microkernel by dumbnose · · Score: 2, Informative

      I don't know where you get your information, but it is incorrect. When you develop kernel drivers for Mac OS X, you program to both the Mach and FreeBSD APIs. It does not just use FreeBSD utilities.

    8. Re:Mac OS X is Mach, but it is not a Microkernel by dumbnose · · Score: 1

      You are uninformed. While it would have been possible for Apple to take this approach (others have done it successfully), they decided not to. Instead, the BSD layer runs in kernel mode. When writing kernel modules for Mac OS X, you often end up using both the Mach and BSD apis.

    9. Re:Mac OS X is Mach, but it is not a Microkernel by Anonymous Coward · · Score: 0

      Uh hu! Apple has finished Hurd!?

      Hurd? This concept isn't new. The Next (on with OSX is designed) was a true micro kernel system.

    10. Re:Mac OS X is Mach, but it is not a Microkernel by AKAImBatman · · Score: 5, Informative

      Actually, the grandparent IS correct. I spent the last week studying the Mach and OS X designs, and I found the following things:

      1. Mach is not a complete kernel. It requires someone to implement the areas which the Mach group were not researching. This has traditionally been done by compiling against BSD 4.3.

      2. Mac OS X updated to the FreeBSD kernel instead of BSD 4.3 to gain a more modern kernel design with better hardware support.

      3. OS 9 "Classic" is not a microkernel server, but rather a technology that Apple calls "Blue Box". Blue Box is a hardware virtualizer like VMWare that is capable of communicating directly with the OS X desktop. Using this communication, the OS 9 desktop is made to disappear, making the application appear to run on the OS X desktop.

      4. The combination of Mach and FreeBSD is called "XNU" by Apple. The complete os is called Darwin, and the commercial variety with the Next and Mac APIs is called "Mac OS X".

      More Info:
      Mach Kernel
      Wikipedia: Mach
      Wikipedia: XNU
      Blue Box info

    11. Re:Mac OS X is Mach, but it is not a Microkernel by Anonymous Coward · · Score: 0

      This is true, and I was waiting for someone to point it out.

      The truth is, a true microkernel is rare. What seems to be the pattern is that people build monolithic kernels out of microkernels, and what you end up with sees none of the benefits of a microkernel.

      Tru64, NeXT and Mac OS X are examples of this.

      GNU/HURD had some cool ideas about microkernels, and making a Unix-like system that actually takes advantage of microkernel design. I used HURD for a little bit and it was pretty cool, though extremely unstable... I wonder if we'll see anything out of them in the coming years. They recently moved to L4, didn't they?

    12. Re:Mac OS X is Mach, but it is not a Microkernel by arete · · Score: 1

      I stand corrected; my apologies.

      --
      Looking for freelance Actionscript (Flash/Flex) or ColdFusion work and/or freelance developers. Email me, put Slashdot
    13. Re:Mac OS X is Mach, but it is not a Microkernel by dumbnose · · Score: 1

      Check your facts. The BSD personality runs in kernel-mode, not user-mode.

    14. Re:Mac OS X is Mach, but it is not a Microkernel by AKAImBatman · · Score: 1

      GNU/Hurd has got to be the only non-released project that has taken longer than Duke Nukem Forever. They've been at that thing for well over a decade now, and recently switched microkernels (i.e. the L4 point you were making). I'm all for waiting until something is done, but can anyone give some visibility into what they've been actually DOING all this time?

    15. Re:Mac OS X is Mach, but it is not a Microkernel by shotfeel · · Score: 1

      And considering the number of people who are relying on the linked pdf about Mach as a primer for the OS X kernal, I thought a couple paragraphs from that link might be helpful.

      "A kernel, in traditional operating-system terminology, is a small nucleus of software that provides only the minimal facilities necessary for implementing additional operating-system services." -- from The Design and Implementation of the 4.4 BSD Operating System, McKusick, Bostic, Karels, and Quarterman, 1996.

      Similarly, in traditional Mach-based operating systems, the kernel refers to the Mach microkernel and ignores additional low-level code without which Mach does very little.

      In Mac OS X, however, the kernel environment contains much more than the Mach kernel itself. The Mac OS X kernel environment includes the Mach kernel, BSD, the I/O Kit, file systems, and networking components. These are often referred to collectively as the kernel.

  12. Re:Monolithic by mmkkbb · · Score: 5, Informative

    Monolithic translates to no modules, correct?

    I can't believe people are modding you up for this.

    The Linux kernel is monolithic. Linux modules do not run in user-mode. They are loaded into the kernel proper.

    mkLinux was an Apple-sponsored effort to run Linux on Mach. The Linux kernel was modified to run in user-mode; it basically became an executable. In fact, you could run multiple instances of the same kernel (or different kernels) simultaneously.

    --
    -mkb
  13. Re:Monolithic by wangmaster · · Score: 5, Informative

    That is monolithic as well, but not using the term in the same way. Monolithic essentially means made from a single piece. This CAN refer to modules as well, as the kernel modules aren't built into the kernel binary, but in the case of monolithic vs. microkernel, it doesn't refer to how the kernel is built. Rather it refers to the execution of the operating system kernel. A modular Linux kernel loads as a single executable that then loads modules into it's process space as needed to do things. This is essentially a monolithic kernel. The OS runs as a single process. Microkernel's have the OS split as seperate processes, mostly outside the core microkernel (which has the job of facilitating message passing between all these processes, and lowlevel process management). The Microkernel may or may not do I/O, sometimes seperate processes do. Hope that helps.

  14. Linux the OS that is not an OS? by TheViffer · · Score: 3, Informative

    Linux is a kernel, not an operating system.

    Google's definition of Linux

    I think you have more of a chance to start a discussion on that statement then you do in regards to which kernel is "better".

    --
    -- Knowing too much can get you killed, but knowing who knows too much can make you rich.
    1. Re:Linux the OS that is not an OS? by freedom_india · · Score: 1
      Google can "define" anything. It does not mean everything Google links to is correct.

      Linux is STILL a kernel and not a pure operating system per se.

      --
      "Doing what i can, with what i have." ~ Burt Gummer
    2. Re:Linux the OS that is not an OS? by Mother+Sha+Boo+Boo · · Score: 1

      I think you have more of a chance to start a discussion on that statement then you do in regards to which kernel is "better".

      For sure. But I always thought that Linux was indeed only a kernel for the GNU OS, which in some point in the future could be replaced by HURD. Someday.

    3. Re:Linux the OS that is not an OS? by Anonymous Coward · · Score: 0

      I'd love to see RMS' head asplode when he reads that list.

    4. Re:Linux the OS that is not an OS? by elementalist · · Score: 1

      The problem is popular usage. Your average slashdot reader knows that Linux refers to the kernel; however, the usage of any Linux-derived distro is often refered to as running Linux. So the term in that context encompasses the kernel and some form of tool chain at a minimum. At a maxima, X and a window manager.

      Now a purist would argue that this is incorrect, but the definitions of words in English are dictated by popular usage.

    5. Re:Linux the OS that is not an OS? by Bradee-oh! · · Score: 1

      Linux is STILL a kernel and not a pure operating system per se.

      Well, Xerox is STILL a brand name of photocopier and not a generic term for photocopiers per se. I think the new use of "Linux" is directly analogous to the shifting of trademarked names to the generic term for a product.

      I agree that way back when, Linux was the name of the kernel, period, and GNU/Linux was the operating system. The two parts (the kernel and the O/S libs, compilers, utilities, etc) were so disjoint at that period in time and none of the terms had hit the mainstream yet.

      But, come on people. When CNN mentions Linux, it's just "Linux." When newspapers mention it, it's just "Linux." When IT managers present it as an option to the bean counters and security Nazi's in a Fortune 500 corporation, it's just "Linux."

      Words evolve in English because of de facto use. "Linux," whether you purists like it or not, now means "The Linux Operating System." Ever notice how when geeks talk about Linux many/most use the generic term "Linux" to refer to the O/S and they use the term "The Linux Kernel" to refer specifically to the kernel?

      Welp, I think I got my ranting point across. I'm gonna go grab some Kleenex (tissue paper) and clean the glass on my Xerox (photocopier) and the monitor of my IBM PC (Custom built desktop x86-64 home computer). I'm glad I don't hafta mow my lawn since I had Astroturf (artificial grass) installed, but I still have a few other chores and errands to take care of. I have to Fedex (send by private courier) my Aunt's birthday present to her and Hoover (vacuum) my floor. At least afterwards I can go outside and play a little Frisbee (flying disc).

      And all the while, Linux (free open-source operating system based on the Linux kernel) will be installing on my notebook. Oh yeah, I found all of those references by Googling (searching) for them.

      (WAY overboard I know, but, deal with it and accept the point. :)

      --
      "This is Zombo Com, and welcome to you who have come to Zombo Com" - www.zombo.com
    6. Re:Linux the OS that is not an OS? by Phong · · Score: 4, Informative

      > I agree that way back when, Linux was the name of the kernel, period

      Not so. Here a posting from Linux Torvalds about Linux -- from the beginning the term was used as both the name for the kernel and the whole OS:

      LINUX INFORMATION SHEET
      (last updated 13 Dec 1991)

      1. WHAT IS LINUX 0.11
      LINUX 0.11 is a freely distributable UNIX clone. It implements a
      subset of System V and POSIX functionality. LINUX has been written
      from scratch, and therefore does not contain any AT&T or MINIX
      code--not in the kernel, the compiler, the utilities, or the libraries.
      For this reason it can be made available with the complete source code
      via anonymous FTP. LINUX runs only on 386/486 AT-bus machines; porting
      to non-Intel architectures is likely to be difficult, as the kernel
      makes extensive use of 386 memory management and task primitives.

      [...]

      2. LINUX features
      - System call compatible with a subset of System V and POSIX
      - Full multiprogramming (multiple programs can run at once)
      - Memory paging with copy-on-write
      - Demand loading of executables
      - Page sharing of executables
      - ANSI compliant C compiler (gcc)
      - A complete set of compiler writing tools
      (bison as yacc-replacement, flex as lex replacement)
      - The GNU 'Bourne again' shell (bash)
      - Micro emacs
      - most utilities you need for development
      (cat, cp, kermit, ls, make, etc.)
      - Over 200 library procedures (atoi, fork, malloc, read, stdio, etc.)
      - Currently 4 national keyboards: Finnish/US/German/French
      - Full source code (in C) for the OS is freely distributable
      - [...]

      --
      ..wayne..
    7. Re:Linux the OS that is not an OS? by Anonymous Coward · · Score: 0

      In this post, you see that Linus was effectively trying to rename GNU: All components come from the GNU project, except for the kernel, which he wrote. If I take FreeBSD and replace the its kernel with Linux, should the resulting operating system be called "Linux"? I don't think so!

      To honour the important role of the linux kernel, Stallman tells us the call a GNU system running on Linux GNU/Linux.

    8. Re:Linux the OS that is not an OS? by Anonymous Coward · · Score: 1, Informative

      Actually, early versions of Linux had their own C library, explicitly written for Linux.

      It wasn't until glibc 2.0 came out in the late 1990s that people started switching to GNU Libc. If you look at the glibc webpage, it is copyright 1996 - 2004... What do you think Linux used before 1996?

      So, to be a little bit technical, Linux used to be not just a kernel, but a kernel, C library, and boot loader. Since then 2 of those have been replaced by externally developed tools.

      As an aside, there are a few more userland programs that might be considered part of "linux", including: module-init-tools, iptables, hotplugd, udev, etc. These are not GNU tools, and were explicitly written to extend the Linux kernel.

    9. Re:Linux the OS that is not an OS? by Necrotica · · Score: 1

      Google is wrong. Linux is the name of the kernel. The operating system is properly called GNU/Linux. You can then add a vendor name, ie: Debian GNU/Linux.

  15. Re:Monolithic by Anonymous Coward · · Score: 1, Interesting

    So if linux adds new capability than you should be able to just add that subroutine in the a directory and it just works. Well nope. You have to compile the entire kenrel to get new features.

  16. Tannenbaum Vs Torvalds by medgooroo · · Score: 0, Troll

    If only they posted on /. GNAA-tastic.

    --
    Brain(s): 0.0% user, 1.3% system, 0.1% nice, 98.6% idle
    1. Re:Tannenbaum Vs Torvalds by medgooroo · · Score: 0

      I feel hurt. Not a troll, merely pointing out that the editorialising at the end of the article quite blatantly is. sheesh.

      --
      Brain(s): 0.0% user, 1.3% system, 0.1% nice, 98.6% idle
  17. Re:Monolithic by Anonymous Coward · · Score: 2, Informative

    > Maybe I'm mixing terms here, but I was under the impression
    > that linux is NOT monolithic - its quite modular. Monolithic
    > translates to no modules, correct?

    No: Both the modules and the rest of the kernel run in the same address space, so Linux is monolithic.

    A microkernel approach puts some (most, for second-generation microkernels like L4) traditional kernel features into user space, where they cannot hurt the kernel directly, by overwriting memory.

  18. Ahhh!! Nachos!!! by LanMan04 · · Score: 3, Funny

    *Commence horrible flashback to "OS Design" class as an undergrad*...

    --
    With the first link, the chain is forged.
    1. Re:Ahhh!! Nachos!!! by stoney27 · · Score: 1

      Yes I have the Second addition still sitting in my book shelf. Yes it has been a while since I have take that class...

      -S

      --

      It is said that a child learns wisdom from the parent,
      but the truly wise parent learns joy from the child
    2. Re:Ahhh!! Nachos!!! by Anonymous Coward · · Score: 0

      I feel your pain! The nest of extern pointers! The total lack of any decent documentation! The horror!

    3. Re:Ahhh!! Nachos!!! by Anonymous Coward · · Score: 0

      Indeed. The most horrible pseudo-OS ever designed (assuming it can be dignified with the term "design"). Nothing like seeing sample code that generates about 50 pages of warnings when compiled to give you confidence that the authors know what they're doing.

      Someone should beat the authors about the ears with section in K&R Classic that's headed "Pointers are Not Integers". :-)

    4. Re:Ahhh!! Nachos!!! by Laxitive · · Score: 2, Funny


      WHY? WHY DID YOU HAVE TO REMIND ME?

      The therapy was working.. I had almost blotted out the existence of Nachos altogether. Now it's all coming back. Why do you feel the need to hurt me so? *sob*

      -Laxitive

    5. Re:Ahhh!! Nachos!!! by |<amikaze · · Score: 1


      Uhoh. I'm strangely excited to take the "OS Design" class we have at school.

    6. Re:Ahhh!! Nachos!!! by LanMan04 · · Score: 1

      Don't get me wrong, it was a really, really interesting class, but the projects were just KILLER. If I could have taken it just for learning value without the projects, it would have been much better.

      Hell, I took Compiler Design and it was almost easier than OS Design. And we had to build the Lexical, Syntactic, and Symantic analyzers without YACC or LEX, not even an LL1 grammar to start with. We had to remove recursion and ambiguity by hand, and build a recursive descent compiler in Java (crazy and useless, but interesting none the less)

      Ah, just war stories, good times though.

      --
      With the first link, the chain is forged.
    7. Re:Ahhh!! Nachos!!! by kaiwai · · Score: 1

      Nothing horrible about OS classes :D

      I was the teachers pet; the only one who could name the one *TRUE* operating system, OpenVMS! mwahahaha :P

      In all honesty, comparing Windows NT to UNIX is like comparing a twink to Joe Average. Now sure, the twink may look cute from the outside, but nothing is working up stairs. Joe average may look average, but when you want something more than non-stop root (no pun pointed at Windows), its possible :D

    8. Re:Ahhh!! Nachos!!! by |<amikaze · · Score: 1


      Sweet! That's another class I plan on taking too!

  19. Xnu, not mach by oudzeeman · · Score: 5, Informative
    Apple's kernel is called XNU (Xun's not Unix). It is based on Mach with a BSD compatibility layer included at the kernel level (as are various other subsytems usually implemented at a server level in true microkernels), not as a 'mach server'. It does not use Mach as a microkernel. Xnu is a essentially a monolithic kernel. The Mach code takes care of inter-process communication, virtual memory, preemptive multi-tasking, etc. The BSD codebase of XNU handles user ids, file permissions, TCP/IP stack, sockets, filesystems

    stop spreading the myth that Xnu is a microkernel

    1. Re:Xnu, not mach by Anonymous Coward · · Score: 0

      XNU is not an acronym for anything, especially not one of your stupid LUNIX joke acronyms. Stop spreading the myth that XNU is an acronym.

    2. Re:Xnu, not mach by say__10 · · Score: 3, Funny

      Xnu... Xenu... I knew it, all hail our scientologist overlords! Lord Cruise and Travolta shall rule the lands!

      --
      Home of the midwest loser - www.say-10.net
    3. Re:Xnu, not mach by Anonymous Coward · · Score: 0

      Then it should be called XNU/Apple and not just Apple.

    4. Re:Xnu, not mach by Elwood+P+Dowd · · Score: 1

      The "anonymous submitter" must have written this story as a troll. He incorporated a well known FSF debate, a well known OS debate & a well known factual error in the first two sentences. The "Which design is better? I report, you decide." bit is clearly trying to get the "Hello Gentlemen" tone.

      No one is better than Egg Troll: Time to Retire C++?

      --

      There are no trails. There are no trees out here.
    5. Re:Xnu, not mach by Anonymous Coward · · Score: 0

      Apple's kernel is called XNU (Xun's not Unix)

      Off topic, but I was wondering why it's not XINU (XINU Is Not Unix). It's also UNIX spelled backward. I think it's cooler than XNU.

    6. Re:Xnu, not mach by Anonymous Coward · · Score: 0

      IT'S NOT AN ACRONYM AT ALL. It's just a name! Chrissakes! Whoever put that up on Wikipedia should rot in hell.

    7. Re:Xnu, not mach by MacDork · · Score: 1
      stop spreading the myth that Xnu is a microkernel

      Well, it's that or be sued by the Church of Scientology for copyright infringement associated with spreading other XNU myths... so we're sticking with the microkernel thing ;-)

  20. Re:Monolithic by Thud457 · · Score: 1

    Although the Linux kernel now supports modules, there are a lot of features traditionally built-in that really should be split off. I mean, really, do the schedualler, line cache, and sphygmometer need to be built into the kernel?!!!

    --

    the preceding comment is my own and in no way reflects the opinion of the Joint Chiefs of Staff

  21. Great OS Book - but what's Steve up to now? by kriegsman · · Score: 4, Funny
    Operating System Concepts is a great book for learning about what an OS is and the design choices that go into building one. We used that book way back in my college days, and it's one of the few textbooks I actually kept. Here's an excerpt from the (linked PDF) chapter on Mach:
    Mach 2.5 is also the basis for the operating system on the NeXT workstation, the brainchild of Steve Jobs, of Apple Computer fame.

    So... does anyone here know what Steve Jobs and Mach have been up to since their halcyon days at NeXT?
    1. Re:Great OS Book - but what's Steve up to now? by Chucker23N · · Score: 3, Funny

      I hear he sells songs and music players for some coke company. ;-)

    2. Re:Great OS Book - but what's Steve up to now? by TeamSPAM · · Score: 1

      I believe he was involved in a "reverse" buyout of Apple. Basically Apple gave NeXT a lot of money and NeXT engineer's took over OS development. This consisted of porting Nextstep to Apple's PPC hardware and making a compability library to run the old software. That's right folks. Everybody who's running OS X is really just running what essentially would be Nextstep XP.

      --
      Brought to you by Team SPAM! where we believe: "Information in the noise!"
  22. Re:Monolithic by gowen · · Score: 5, Informative

    Well nope. You can insert newly compiled modules into a previously compiled kernel to get new features (that's how the many proprietory video drivers work, for example.) But those are
    a) running in kernel space, not user space
    b) communicated with by predefined hooks, rather than a generic message passing interfacing.

    That's why linux modules, which are superficially like elements of a microkernel, are not really like them at all.

    --
    Athletic Scholarships to universities make as much sense as academic scholarships to sports teams.
  23. Re:Monolithic by Anonymous Coward · · Score: 1, Interesting

    I could be wrong, and I'm sure I'll be told if I am...but the issue is related to what happens at compilation and runtime. In most instances the Linux kernel with the exception of items setup and KLMs are built into a single monolithic kernel, all drivers and kernel related items are in one system. There is no dynamic loading and unloading under this model. But in the case of Mach and even the rest of the OS X system everything that can be put off till later usually is by only loading what is immediately necessary. The kernel is a small item which loads everything else as it needs it instead of being built with everything it may need at compile time.

    Mach pushes decisions about what it needs off until runtime instead of compile time and this translates into smaller footprints and quicker startup in most cases. Whereas linux only makes limited use of KLMs and that means most decisions have to be made at build-time and is not put off.

  24. OT: PDF link clicking extension by mindaktiviti · · Score: 2, Informative

    Firefox has an extension for PDF Downloading which gives you the option to download a pdf link, in case opening pdfs in browsers bothers anyone.

    PDF Download

  25. Re:Monolithic by uler · · Score: 1

    No, Linux is monolithic by design, with the option to use modules. Monolithic does not necessarily translate to no modules. It refers mainly to the underlying design of the kernel.

  26. Re:Monolithic by Anonymous Coward · · Score: 1, Interesting

    Linux is not 100% monolithic, it does use modules, so it's more like 99% monolithic. The main difference between a microkernel and a monolithic kernel is that the microkernel runs most things in userspace, which is more safe and more interchangeable, but generally thought to be less efficient.

    Basically the microkernel is the most beautiful design, I don't think anyone could disagree with that. But a monolithic kernel gets the job done, so it's not like it's bad either.

    The apple design is, however, what i'd call bad. They've taken a microkernel (Mach), and implemented a monolithic kernel beneath it, to run their legacy apps!!! It's ugly!

  27. Re:Monolithic by iggymanz · · Score: 1

    Not the way the term is used in computer science, it's not enough to have a modular design or loadable modules for device drivers, but to have a small core that abstracts OS services in an OS agnostic way to higher layers, and that loads the higher layers as needed.

  28. Debate? what debate? by Toby+The+Economist · · Score: 3, Insightful

    "The debate around Monolithic (Linux) and Micro (Mach) kernels continues..."

    There is no debate. It has been well accepted that micro-kernels are the way to go.

    --
    Toby

  29. Re:Monolithic by william_w_bush · · Score: 4, Informative

    monolithic in this case also means interface-monolithic.
    basically all the interfaces are defined as symbols to the linker, and all interfaces are defined c-native.

    the micro-kernels are meant to use message passing and more abstracted interfaces, as well as separate address spaces to ensure a bad module does not take down the entire kernel. Think of it like the modules run as only semi-privileged applications, handling their hardware and then giving control back to the micro-kernel which does as little as possible to arbitrate control and schedule between the subsystems and user-mode applications. Drivers are no longer fully privileged, and the entire user-space can be considered a subsystem of the kernel.

    it's different, and kinda hard to design for, but i can't wait for hurd to release a linux compat layer.

    --
    The first rule of USENET is you do not talk about USENET.
  30. Not in book 5th edition -Old Article by acomj · · Score: 1

    Interestingly the chapter was pulled in the 5th edition.. but the chapter was offered online at the time of publishing (it was in my OS class file).

    acording to the preface from 5th "coverage of the Mach operating system (old chapter 20), which is a modern os.... is available on line."

    Back into relevance? The new article doesn't mention MAC OSX which doesn't mean it completely out of date.

    It should be noted that appe hired Avie Tevanian to modify the MACH kernal and boost its performace.

    http://everything2.com/index.pl?node=Avie%20Tevani an

  31. Re:RMS, Is That You? by h00pla · · Score: 1, Flamebait
    Linux is a kernel, not an operating system

    Yeh, please stop saying this. It's not true and nobody cares about this argument anymore.

    --
    I've been swashdotted -- Elmer Fudd
  32. Mac != Mach by frankie · · Score: 3, Interesting

    Although Darwin does use Mach at the heart, it also has large chunks of the BSD kernel bolted on to avoid Mach's typical performance hit. Consequently, OS X really isn't microkernel, and you can't do all the cool microkernel tricks (load or unload almost anything dynamically, drivers can't crash the OS, etc).

    This approach doesn't make much logical sense to me, but it's what Steve and Avie wanted, and somehow, amazingly, it still just plain works.

    1. Re:Mac != Mach by timbloom · · Score: 1

      I don't know if this is what you meant by load or unload almost anything dynamically, but you can load or unload Kexts (kernel extensions) whenever you please. Just a short command in the terminal is all you need.

    2. Re:Mac != Mach by frankie · · Score: 1

      Think about all the software updates & installs that you've done on OS X that end with "A Restart is Required". 99% of them (all except for major point-version OS updates) would effect immediately, no reboot, in a true microkernel.

  33. qnx does just fine with a u-kernel and message pas by Thud457 · · Score: 1

    How did qnx avoid the problem of message-passing overhead? (Other than being tuned to a specific architecture until recently.)

    --

    the preceding comment is my own and in no way reflects the opinion of the Joint Chiefs of Staff

  34. Re:RMS, Is That You? by Anonymous Coward · · Score: 0

    I'm going with GNU/Apple/Mach, just to be safe.

  35. mach vs posix by dyfet · · Score: 4, Informative
    Mach was never originally engineering for posix compliance, and yet the two main operating systems built from it, osx (and darwin), and hurd, each have tried hard to tame and make mach behave posix compliant. This has sometimes produced interesting compatibility issues, especially in the contenous issue of posix threading, and has resulted in compatability layers which weigh down the system further.

    Given this compatibility effort, mach is not a fair comparison, either in hurd or osx, for comparing the merits and performance between that of monolithic and microkernel achitectures because so much extra stuff was added to a design never intended for posix. Something like QNX4 and later, designed both as a microkernel and for posix, or perhaps a pure mach system running applications designed specifically for mach, might be a more fare basis to compare the value of microkernel vs monolithic architectures.

    Mach on hurd is easier to grasp and test since many of the lower level mach kernel services are still represented and usable there. Apple seems to be trying to eliminate visibility of as many of the lower level mach services from application developers as possible. Yet, there are still many things that can only be done in the mach kernel on osx or darwin (such as threads that can be cancelled on socket operations or sleeps). If one wanted a bsd/posix compliant environment, I think Apple would have been far better off starting from PPC/xBSD or Linux kernels, rather than trying to rope and rebuild mach to fit into something it was never originally designed for.

    1. Re:mach vs posix by Dink+Paisy · · Score: 2, Informative
      Technically, that may be correct (Mach developed without aim for POSIX compliance), but considering the title of the original Mach paper was, "Mach: A New Kernel Foundation for UNIX Devlopment," it's a silly statement. Mach was made explicitly for implementing UNIX-like operating systems.

      The level of Mach-iness of OS X is another good question, though. From what I gather, OS X looks more like a monolithic BSD kernel ported to a Mach/PPC architecture (where instead of targeting the PPC architecture, OS X's BSD kernel targets the higher level Mach abstractions), rather than a microkernel operating system of the type one would normally expect to find running on top of Mach.

      --

      Whoever corrects a mocker invites insult;
      whoever rebukes a wicked man incurs abuse.
      --Proverbs 9:7
    2. Re:mach vs posix by dyfet · · Score: 1
      At the time mach was started as "a new kernel foundation for UNIX development", posix was not as complete as it is today. Threads in particular, loading and management of memory, sockets, and other services were not really "standardized" in UNIX back then. All these things mach choose to go one way, and the rest of the unix world went a different way. Other things, like async file management and msgports, mach introduced wholy new as a "better" way, and have no direct correspondence to unix/posix as we know it today either. Yet, everyone tries to remake mach into posixoid unix when clearly it is a very different animal, whether that was the original intent or not.

    3. Re:mach vs posix by Elwood+P+Dowd · · Score: 1

      If one wanted a bsd/posix compliant environment, I think Apple would have been far better off starting from PPC/xBSD or Linux kernels, rather than trying to rope and rebuild mach to fit into something it was never originally designed for.

      You should have brought that up with NeXT, not Apple, and done so before they hired Avie Tevanian. Tevanian was NeXT and then Apple's chief software technology officer, and he's one of the coauthors of the original Mach paper. Back when NeXTStep was being created, I'm not sure Linux or BSD were obvious good choices.

      Given that Apple just bought NeXTStep and worked from there, the decision was already made. If you consider the reasons that they went with NeXTStep rather than BeOS, BSD, or Linux, it's pretty clear that they made the right decision no matter what kind of kernel they wound up with.

      If you'd like to rephrase your suggestion and say that they should shoehorn in a different kind of kernel underneath their existing operating system, then I can't imagine how you'd justify the expense.

      --

      There are no trails. There are no trees out here.
  36. They're both better! by Pedrito · · Score: 4, Insightful

    "Which design is better?"

    What's better? PHP or Python? What's better Pepsi or Coke? The answer is always the same. It depends what your goals/needs/desires are. Neither is "better" in the all encompassing good or bad definition unless you qualify it. Which one's better for performance? Probably the monolithic kernel. Which one's better for security? Probably the micro-kernel. But even then, you have to qualify both of those. Performance of what? Security of what?

    I'm sick of all these stupid "which is better?" religious wars that geeks are always so interested in having. What's better? C++ or Java? What's better? IE or Mozilla?

    They're all better because the more there are, the more choices you have. There, is that a satisfactory answer?

    1. Re:They're both better! by alta · · Score: 1

      I agree with you on almost all of those examples... Except for one. Pepsi can't hold a candle to Coke! I'm from the south (AL), if I ask for a coke you better not bring me a damn pepsi. Gimme my coke or go get a freakin' SWEET ICED tea.

      --
      Do not meddle in the affairs of sysadmins, for they are subtle, and quick to anger.
    2. Re:They're both better! by Anonymous Coward · · Score: 0

      Here here, a voice of reason in a sea of pointless conflict.

    3. Re:They're both better! by beddess · · Score: 1

      nope coke is better.

      --
      "Weasling out of work is important to learn; it is what separates humans from animals. Except for weasels."
    4. Re:They're both better! by bemenaker · · Score: 1

      AMEN BROTHER!!!

    5. Re:They're both better! by Anonymous Coward · · Score: 1, Interesting
      I'm sick of all these stupid "which is better?" religious wars that geeks are always so interested in having.

      It isn't just geeks that have religious wars. Ask people that care about cars, sports, women, etc. And more choices doesn't necessarily mean that some of the choices aren't clear cut better than others.
    6. Re:They're both better! by MrP-(at+work) · · Score: 1

      coke sucks

      --
      [an error occurred while processing this directive]
    7. Re:They're both better! by clovis · · Score: 1

      It's true that "What's better" should be answered by "It depends on your goals/needs/desires". Although having many choices is in general a good thing, allowing Pepsi is wrong because there's the waste of the precious petroleum products used in its manufacture and transportation.

    8. Re:They're both better! by Anonymous Coward · · Score: 0

      Pepsi and Coke are practically identical.

    9. Re:They're both better! by AusG4 · · Score: 0, Troll

      What's better? C++ or Java? What's better? IE or Mozilla?

      That's simple:

      Objective-C and Safari. :P

      Seriously though... yours is easily the best answer to the question posed. Anyone who actually -answers- categorically in either direction is an idiot. The answer to the question is different in every situation.

      Ultimately, with an operting system, it's hard to tell just which kernel design is better anyways. Very few users interact with the kernel directly. :) As far as I'm concerned, I can launch Firefox on Linux or I can launch Firefox on the Mac - both load the program, both of them provide networking, both of them provide a file system in which to cache the pages I load and save my bookmarks and most importantly both of them ultimately allow me to read Slashdot.

      If launching Firefox and reading Slashdot was my only use of a computer, then the kernels are exactly as good as each other because they've both solved the same problem in a satisfactory manner.

      Posting the article about how the Mach kernel was cool, but for gods sakes /. - why be pricks and include the childish "which is better, you decide" crap at the end? Just plain lame....

      --
      bash-3.00$ uname -a
      SunOS panda 5.10 Generic sun4u sparc SUNW,Ultra-2
    10. Re:They're both better! by Kehvarl · · Score: 1

      You can always add sugar to tea to make it sweet. Also, drinking coke is like drinking pancake syrup. Give me a pepsi any day.

    11. Re:They're both better! by Anonymous Coward · · Score: 1, Interesting
      What's better? PHP or Python?

      Python

      What's better Pepsi or Coke?

      Coke

      What's better? C++ or Java?

      C++

      What's better? IE or Mozilla?

      Mozilla

      In all seriousness, though, I personally believe that the microkernel architecture is better. Whatever yields the most functionality is what's best to me, and even if performance is lower in some areas, that's okay; I'm used to making sacrifices for operating systems. After all, if all I cared about was speed, I'd still be using DOS! This is obviously not the criteria we use to choose OS's.

    12. Re:They're both better! by freedom_india · · Score: 2, Interesting
      C++ or Java? This is a dumb question. Of course Java is better, unless of course you want to have a headache, heartache, stomach ache, etc., in which C++ is probably the right way to go-:)

      For the rest of us, Java is much, much simpler and easier to use.

      --
      "Doing what i can, with what i have." ~ Burt Gummer
    13. Re:They're both better! by John+Newman · · Score: 3, Funny

      What's better? PHP or Python?

      Perl.

    14. Re:They're both better! by xactuary · · Score: 1

      Yes... and no. It depends on your definition of satisfactory. ;=)

      --
      Say hello to my little sig.
    15. Re:They're both better! by Anonymous Coward · · Score: 1, Funny

      Always nice to see an exception to "It's funny because it's true".

  37. Re:Monolithic by mrm677 · · Score: 3, Informative

    Linux modules all run in the same address space. Module functionality is invoked with a function call. A microkernel typically uses a message-passing approach and modules are isolated from one another. A small context switch must occur when invoking something in a microkernel module. Hence the overhead of a microkernel is much greater than a monolithic kernel. However many argue that the overheads are worth the organization and safety advantages that the microkernel gives you-- especially nowadays where for typical appliations, the OS accounts for a tiny fraction of overall runtime.

  38. Re:qnx does just fine with a u-kernel and message by Anonymous Coward · · Score: 0

    I suggest you go read some about the concepts of latency vs throughput...

  39. Right tool for the job by aardwolf64 · · Score: 2, Funny

    use the right tool for the job, be that Linux, mac, windows, whatever

    Yes. For instance, if you're wanting to test out the effects of the latest greatest spyware, use Windows and IE to do anything on the Internet.

  40. Re:Monolithic by bfields · · Score: 4, Informative
    Maybe I'm mixing terms here, but I was under the impression that linux is NOT monolithic - its quite modular. Monolithic translates to no modules, correct?

    No, you're mixing terms.

    • We say something has a modular design if it's divided into pieces that communicate with each other through small well-defined API's.
    • Linux's kernel modules are bits of kernel code that can be loaded into the kernel at runtime. Usually these modules are also examples of modularity, but they don't have to be. Modules have full access to the kernel's memory, so can do anything the kernel can.
    • In a microkernel drivers, filesystems, etc., all live in a completely separate address space from the kernel, so if, for example, a driver goes bonkers and starts writing to random pieces of memory, the kernel is protected. This forces the design to be somewhat "modular", but again isn't quite the same thing.

    So, the linux kernel supports kernel modules, and its design is to some degree "modular" (as any project that size would have to be), but noone would claim it to be a microkernel.

    --Bruce Fields

  41. Re:Debate? what debate? Yes by omb · · Score: 1

    Yes there is, I am debating you!

  42. Re:qnx does just fine with a u-kernel and message by RickHunter · · Score: 4, Interesting
    1. QNX has been multi-platform for quite a while.
    2. QNX uses shared memory to pass messages. Its message passing is very lightweight, and the resulting performance is far better than Linux.

    In this day and age, there is no reason to use a macrokernel unless your hardware lacks the features needed for a microkernel. QNX has proved this quite nicely.

  43. MacOS / Darwin / xnu isn't a pure microkernel by Lemming+Mark · · Score: 5, Insightful

    That's a statement not a criticism by the way ;-)

    In general, monolithic kernels run in a single address space and use direct procedure calls / variable accesses to pass data and control flow between subsystems. This is true even if they support loadable modules (like Linux). Any driver or other subsystem in your kernel can (if it wants) access any other part of the kernel.

    Although Mach itself is a microkernel, the "xnu" kernel which Darwin / MacOS X uses also hosts other components *in the same address space*. Some of the subsystems (e.g. the BSD subsystem) are large and resemble monolithic systems themselves. The overall system is not a "pure" microkernel, with lots of code moved out of privileged mode. Equally, it's not quite like a traditional monolithic UNIX because of the use of Mach and the other Darwin-specific components (e.g. a (relatively?) stable binary interface for drivers).

  44. Not a "compatibility layer" by argent · · Score: 4, Interesting

    It is based on Mach with a BSD compatibility layer

    It's not just a "compatibility layer". A Mach system consists of multiple servers providing services to each other and to applications. The BSD server in XNU is an essential part of the system... it's the ringleader, and calls the shots from boot onwards.

    1. Re:Not a "compatibility layer" by Anonymous Coward · · Score: 2, Informative

      'Calls the shots' might be an exagerration. The mach and bsd layers interact in a peer type way. For some things, mach primitives are used, for other things bsd primitives are used. In some cases, the bsd layer interacts with the mach layer fairly directly.

      One example is the unified buffer cache, which ties directly into the mach vm layer. Mach is certainly used for more than bootstrapping the bsd subsystem.

    2. Re:Not a "compatibility layer" by Anonymous Coward · · Score: 0

      Man is it so hard to understand that:

      * OS X is NOT a microkernel system
      * it uses Mach in a different way then it is usually used, i.e. not as a microkernel with services running on top of it in user mode
      * both Mach AND BSD part of OS X run in kernel space
      * OS X is NOT a microkernel system (yes, I know that was already said, but some people need it repeated obviously).

    3. Re:Not a "compatibility layer" by argent · · Score: 1

      One example is the unified buffer cache, which ties directly into the mach vm layer.

      Well, yeh. FreeBSD uses the Mach VM code too.

      Mach is certainly used for more than bootstrapping the bsd subsystem.

      I didn't say it wasn't. What I said was that the BSD subsystem is not just an emulation layer, it's a complete server that provides services throughout the system at every level. The boot process is the standard BSD model, with init calling the shots, running /etc/rc to kick off all the standard daemons and some which may be unique to Mach... but they're all created using the UNIX fork/exec mehanism rather than directly through Mach primitives.

    4. Re:Not a "compatibility layer" by argent · · Score: 1

      Mach in a different way then it is usually used, i.e. not as a microkernel with services running on top of it in user mode

      You're mixing up two completely unrelated uses of the word "kernel" here. There's nothing in the microkernel model that says components have to run in any particular mode or space. The microkernel model is all about how components interact with each other, no matter what "mode" or "space" they run in. Try replacing the phrase "kernel mode" with "privileged mode". The 'externally visible' kernel is a higher level construct.

      There are microkernels where the microkernel itself is only a few kilobytes long, and the whole distinction between "user mode" and "privileged mode" is implemented outside the microkernel. There are microkernels that don't even have a concept of "user mode", the whole OS and applications run in the equivalent of "the kernel".

      Now you can argue that Mach isn't really a microkernel. A lot of people in the real-time industry (where microkernels aren't just some exotic concept, but a pretty normal way of building an OS) have been pretty dismissive of Mach from the start... 'How can it be a microkernel when its microkernel is bigger than my whole OS?' is a pretty typical attitude.

  45. Massive microkernel by Anonymous Coward · · Score: 1, Interesting

    Mach must be one of the largest microkernels around. It's also a bit of a cheat - it keeps all the drivers and such inside it. Which means that it's easier to write, perhaps a smidgen quicker, but you loose most of the advantages of such a way of doing things.

    I would have thought that you could implement much of Linux in userspace. Certainly file systems and the IP stack could be done easily, leaving just the hardware drivers in there. At that point, you get something that's not a great deal different from the way Mach does it.

  46. This article is troll. by Anonymous Coward · · Score: 4, Funny

    Period.

  47. Re:Debate? what debate? by Slashcrap · · Score: 2, Funny

    There is no debate. It has been well accepted that micro-kernels are the way to go.

    Which is why nowadays it's impossible to find a widely used OS that isn't based on a microkernel!

  48. Re:qnx does just fine with a u-kernel and message by fistfullast33l · · Score: 2, Funny

    Andrew Tenenbaum, is that you?

  49. Re:Monolithic by Anonymous Coward · · Score: 0

    You are completely wrong, dumbass.

    Mono vs. micro has nothing to do with modules. They are irrelevant.

    It has to do with how system services are provided. In linux (mono) you get a huge amount of services all provided in "kernel space".

    In micro, you get small groups of services provided by "user space" daemon processes.

    Most BSD's are also mono. Douchebag.

  50. Google html version by Anonymous Coward · · Score: 0
  51. Monolithic v modular by lheal · · Score: 1

    "Monolithic" and "microkernel" refer to the structure of the kernel program, not to how it's loaded.

    Linux drivers (and other "modules") are stored as separate files on disk, or can be compiled in to the kernel. Either way, once they are loaded they form part of the kernel, with all of the rights they need to do whatever they want to your system.

    In microkernel architectures, the OS has many layers and a mechanism for keeping them separate, so that the disk driver can't write directly to the screen or affect user processes.

    The Linux kernel uses programmer resources liberally to keep separation. There is more and more modularity in Linux as time goes on, but Linus won't ever go fully microkernel because it takes too much away from performance. Better to use "free" programmer time than slow down Linux.

    FUD: a Linux module could be or could contain a virus that would have full access to your machine.

    Reality: a malware module might mess up your machine, but it would need a really sneaky method of propagation to move to another machine. It basically would have to be part of some distibution to make it onto a significant number of computers.

    The malware module problem is also partly why kernel modules should be open source. If you can't see the source, you really don't know what it's doing.

    --
    Raise your children as if you were teaching them to raise your grandchildren, because you are.
  52. MOD PARENT UP by FhnuZoag · · Score: 1

    (n/t)

  53. Re:qnx does just fine with a u-kernel and message by iggymanz · · Score: 2, Informative

    QNX is a real time operating system - its message passing only has good performance when there's not too many different types of messages to pass. The desktop versions of QNX work if you are only doing a couple things, like browsing and doing email. But if you try to do the things that a Linux distro could easily do, like burning a CD while writing to USB device and compiling a new kernel and running a dozen windows, it'll choke up: it's NOT suitable for a general purpose desktop.

  54. Let's secretly watch by Anonymous Coward · · Score: 5, Funny

    as we switch Steve Job's kernel beans with new Roaster's Light Linux Beans.

    Now, let's see if he notices!

    1. Re:Let's secretly watch by catdevnull · · Score: 3, Funny

      Dude. You get catdevnull's unoffical "Funny" mod + 5 of the day.

      --

      I might know what I'm talkin' about, but then again, this is Slashdot...
  55. XNU vs Linux. by jvd · · Score: 1, Insightful

    Apple's XNU (Darwin), is simply superior in many ways. With the OS X kernel you simply get the best of both worlds, the best things of a monolithic BSD kernel, while a lot of advance features of the Mach microkernel.

    Apple's XNU is the way kernels will be in the future. The future is Hybrid kernels. Stop arguing.

    --
    Insanity: doing the same thing over and over again and expecting different results.
    1. Re:XNU vs Linux. by Anonymous Coward · · Score: 0

      Isn't L4 better than Mach anyways?

    2. Re:XNU vs Linux. by Ezdaloth · · Score: 2, Interesting

      More accurately, L4 is pretty much totally different. L4 is probably the smallest microkernel you can make, while mach is the biggest. Which is better is highly subjective.

    3. Re:XNU vs Linux. by pp · · Score: 1

      Darwin still sucks in lmbench, sorry.
      (http://www-106.ibm.com/developerworks/lib rary/l-y dlg5.html)

      Which is obviously a microbenchmark that doesn't measure real-life application performance. But having a small thing that gets done quite often (context switches) take 4x more time or so does translate into real-life performance losses too (obviously not 4x, but still measurable).

      You might be able to "hide" all the low-level performance losses by optimizing elsewhere, but it still doesn't mean you're doing the best possible thing.

      There's absolutely no reason to carry around a dinosaur like Mach around. Portability isn't a reason (see number of platforms supported by Linux and NetBSD vs. Darwin). Scalability isn't one either.

    4. Re:XNU vs Linux. by forrie · · Score: 1

      I'm wondering why Apple doesn't port their kernel to the i386 architecture, providing a version of their OS for that market - I understood this was a consideration a long time ago. They would be wise to reconsider it, and think about how this could compete against MS.

    5. Re:XNU vs Linux. by Anonymous Coward · · Score: 0

      That's all fine and dandy, but you did absolutely nothing to support your argument.

      Name a single feature the XNU gets from its faux-microkernel status.

      If anything, XNU is a schizophrenic beast. It's BSD here, and god knows what else there. It doesn't conform to any reasonable Unix-type standards. Look at the way a REAL BSD kernel is set up: a very simple kernel with relatively clean programming interfaces etc. Then look at Apple and their IOKit nonsense. WHY is this better than /dev? Because it's more complicated?

    6. Re:XNU vs Linux. by Anonymous Coward · · Score: 0

      The XNU kernel is the basis for Darwin, which is available for i386, and is open source (so port it where ever you like).

      I think you really mean, "why doesn't apple release OS X for my PC," and that has been answered to death.

    7. Re:XNU vs Linux. by xenoandroid · · Score: 1

      Apple is primarily a hardware company that writes software to push their productsl

    8. Re:XNU vs Linux. by Korpo · · Score: 1

      Mach shows why often enough it isn't any good to do a microkernel approach.

      Either you implement most OS services as separate servers (as QNX or Hurd), AND run them in a different execution context, or simply have a MONOLITHIC BSD KERNEL!!!! Having some call indirection doesn't improve design in any way really useful.

      If you knew _anything_ about real OS kernel design, you would know and acknowledge that the Linux kernel is superior, due to its mature fine-grained locking, kernel preemption, multiple efficient CPU and IO schedulers, multi-arch support, and layered subsystems.

      Of course, superficially, Mach/BSD looks nice. It' not much different from FreeBSD, though, which reintegrated the Mach memory system. And FreeBSD has not yet a _mature_ fine-grained locking, does not have a stable, efficient scheduler (SCHED_ULE has "issues", you know), etc.

      On a purely technical standpoint, even the rather mature codebase of the FreeBSD kernel is inferior to the current Linux kernels (at least since Linux 2.6.x). Mach/BSD as used on Darwin does little to leviate this shortcomings, while doing some superficial design cleanups which do not benefit the user except in the latency of sound playback, a problem long gone in Linux.

      While Linux people work on hard realtime, Darwin people have achieved soft realtime for sound only. I'm not impressed in the least. Quit touting it as the end of history as it either needs to evolve or will become more and more outdated in terms of Unix evolution.

      It isn't superior to Solaris as well, which has much of the same going for it technically as Linux, plus some very Sun-specific extensions.

      Mach is touted to be the future since when? The 80s? Perhaps we get to see Christopher LLoyd as Steve Jobs and Michael J. Fox as you when you try to fulfill that prophecy?

  56. Mono = one by jd · · Score: 2, Informative
    I'm going to ignore for a moment that "lith" means stone. A "monolithic" kernel means a kernel in one piece. As such, a modular design that clips together into a single unit may or may not be counted, depending on your choice of definition.


    Personally, I wouldn't consider a modular kernel to be monolithic, because it can take many forms. It may have a signle form at any given time, but over any period of time, it may vary that form. If we are going to give the Linux kernel a "technical" description, then "polymorphic" would seem to be more accurate.


    However, if we now use "polymorphic" to mean "modular", then there is absolutely no point in having the extra term. We're adding vocabulary without adding any information. So, is it possible to have a kernel with many forms that is NOT modular? Arguably no, because it is only by being able to add/remove kernel code that the kernel becomes polymorphic.


    What about the usage of "monolithic" for anything that is a single layer of code, as opposed to a microkernel which is multi-layered with lots of communication between layers? I'm not convinced this is a useful definition. It attempts to identify kernel types by a specific implementation detail, rather than by the design. It would be as useful as trying to classify cats by eye-colour. The relationship isn't necessarily as rigid as all that.

    --
    It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
  57. Re:Monolithic by Anonymous Coward · · Score: 1, Informative
    I can't believe people are modding you up for this. The Linux kernel is monolithic. Linux modules do not run in user-mode. They are loaded into the kernel proper. mkLinux was an Apple-sponsored effort to run Linux on Mach. The Linux kernel was modified to run in user-mode; it basically became an executable. In fact, you could run multiple instances of the same kernel (or different kernels) simultaneously.

    This is all true, but it's also true that xnu (the os x kernel) is monolithic as well. They've taken mach and the bsd kernel and put them both in the kernel proper. It's not like freebsd is running as some userland process (a la lites) in a typical microkernel fashion.

  58. History? by Anonymous Coward · · Score: 1, Interesting

    Does anyone know the technical reasons that Apple (or NeXT) chose to go with Mach rather than BSD kernel?

  59. Get it right! by Anonymous Coward · · Score: 0

    It's GNU/Apple/BSD/Mach.

  60. Re:RMS, Is That You? by cold+fjord · · Score: 2, Funny

    Should start saying Apple/Mach now?

    I don't think that is needed since more than enough people mock Apple already.

    --
    much of left-wing thought is a kind of playing with fire by people who don't even know that fire is hot - George Orwell
  61. Operating Systems by Nutt by DoctoRoR · · Score: 1

    Well I popped over to Amazon to check out your recommended book, and it has one of the worst ratings I've ever seen for a CS book. Really really bad reviews. Either Nutt is at the short end of a conspiracy of mad students, or his book really is too simplistic.

    1. Re:Operating Systems by Nutt by LarsWestergren · · Score: 1

      Yikes!!

      Thanks for pointing that out. Ok... I really have to check the book again with a more critical eye. I have only had time to do the first couple of chapters, and I really liked them. (Then I had to drop it and quickly read up on other stuff which was more likely to give me a job). It would seem I should have read *all* of the book carefully before praising it.

      I knew my understanding of fundamental operating system concepts was weak, that is why I bought the book. Sadly, it seems I'm so ignorant I can't distinguish quality from crap, which is a very disheartening realisation.

      I'll buy the Operating System Concepts book instead and read it very carefully when I have the time.

      --

      Being bitter is drinking poison and hoping someone else will die

  62. Confused am I . . . by gmby · · Score: 2, Funny

    "Linux is a kernel, not an operating system....."
    Then what is the name of the OS?
    Is it Redhat, Debian, Mandrake; I thought those were distributions?
    Is it GNU? or maybe GNU/Linux? HURD?
    GNOME? KDE? - Desktops?
    It's not UNIX! Or is it? SCO was right?!! ahhh!$@$#

    I KNOW! IT'S TUX!

    YEAH! That's the ticket! It's TUX!

    TUX Rocks!
    TUX Rolls!
    TUX Rules!

    http://www.tux.org/

    --
    I don't want a pickle; I just want a Motor-Cycle! A four foot cop arrived with a five foot gun!
  63. Re:OT: PDF link clicking extension by sjaskow · · Score: 1

    How about the popular right-click "Save Link As..." that I've been using since Mozilla Gold 3.01?

  64. Re:RMS, Is That You? by Anonymous Coward · · Score: 0

    How long does it take? I've been using a Mac for over a decade now and I STILL haven't fucked a man.

  65. Updating by simpl3x · · Score: 1

    How does a microkernal affect the updating of the system? in a consumer os that gets updated regularly, does this save on data costs?

  66. Monolithic more popular, microkernel still appeals by Lemming+Mark · · Score: 3, Interesting

    Monolithic kernels are dominant in practice (so far). Windows started off microkernel-y but has ended up rather monolithic (at least partly for performance reasons). Xnu (Darwin / MacOS kernel) also has strong monolithic leanings, despite being based on Mach.

    The microkernel design still appeals, though. For some things (not all) it is beneficial to move stuff out into less-privileged units. (Small) examples of this in Linux include: FUSE (for implementing non-performance-critical filesystems in Linux userspace), udev instead of devfs, moving initialisation code to the initramfs instead of being in the kernel itself...

    Other systems (e.g. Dragonfly BSD) are also seeking to move functionality to userspace where possible without undue complexity and / or performance cost.

    Some argue that virtual machine monitors are a useful modern equivalent to microkernels. They perform a similar function (partitioning system software into multiple less privileged entities), although they do it in a more "pragmatic", less architecturally "pure" way.

    Virtual machine monitors allow multiple virtual machines to use the same hardware. They have also been used for running Linux drivers in fault-resistant sandboxed virtual machines, with performance within a few percent of a traditional monolithic design (fully privileged drivers).

    The L4 microkernel is being used as a virtual machine monitor for this work by one research group, Xen has these capabilities also.

  67. Mach Sucks by Unknown+Lamer · · Score: 3, Informative

    Mach is painfully slow. It's an old microkernel and it uses async IPC (to allow for passing messages over the network). This is slow because you have to do a ton of context switches and copy the message between address spaces.

    L4, on the other hand, uses sync IPC. It has a bunch of neat optimizations, but the main reason why it's faster than Mach is that it doesn't have to copy messages. You send an IPC and it goes into the part of your VM space that L4 sets aside for IPC and then L4 does a quick context switch to the target task, it processes the IPC, and then you get your data back. (Simplifyed a ton).

    So, microkernels rock. Mach sucks.

    --

    HAL 7000, fewer features than the HAL 9000, but just as homicidal!
    1. Re:Mach Sucks by Anonymous Coward · · Score: 0

      Mach does a copy only when memory is modified (copy-on-write), so there shouldn't be a buffer-copy when sending messages.

  68. an old joke... by rplacd · · Score: 4, Funny

    "Mach was the greatest intellectual fraud in the last ten years."
    "What about X?"
    "I said `intellectual'."
    ;login, 9/1990

  69. OS X's kernel is not Mach. by Chucker23N · · Score: 4, Informative

    OS X's kernel, "xnu", is /based/ on Mach 3.0 and obviously shares a few concepts with Mach, but is neither a pure Microkernel, nor are all its components from Mach.

    Amit Singh has a well-written page about XNU: http://www.kernelthread.com/mac/osx/arch_xnu.html

  70. NOT A MICROKERNEL by Leimy · · Score: 4, Informative

    Mac OS X does not use Mach like a microkernel at all. I wish people'd get this through their thick skulls.

    It uses Mach and BSD in THE SAME ADDRESS SPACE. As such, it's basically as monolithic as it gets. It just happens to incoporate Mach in the kernel space and uses it for threads and IPC.

    Anyone who takes 10 minutes to look at the Darwin documentation would know this.

    I wish /. would actually edit for content.

  71. Re:Monolithic by jd · · Score: 4, Interesting
    The modules may be loaded into the kernel proper, but that does not make Linux necessarily monolithic, as the bindings are necessarily on-the-fly and the failure of a given module does not automatically mean the failure of the kernel as a whole.


    mkLinux is not the only microkernel Linux - L4Linux is still maintained and is much more advanced. Nor are these the only Linux kernels to run in userspace - UML Linux, for example, does just fine. It is not clear where XEN fits into the picture.


    All in all, though, the situation with Linux is actually a highly complex one, and should not be regarded as being definitely anything.

    --
    It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
  72. Re:OT: PDF link clicking extension by PCMeister · · Score: 2, Informative

    Here's another way... No extension needed:

    * Tools -> Options

    * Downloads -> Plug-ins

    * Uncheck PDF Extension -> Click Ok

    * Click [Ok] again to Exit Options Menu

    * Find a link to a PDF and click on it

    * A dialog box will pop-up asking what to do with it

    * Verify that Open With reads "Acrobat Reader" (or "AcroExch" in the newer versions of Acrobat Reader)

    * Check "Do this automatically..." -> Click OK

    PDF files will now spawn Acrobat Reader out side of Firefox. This is also helpful on older PC's that slow down to a crawl when opening PDF's within the browser.

  73. Apple does NOT use the MACH kernel. by Anonymous Coward · · Score: 5, Informative

    The kernel that Apple uses in OS X is called XNU.

    It uses code FROM Mach, but it is not Mach and it is not a Microkernel. NT (NT 4.0, NT 5.0 (win2k), NT 5.1 (WinXP) does not use a Microkerenl either.

    The only OS that I know of that actually uses a Microkernel is GNU/Hurd.

    The OS X kernel, called XNU, is a mixture of *BSD kernel code and Mach kernel code.

    Yes, yes, there was a ancient debate between Linus and that other guy about Micro- vs Macro-kernels, and guess what, Linus was right.

    Apple does NOT use a microkernel. It does not use Mach. It is BASED on Mach. It would be considured a kludge compared to Linux or FreeBSD, but it works out fine.

    Similar to how Mustangs are based on Ford Falcons and Granadas from the late 70's and early 80's. Those cars were as much as a failure as Mach, however the Mustang is flashy and many people desire it. So go figure.

    1. Re:Apple does NOT use the MACH kernel. by Quickfry · · Score: 3, Informative

      Just FYI, the other guy is Andrew Tannenbaum, who wrote Minix

      As for winning or losing, you can see for yourself on Google Groups that it was not about winning, it was a discussion on the merits of both.

    2. Re:Apple does NOT use the MACH kernel. by Anonymous Coward · · Score: 0

      Hey look! It's the same AC trolling every thread!

    3. Re:Apple does NOT use the MACH kernel. by argent · · Score: 1

      there was a ancient debate between Linus and that other guy about Micro- vs Macro-kernels, and guess what, Linus was right.

      Only in the sense that if you can get a tiny team of hand-picked supermen led by a guy who's willing to build his own source code management system just to let him feed changes into the code base fast enough to keep things going, you can make a monolithic design deliver some of the benefits of a microkernel design, and still have the performance benefits of the monolithic design.

      See, monolithic kernels give you decent performance "for free", because you automatically get a 1:1 relation between the number of threads dedicated to completing an operation in the kernel and the number of threads waiting on those operations. Modularity, asynchronous I/O, SMP, these things are hard, and every kernel component has to be written to a cooperative multitasking model.

      Microkernels give you good modularity and asynchronous I/O and concurrency "for free", because I/O is always the responsibility of someone other than the calling task and no component locks more than the resources it needs itself. But every component is a potential bottleneck unless it's written with concurrency in mind so performance takes continual work.

      The big problem with Minix was that that work was deliberately not done, because it was designed to be simple and easily understood. The reason that it had poor performance was not that it was a microkernel, but that it was a simplified one.

      As for Mach, whether that was ever really a true microkernel is an open question. Can it be called "micro" if it was bigger than many complete kernels at the time. QNX's microkernel, on the other hand, was small enough to fit completely in the instruction cache on a 486... and that's the kind of thing you need to do when you're building a production microkernel instead of an academic one.

  74. Gee, that is sad by Anonymous Coward · · Score: 0

    Maybe, you know doing your fucking job instead of reading slashdot would help.

    1. Re:Gee, that is sad by Kiryat+Malachi · · Score: 1

      Do you only work when you're at work?

      Hell no. You go get a drink, chat with coworkers, etc. (If you don't, you're abnormal.) Sometimes, instead of talking to a coworker or getting another cup of coffee, I waste five minutes on Slashdot or (god forbid) SI.com. This is normal.

      Maybe being less socially retarded would help you?

      --

      ---
      Mod me down, you fucking twits. Go ahead. I dare you.
      (I read with sigs off.)
    2. Re:Gee, that is sad by Skye16 · · Score: 1

      OR I could spend 10 hours a day at work, work at my leisure, and still do my fucking job. I have a very specific set of tasks to do. I do them. I go above and beyond them. But I'm not going to kill myself over any job. My managers are thrilled with my performance. So sit the fuck down and shut the fuck up.

    3. Re:Gee, that is sad by Anonymous Coward · · Score: 0
      I've worked with jerks like you. In your 10 hours at work, you get about 4 hours of real work done and crow about that to make it sound like Real Personal Sacrifice. You go on and on about all that fucking work you're doing when you're really working on personal projects and surfing porn.

      Give me someone who budgets their time, works a real 8 hours in a day, then goes out for socialization.

      Foosbal fuckers like you took down the last company I worked for, so don't tell me to shut up, you prick.

    4. Re:Gee, that is sad by Vitriol+Angst · · Score: 1

      The previous Anonymous Coward is either a hypocrite or unemployed. Possibly both.

      If you have good management, they go by results. If not, they go by time served and rules broken.

      --
      >>"ad space available -- low rates!!!"
    5. Re:Gee, that is sad by Skye16 · · Score: 1

      Actually, I let my work speak for me. The only people who know I stay late are the people who sit next to me. I don't even care how late I'm there. I get my job done, whether it takes 2 hours of work or 16 hours of work. It gets done and it gets right. Luckily, our company is structured so that the two things that matter are a: coworkers (that you work hand-in-hand on a project with, usually side by side), and b: project success. So when our project gets a follow-on contract for a few million and a glowing "exceeds all expectations" survey from our client, it makes all of us look good with management, especially the developers. So make all the wild, assinine suppositions you want. You're fast proving that you're a moron, so it doesn't really matter one way or the other.

    6. Re:Gee, that is sad by Skye16 · · Score: 1

      It's all about results. Of course, then it boils down to "who is responsible for those results", but our company is filled with people who are all about putting project goals and team goals ahead of personal success. On the current project I'm on, we just hired a lady who was previously from IBM. She constantly enthuses on how there is zero backstabbing or "credit-taking" at my company, in stark contrast to IBM. There, apparently, everyone has to state loudly and often what they were responsible for accomplishing. Where I work, your coworkers do that for you. I've never once seen someone take credit for something another person has done where I work. People who can't do the job generally dont' make it past their probation period. Afterwards, they will be let go if they don't live up to expectations.

  75. Re:RMS, Is That You? by void+aint+() · · Score: 1, Flamebait

    mind if i care?

    most of you guys are using free software and not even appreciating it. i find that sick.

    guess what, RMS is the reason why linux exists and why we are able to use it productively. he's the single most important reason as to why we still have open sourcecode at all.

    if everyone was as ignorant as you are, we'd all be using trashy OS like windows and shit.

    i, for my part, am really grateful for the things RMS has achieved and everytime i 'convert' some of my friends and relatives to a gnu/linux system, i'll give them a lesson about copyleft and freedom of information. so should you.

  76. Here's your answer, smart guy by gosand · · Score: 3, Insightful

    Here is your answer: For the most part, Mac people don't even know what the heck a kernel is. Linux people are nearly required to.

    --

    My beliefs do not require that you agree with them.

    1. Re:Here's your answer, smart guy by Anonymous Coward · · Score: 0

      Yes, we do. Kernels are:
      1. those small hard thingies that you find at the bottom of popcorn buckets.
      2. people in charge of battalions. It's the rank above major and below general.

      Goes to show how smart you are.

  77. The problem with Mach by Maury+Markowitz · · Score: 5, Interesting

    Although interesting, Mach was developed at a university and shows a huge number of problems as a result. Notably performance is terrible, due largely to the IPC performance. When people actually tried the "collection of servers" operating system in Mach 3, it was clear it was simply not a workable solution. Workplace OS, Star Trek and any number of other OS's died as a result.

    What's sad about this is that the failure of Mach tainted ALL ukernels. By the mid-1990s the idea was basically dead. But what an idea! Don't have your machine on a network? Simply don't run the network program. Using a diskless system? Don't run the disk server. Don't want _VM_... no problem. You can use the exact same OS image to build anything from a minimal OS for a handheld to a full-blown multi-machine cluster, without even compiling. No pluggable kernels, no shared libraries, no stackable file systems, nothing but top and ls.

    But it just didn't work. IIRC performance of a Unix app on a truly collection-of-servers Mach was 56% slower than BSD. Unusable. Of course you can compile the entire thing into a single app, the "co-located servers" idea, but then all the advantages of Mach go away, every single one.

    Now, given this, the question has to be asked: why anyone would still use it? Don't get me wrong, there are real advantages to Mach, notably for Apple who ship a number of multiprocessor machines. But the same support can be added to monokernals. Likewise Apple's version has support for soft realtime, which has also been added to monokernels. So in the end the Mac runs slower than it could, and I am hard pressed to find an upside.

    Of course it didn't have to be this way. The problems in Mach led from the development process, not the concepts within. As L4 shows, it is possible to make a cross-platform IPC system that is not a serious drag on performance. And Sun's Spring went further than anyone, really re-writing the entire OS into something I find really interesting, and still providing fast Unix at the same time. I'd love to see someone build Mac OS X on Spring...

    1. Re:The problem with Mach by Animats · · Score: 4, Interesting
      Although interesting, Mach was developed at a university and shows a huge number of problems as a result.

      Sad, but true. The developers of Mach chose to start with BSD and tried to hack it into a microkernel, one section at a time. This was a flop. Mach 2.5, which Apple uses, is basically BSD with some Mach features. Mach 3 is more of a microkernel, but is so awful that nobody uses it.

      There are really only two microkernels that work - VM, for IBM mainframes, and QNX. In both cases, incredible care was put into getting the key primitives - interprocess communication and scheduling - right. If those are botched, the system never recovers.

      Mach suffered from too much "cool idea" syndrome. There's too much generality in key primitives that need to work fast. Message passing has too many options. The ability to build heterogeneous multiprocessor clusters out of whatever you have lying around complicates the simpler cases. And sharing memory across the network isn't worth the trouble.

      It's clear from VM and QNX how a microkernel should work. Interprocess communication and scheduling need to play well together. Interprocess communication primitives should be like subroutine calls, not I/O operations. Try for an overhead of about 20%, and don't get carried away with the "zero copy" mania. Organize the I/O system so that the channel drivers that manage memory access are separate from the device drivers that manage the device functions.

      This is how you get uptime measured in years.

    2. Re:The problem with Mach by SewersOfRivendell · · Score: 1
      Some tangents: Apple's StarTrek project, which I assume you're referring to, was based around Novell DOS, not Mach.

      Likewise Apple's version has support for soft realtime, which has also been added to monokernels. So in the end the Mac runs slower than it could, and I am hard pressed to find an upside.

      Two upsides:

      1. Mature memory management. FreeBSD uses a VM system based on Mach concepts. Linux does too. What really killed Copland, more than anything else, was that it was friggin' slow. This made it impossible to demo effectively. The immature VM system was a big reason -- it was evicting pages from the buffer cache in the wrong order.

      2. I find stability to be a big advantage. Fundamentally, it's easier to ensure type safety with message-passing than with traditional system calls, even though Mach 3 uses "untyped" messages.

      Is it better than L4 or Spring? Probably not. I'd love to participate in a project to get Mac OS X up and running on Spring or L4.

    3. Re:The problem with Mach by Anonymous Coward · · Score: 0
      Now, given this, the question has to be asked: why anyone would still use it? Don't get me wrong, there are real advantages to Mach, notably for Apple who ship a number of multiprocessor machines. But the same support can be added to monokernals. Likewise Apple's version has support for soft realtime, which has also been added to monokernels. So in the end the Mac runs slower than it could, and I am hard pressed to find an upside.

      Avie, the original author of Mach, happened to be in charge at the time Mac OS X's future kernel was chosen. I think you can fill in the rest.

    4. Re:The problem with Mach by oudzeeman · · Score: 1

      XNU is based on Mach 3.0, not Mach 2.5

    5. Re:The problem with Mach by Animats · · Score: 2, Informative
      XNU is based on Mach 3.0, not Mach 2.5

      Actually, Apple's kernel is a collection of parts from BSD, Mach, and IOKit. It's a monolithic kernel like Mach 2.5, not a microkernel like Mach 3.0, although some parts from the Mach 3.0 code base were supposedly used.

      IOkit is written in the "embedded subset" of C++, an idea from 1999 that never caught on. Drivers are loadable kernel modules, as with Linux, but the structure is quite different.

      Any driver can crash the kernel. It's not a microkernel at all.

    6. Re:The problem with Mach by oudzeeman · · Score: 1

      I know that. I was just saying the Mach code that they used in XNU was based on Mach 3.0, not 2.5. I posted a rant about how Darwin/OS X use XNU for a kernel, not Mach (although XNU is based on Mach and FreeBSD), and they do not use a microkernel

    7. Re:The problem with Mach by Listen+Up · · Score: 1

      Although interesting, Mach was developed at a university and shows a huge number of problems as a result. Your attitude in this post is shown again a previous post, located HERE during this same thread. Your statements and views are not only completely false, but highly ignorant and pompous.

      University research is performed by some of the most brilliant minds in the world. The modern world exists as it does today because of university research and/or the application of direct results of university research. There is not a separation between "research-world" and "real-world", as some people tend to believe.

      What is true is that pure university research is designed to discover and explain, sometimes under very quanitized conditions. Whether those quantized conditions completely and accurately describe a general set of conditions is something entirely different. And that is the mistake people like you make when they berate university research. And this does not even begin to touch on research that is purely for academic progress, whether there is a direct application or not.

      The creation of additional applicable solutions, using basic university research, to include additional variables to a specific or general application is called "engineering". As stated above, there is not a difference between "research-world" and "real-world". They are the same. Without the first, the second would never exist.

    8. Re:The problem with Mach by PlacidPundit · · Score: 1
      Now, given this, the question has to be asked: why anyone would still use it? Don't get me wrong, there are real advantages to Mach, notably for Apple who ship a number of multiprocessor machines. But the same support can be added to monokernals. Likewise Apple's version has support for soft realtime, which has also been added to monokernels. So in the end the Mac runs slower than it could, and I am hard pressed to find an upside.

      Backward compatibility and prioritizing their work. NeXT chose Mach/BSD in the 80s and Apple decided not to rework the kernel and all existing system software for their updated OPENSTEP for the Mac.

  78. Tell me if I am on the right track here... by DarthVain · · Score: 1

    If I remember correctly my university years (which is a strech, as most of it seems to be blury and take place in a bar/bars), I did a presentation project on Mach OS. I am pretty sure in was an a Distributed Processing class. That would mean from my fuzzy logic (bullshit) that the Mach OS is a OS designed to be run as a distributed system like Corba (again its all kinda fuzzy). Wasn't it the great sage SCO that basiclly said that Linux is based on their Pripority UNIX code. Since that must be true its purpose and UNIX's purpose must be very close indeed! If you (as the reader) will conside that these MAY be correct and not total bs then that means you are compairing two OS's that were designed for very differnt reasons and purposes. If that is the case it isn't really an apples to apples comparision and thus more complex than a simple than "Linux ROCKS!" or "Mach is a razorblade". Anyway I am really just writing for the sake of seeing mine own words, take with a grain 'o salt.
    DarthVain

  79. Linux IS an OS, both historically and now by Phong · · Score: 4, Informative
    I always thought that Linux was indeed only a kernel for the GNU OS

    That is a true statement for the GNU project, but not for all of Linuxdom. Linux (the OS) was not started by the GNU folks. It was started as a separate project and incorporated items from the FSF (and BSD, etc.) into its release. From the beginning the whole OS has always been called "Linux" (search Google Groups for "linux 0.11 author:torvalds" and click on the "Linux information sheet" for an example of this).

    Yes, RMS prefers to call the OS GNU/Linux, but that's because he's seeing things from the perspective of the GNU project incorporating the Linux kernel into their work. The rest of Linuxdom see Linux as the name of both the OS and the kernel, and qualify the name using the phrase "the Linux kernel" as an easy way to differentiate between the two.

    So, the opening statement in the OS X story is false: Linux is an OS, and is used as such by folks every day. This is the reality of the situation, and it is, at best, wishful thinking on the part of folks who claim it is not to say otherwise.

    --
    ..wayne..
  80. Onion article by johnny+cashed · · Score: 1

    Couldn't resist http://www.physics.mcgill.ca/~arobic/funny/Gillett e.html I hope their server holds

    1. Re:Onion article by Thud457 · · Score: 1
      "I hope their server holds"

      Well, so much for that!

      --

      the preceding comment is my own and in no way reflects the opinion of the Joint Chiefs of Staff

  81. Exokernels by Jotham · · Score: 2, Interesting

    Mono vs Macro... what about Exo

  82. I'll tell you what you get with Linux... by Anonymous Coward · · Score: 0

    ...complete system lockup with ndiswrapper beyond a certain version of ndiswrapper and a certain version of the Linux kernel (this is SuSE 9.1 - 9.2 doesn't work at all) Can't upgrade the kernel (or ndiswrapper won't work). Can't upgrade ndiswrapper (crashes kernel). Upgrade both? Complete lockup when running modprobe. Stuck. The monolith wins.

    1. Re:I'll tell you what you get with Linux... by The+MESMERIC · · Score: 1

      err ..
      have you tried another distro?
      Why does everyone assume Linux is the first distro they install?

    2. Re:I'll tell you what you get with Linux... by Anonymous Coward · · Score: 0

      So how do I transfer all my data, tools and applications from one distro to another.

      And more importantly why can't I get any help to get this fixed?

    3. Re:I'll tell you what you get with Linux... by The+MESMERIC · · Score: 1

      Because unfortunatelly and for the embarrasment of the Linux community. Suse is hardly seen as a distro with good customer support.

      However many Linux users are more than willing to spend their free time to help you out migrate.

      First thing buy a few cheap Live-CDs to find out which distro picks up the wifi.
      Check the wifi itself is OK.

      There one of many online shops that sells cheap Linux CDs - like OSDisc.com
      They cost about few dollars each.
      Make sure you include a few classic Live CDs such as:

      * Knoppix
      * Kanotix
      * Slax
      * Mandriva - old name Mandrake (know to be good at hardware detection)

      Check out forums:
      http://www.linuxquestions.org/

      Check out a Linux User group near you:
      http://www.linux.org/groups/

      If you end up liking Mandriva, their support is better and for a small subscription fee you can join their "Club" to get help.

      Commercial distros such as Xandros specially and Linspire are known to have very excellent customer support. But I've never had direct experience this is what I keep hearing.

      For Debian systems Libranet is known to have very good customer support also.

      If all this is confusing, just make a list of what you need and I will try my best to help you out.

  83. Re:Monolithic by Anonymous Coward · · Score: 0

    I can't believe that you are modded up for this. Who says that monolithic has anything to do with running in usermode or not? The Linux kernel is highly modular, so not monolithic.

  84. L4 performance? by emil · · Score: 2, Interesting

    HURD abandoned Mach because of performance issues and is being reimplemented on L4.

    If Apple had chosen L4, would it have been necessary from a performance perspective to include BSD at a peer level with the microkernel?

    Is it now far too late for Apple to dump Mach?

    1. Re:L4 performance? by Anonymous Coward · · Score: 1, Funny

      Yes, Apple should totally follow the direction of HURD, as they are truly pioneers in not-releasing useable software, from which Apple could learn a lot from.

  85. Re:RMS, Is That You? by Anonymous Coward · · Score: 0

    I'm gay and I'm using a Mac. I was already gay, when I got my first Mac, although I had my coming out 6 years after that.

    So if owning a Mac makes you gay, it's a long process.

  86. Re:Monolithic by AT-SkyWalker · · Score: 3, Interesting
    The apple design is, however, what i'd call bad. They've taken a microkernel (Mach), and implemented a monolithic kernel beneath it, to run their legacy apps!!! It's ugly!

    I would disagree with you there. Apple's design may not be beautiful, but it certainly has the best of both worlds.

    The BSD Layer, Memeory Managment, etc are all built inside XNU (OS X Kernel) but at the same time its still functions as a microkernel allowing things such as Kernel Extensions (Kext).

    The problem with a fully MicroKernel is that its very slow because of all the context switching that has to go on between userland/and kernel land to do what is essentially kernel functionality. Apple solved this by making XNU not act as a microkernel for things such as the BSD layer.
    The result is a Kernel that is less prone to panics. In Linux a bad KLM would certainly panic the kernel because it runs in the same address space as the kernel. In OS X a bad Kext would just die like anyother user space program.

    As you said, it may be ugly in your opinion, but it gets the job done, it has the best of both worlds, and its less prone to panics. Now that's what I call a step in the right direction.

  87. MacOS X is *not* a microkernel architecture by Anonymous Coward · · Score: 4, Informative

    Just because it runs on Mach doesn't mean that MacOS X is a microkernel architecture.

    Just as an example, on the new MacMini hardware, sound level control is done in kernelspace (since HW doesn't support that anymore)! Whereas the LinuxPPC developers refuse to do things like this in kernelspace.

    Actually in Linux many things are pushed out to userspace (think udev), making it much more microkernel-like than MacOSX.

    (Not that Apple-Fanboys would understand anything of that)

    1. Re:MacOS X is *not* a microkernel architecture by BigZaphod · · Score: 1

      "Not that Apple-Fanboys would understand anything of that"

      Why not?

    2. Re:MacOS X is *not* a microkernel architecture by Anonymous Coward · · Score: 0

      Hah! If only I knew!

    3. Re:MacOS X is *not* a microkernel architecture by Anonymous Coward · · Score: 2, Insightful

      Some of us apple fan boys happen to have extensive backgrounds (and educations!) in Computer Science, and OS Theory in general. Linux isn't the only playground of the smart and educated.

    4. Re:MacOS X is *not* a microkernel architecture by argent · · Score: 1

      Microkernel is not about what space software runs in, it's about how the components that make up the system fit together. Among other things, this means having an API based on communicating between components (whether that's message queues, rendezvous, or whatever), and in fact that's MUCH more important than whether components are inside or outside the kernel... in fact a lot of older microkernel designs didn't HAVE a distinction between "in the kernel" and "outside the kernel"... that abstraction is really part of the security model of the system.

      Linux seems to use a separate API for just about every pair of subsystems that need to communicate. It's modular, yes, but it's not even vaguely microkernel-like.

    5. Re:MacOS X is *not* a microkernel architecture by Anonymous Coward · · Score: 0

      Sorry, but I think you made that up.

      Using your definition one could argue that yes, Linux does have an "API based on communicating between components": it's called "C-function calls" together with an IDL called "C-function declarations".

      But seriously, the in-kernel interfaces have been considerably cleaned up for 2.6 (just think VFS-Layer) and Linux pretty much ressembles your (wrong) definition of Microkernels.

      It's modular, yes, but it's not even vaguely microkernel-like.

      Still it fits your definition better that OSX.

    6. Re:MacOS X is *not* a microkernel architecture by magadass · · Score: 0

      Dude wtf? did you ever take an Operating System Infrastructure course in college, that comment was so far off, good lord.

      Its based on what space the kernel resides in, to be specific what memory space the kernel resides. Microkernels typically reside in their own protected memory space, while a monolithic kernel such as linux doesn not, it may appear that it does though because of the modularity of the linux kernel but indeed it does not! But I dont see what the big deal is, the Windows kernel is a microkernel also, but its not 100% microkernel its more of a mix between microkernel and monolithic kernel, I think AmigaOS was like this also from what I can recall, I wonder if this will aid Mandrake..intersting...

      Anyways, yeah, look it up man...Its all about controlling system controls within a particular memory space...

      --
      "If I was smarter I could rule the world!"
    7. Re:MacOS X is *not* a microkernel architecture by Anonymous Coward · · Score: 0

      Dude, AmigaOS didn't even have memory-protection.
      OTOH, it heavily relayed on message-passing, so yeah, it had some microkernel characteristics.

    8. Re:MacOS X is *not* a microkernel architecture by kuzb · · Score: 1

      Oh my, Anonymous Coward knows Kung-Fu!

      --
      BeauHD. Worst editor since kdawson.
    9. Re:MacOS X is *not* a microkernel architecture by Anonymous Coward · · Score: 0

      I bet you use the word CS to mean XML, Flash and the GUI(tm) technology.

  88. Re:That's the reason Apple's come in those colours by ettlz · · Score: 1
    I've got dark brown NeXT machine.

    Mine is still its original dark black charcoal gré. Did you deface your NeXT by respraying it?! Oh, you philistine! And after Steve Jobs went through hell repainting his factory over and over again to get just the right shade!

  89. Re:Monolithic by Anonymous Coward · · Score: 0

    You're completely wrong. In Linuxland more and more things are being pushed out to userspace (where it makes sense: e.g udev). Under MacOSX things like soundmixing is done in kernel space!

  90. Re:Monolithic by Alien+Being · · Score: 4, Informative

    "I can't believe people are modding you up for this."

    I can. Maybe you're too young to remember when the term monolithic was commonly used to describe a kernel which, instead of using loadable modules, was linked as a single binary image. This was, and is, a valid use of the word. Here's an example.

    The first time I heard someone say that Solaris is monolithic, I thought that they were saying that, like SysVR3, it didn't support loadable modules. I didn't realize that, with the development of microkernels, the term "monolithic kernel" had started to be used in a different context.

  91. You are very confused. by Some+Random+Username · · Score: 4, Informative

    First of all, having modules or not has no effect on being monolithic. The entire kernel is a single process that simply executes code, wether its compiled into the kernel, or loaded into the kernel as a module makes no difference here. Microkernels actually have seperate processes for different parts of the kernel, and they cannot execute code from each other, they must communicate back and forth using some sort of message passing system.

    And second, no BSD based kernel forces you to use modules. Have you actually tried any BSD? Modules are entirely optional, just like linux. In fact, openbsd's kernel only has support for modules, but nothing is actually compiled as a module, and using modules is unsupported.

  92. Was it a technical decision? by Anonymous Coward · · Score: 0

    Google for Avadis Tevanian.

  93. Re:qnx does just fine with a u-kernel and message by Maury+Markowitz · · Score: 5, Informative

    > QNX uses shared memory to pass messages

    So does Mach, and it's slow. I've never seen real-world measures to suggest that QnX is fast. All we know is that the performance of the OS itself is good, and that's a VERY DIFFERENT measure.

    The slow performance is due to a number of problems:

    1) not all MMU's are really suited to this task. Many are slower to set up than just copying the memory around. Sun found this to be at around 5k, below that, it was faster to just copy memory physically.

    2) MMUs/VM are based on pages, 2 or 4k typically. Thus passing in a single 32-bit int parameter causes big page hits. You can tune this out, but it's still annoying.

    3) Each copy takes TWO context switches - one to switch into the kernel to copy the memory across ports, another back out to the called program. This means that even the simplest "system calls" are twice as slow as under a monokernel, AT BEST.

    4) Additionally the data has to be examined to see if it contains ports being passed around, and if so, they have to be translated because the port codes are private to a program (and thus different in the other one).

    5) Using mapped memory ignores all the hardware specific solutions to these problems, many of which are built into modern processors.

    It's exactly the sort of one-size-fits-all solution that you'd expect from a research project. One that doesn't work in the real world. One that should have been replaced, and was in L4, Spring, etc.

    For instance, Spring included three different IPC systems, each tuned to certain types of data, each used in different ways on different CPUs. The "fast-path" used a half-switch into the kernel by mapping off registers, allowing IPC to degenerate into register passing largely identical to a procedure call. As long as the message fit within the limitations -- 8 registers, no port identifiers, etc. -- it was faster than a traditional Unix trap. These limitations seem serious, but were in fact used for 80% of calls and 60% of returns (you often say "getDiskSector(integer value)" which could fit into the fast-path, and get back 2k of data which wouldn't).

    Maury

  94. Mono / Micro by spring · · Score: 4, Insightful

    Linux is in spirit a monolithic design, and MacOS is in spirit a mach-based microkernel design.

    In reality, though, both MacOS X and Linux have departed from the architectures in mostly pragmatic ways. OS X is not a "pure" microkernel in the mach sense.

    1. Re:Mono / Micro by MasonMcD · · Score: 2, Funny

      Linux is in spirit a monolithic design, and MacOS is in spirit a mach-based microkernel design.

      More like Linux is like a farming co-op, XNU is Monsanto.

      Or, maybe Linux is like a monkey with a spanner, and XNU is like a komodo dragon with a toothache.

      No, wait. Linux is like a pulmonary thrombosis! and XNU is the dropped sponge in a gastric bypass!

      Damn! OK! I admit it! My analogies have fallen, and they can't get up.

      I will now explain the difference with an interpretive dance, perhaps some origami.

    2. Re:Mono / Micro by spring · · Score: 1

      I'm not sure that XNU is like Monsanto, but I'd sure like to see that interpretive dance. Might even slip a fiver in your G-string.

  95. Re:qnx does just fine with a u-kernel and message by Anonymous Coward · · Score: 1, Insightful

    you're crazy, a RTOS is designed to handle that kind of load. On a submarine or on your PC. That's what real-time means. Next time XMMS starts stuttering when doing a compile, remember that you're using a non-RTOS

  96. Re:Monolithic by Anonymous Coward · · Score: 0

    Linux modules do not run in user-mode.

    You mean like the whole BSD-Subsystem of MacOS doesn't run in user-mode?

  97. Re:Monolithic by Alien+Being · · Score: 1

    The parent is not informative. Although his statements are correct in the context of this story, there are in fact more than one meaning to the term "monolithic kernel".

  98. Re:Monolithic by Anonymous Coward · · Score: 2, Informative

    The problem with a fully MicroKernel is that its very slow because of all the context switching that has to go on between userland/and kernel land to do what is essentially kernel functionality. Apple solved this by making XNU not act as a microkernel for things such as the BSD layer.
    The result is a Kernel that is less prone to panics. In Linux a bad KLM would certainly panic the kernel because it runs in the same address space as the kernel. In OS X a bad Kext would just die like anyother user space program.



    In xnu, KExt's are not userland processes. They are kernel extensions, just like on most other *nixes. I don't know where people get these patently false notions.

    From the documentation...


    Kernel Extension Overview
    As discussed in the chapter "Kernel Architecture Overview", Mac OS X provides a kernel extension mechanism as a means of allowing dynamic loading of code into the kernel, without the need to recompile or relink. Because these kernel extensions (KEXTs) provide both modularity and dynamic loadability, they are a natural choice for any relatively self-contained service that requires access to internal kernel interfaces.

    Because KEXTs run in supervisor mode in the kernel's address space, they are also harder to write and debug than user-level modules, and must conform to strict guidelines. Further, kernel resources are wired (permanently resident in memory) and are thus more costly to use than resources in a user-space task of equivalent functionality.

    In addition, although memory protection keeps applications from crashing the system, no such safeguards are in place inside the kernel. A badly behaved kernel extension in Mac OS X can cause as much trouble as a badly behaved application or extension could in Mac OS 9.

    Bugs in KEXTs can have far more severe consequences than bugs in user-level code. For example, a memory access error in a user application can, at worst, cause that application to crash. In contrast, a memory access error in a KEXT causes a kernel panic, crashing the operating system.



  99. Those are awful examples. by Some+Random+Username · · Score: 2, Insightful

    Python, and mozilla are both significantly better than what you compared them too. And C++ vs Java is like monolithic kernel vs cheddar cheese, they aren't designed as or used for the same things at all, so of course neither is "better".

    The only comparison of yours that really works is coke vs pepsi. And obviously the answer is coke.

    1. Re:Those are awful examples. by Anonymous Coward · · Score: 0

      Cheddar cheese tastes better than monolithic kernel!

    2. Re:Those are awful examples. by Anonymous Coward · · Score: 0

      Ah, but this monolithic kernel is much more efficient as the core of an operating system, so it must be better.

  100. Re:RMS, Is That You? by Anonymous Coward · · Score: 0

    Hey, shit isn't a trashy OS. It's intuitive, requires minimal hardware, does automatic garbage collection, and even supports logging.

  101. HURD on Mach is done. by emil · · Score: 2, Informative

    While many devices are not supported, and the performance is not good, HURD/Mach is feature complete (and most of Debian runs on it, IIRC).

    Because the performance was bad, the new HURD effort focuses on reimplementing on L4. Perhaps with a faster microkernel, Apple could have avoided the kludge of an in-kernel BSD peer.

    If I am reading correctly, Mach is responsible for IPC in the Apple kernel. It would be interesting to see benchmarks of SYSV system calls to semaphores, queues, and shared memory (and perhaps even basic signal handling) under Linux and the Apple kernel on the same hardware if those are entirely handled by Mach.

  102. Re:Monolithic more popular, microkernel still appe by Maury+Markowitz · · Score: 1

    > Windows started off microkernel-y but has ended
    > up rather monolithic (at least partly for performance reasons).

    I've heard this claim before, but I'm not sure what to make of it. I always suspected this claim comes from MS's marketting efforts, trying to make it cooler than it is. Remember, back then ukernels were still "cool".

    But the only actual example I can think of is the display driver, which used to run outside the kernel. AFAIK most everything else is done internally. And even the display driver used some sort of custom data-passing system, as opposed to a universal IPC, did it not? All of this is fuzzy... forgetting past...

    Maury

  103. Re:I'm Feeling Left Out by Anonymous Coward · · Score: 0

    Pffffftttttt....

    LISP roxxorz!!

  104. The world is not i386. by Some+Random+Username · · Score: 2, Informative

    Context switches are not rediculously slow on all architectures, so "a ton of context switches" isn't that big a deal unless you are using a poorly designed architecture that hasn't been improved, ever.

    1. Re:The world is not i386. by Anonymous Coward · · Score: 0
      a poorly designed architecture that hasn't been improved, ever.

      It has been improved!

      4004 -> 8008 -> 8080 -> 8086 -> 80186 -> 80286 -> 80386
      Admittedly, this ended before more /. readers were born.
    2. Re:The world is not i386. by Unknown+Lamer · · Score: 1

      So? Even if context switches are faster you still have the issue of sync I/O in L4 being zero-copy while Mach I/O copies the data at least three times.

      There are other reasons for Mach being slow. It was one of the first stabs at making a microkernel and it is great for that reason alone. The modern world, however, has moved onto the second generation with L4.

      --

      HAL 7000, fewer features than the HAL 9000, but just as homicidal!
    3. Re:The world is not i386. by Some+Random+Username · · Score: 1

      Don't "so?" me, you are the one that brought it up. I didn't say mach was fast, or good, or anything else. I just pointed out that you are acting like mach is to blame for intel's design flaw.

  105. Re:Monolithic by AT-SkyWalker · · Score: 1

    I admit my error :-). Thanks for correcting me.
    Is there a way then to extend the kernel through userland modules in XNU ? If its a microkernel then there should be a way, right ?

  106. Re:Monolithic by dilvish_the_damned · · Score: 1

    I am not sure this last has a lot to do with the fact they are using a microkernel. You can run the Linux kernel under Linux in usermode. You can run the linux kernel under win32 in usermode.
    However...

    The Linux kernel is monolithic. Linux modules do not run in user-mode. They are loaded into the kernel proper.

    Are you suggesting that if you could load (and run) modules in usermode in Linux it would then be a microkernel?
    There is an undeniable advantage to having drivers code run in ring0: performance and cleanliness. There is an undeniable advantage to allowing drivers to run in userspace: per user customization of the envirenement, but you will certainly take a performance hit( you cant make that MMU run any faster than its fastest, so I dont think this is arguable ).
    There are probably many more, I just wanted to stick with the most fundamental aspects as I see them.
    To some its a clear cut case as to which one "wins", but to others like me, we see tradeoffs.
    But mostly, in the end, when all issues are considered and calculated, it comes down to one thing: flame war.

    --
    I think you underestimate just how much I just dont care.
  107. Bullshit. by Some+Random+Username · · Score: 1

    While RMS was busy trying to spread his own breed of GNU/communism, BSD happened. And linux would likely still exist without the FSF anyways, it just wouldn't be GPL, Linus could have written a simple license of his own, big deal. The only significant contribution the FSF has made is their buggy and slow compiler/toolchain. Quit buying the RMS lies that he is the sole cause of the concept of open source software, and is thus responsable for all open source software in existance.

    1. Re:Bullshit. by Anonymous Coward · · Score: 0
      While RMS was busy trying to spread his own breed of GNU/communism, BSD happened.

      Linux happened too and was first in a position of needing tools in a hurry, giving an opening for GNU. I understand that GNU Hurd has finally borged the Mach kernel. zzzzzzzzzz...

    2. Re:Bullshit. by anagama · · Score: 1

      Linus makes no secret about it -- he wrote Linux to be the kernal for GNU's tools. RMS et al. were trying to make a free unix -- they had made compiler and tools and such, but no kernal. Linus made x86 kernal. Linux would not exist today as it does without BOTH Linus and RMS. Certainly Linus would have been hesitant to write a kernal if there were no tools whatsoever to use it with.

      --
      What changed under Obama? Nothing Good
    3. Re:Bullshit. by Some+Random+Username · · Score: 1

      Perhaps you should read more carefully what Linus has said about starting linux. He didn't make linux to be the kernel for GNU, he wanted a replacement for minix that was functional instead of educational. He chose to do this by making a kernel, and using the GNU utilities that already existed at that point. Had those GNU utilities not existed, he could have still made a functional minix replacement by using other free userland utilities, including from BSD. The GNU software was not a fundamental building block in the development of linux, it was just a convenient block, which could have been, and still can be replaced with superior software.

  108. Re:Monolithic by Anonymous Coward · · Score: 0
    I admit my error :-). Thanks for correcting me. Is there a way then to extend the kernel through userland modules in XNU ? If its a microkernel then there should be a way, right ?

    xnu isnt a microkernel in any real way. Of course, apple has tried pretty hard to limit the number of things you need to be in the kernel for, and when you do need to be in the kernel, they have provided frameworks (iokit, for ex) to make the development of the driver code easier.

    I believe the short answer to your question is no.

  109. Re:qnx does just fine with a u-kernel and message by Anonymous Coward · · Score: 1, Insightful

    Your point about simple system calls is pretty wrong. Sure, the simplest system call that has no real body will execute twice as fast without extra context switching, but if the system call is non-trivial, then the context switch overhead becomes a small percentage of the time. So at worst, it's twice as slow, and at best, it's just as slow. ;) Thus is the folly of microbenchmarking--it doesn't measure system performance, just how fast you can do one thing. The real problem with microkernels is that you can always do in a macrokernel what you can do in a microkernel, it's just more engineering effort in the kernel and possibly requires a reboot.

  110. Shall we call it.. by HumanTorch · · Score: 0, Offtopic

    Machintosh?

    Machinetosh?

    Machinetoss?

  111. Re:qnx does just fine with a u-kernel and message by Anonymous Coward · · Score: 0

    Next time QNX burns you a coaster because a network interrupt occurred and was prioritized over keeping the cdrom buffer full, remember you're using an RTOS, which is not at all designed to handle anything that resembles a desktop situation.

  112. Re:qnx does just fine with a u-kernel and message by TheRaven64 · · Score: 3, Interesting
    The benchmarks for Mach 4.0 showed it within 20% the speed of a monolithic kernel of the same era. Check the site for more details, although I seem to recall that the project is no longer in active development.

    There is one very easy way to kill a microkernel's performance - force it to use a synchronous system call API (e.g. POSIX). With a synchronous system call API, a context switch is required for every system call. With an asynchronous API, the process simply writes messages into a buffer (or set of buffers for different kernel services) until it either needs to wait for a response or its quantum expires. At this point, you switch to the next context (perhaps a kernel server) and process the incoming messages. This reduces the total number of context switches (and, more importantly the number of mode switches). If you want to see good performance from QNX, then use the native system call API, not the POSIX wrapper.

    --
    I am TheRaven on Soylent News
  113. Re:Debate? what debate? by ltbarcly · · Score: 0, Offtopic

    Your sig is misleading. It begs the question, "is there a pc that is equivelent to a mac?".

  114. Re:RMS, Is That You? by JebusIsLord · · Score: 2, Insightful

    Actually that's an EXCELLENT point... by your rationale we should actually stop calling it OS-X and just call it Mach, since the kernel apparenlty gets to name the whole OS. Oh wait, you say that the rest of the OS took a lot of hard work to develop? Maybe calling Linux just plain GNU would make more sense.

    --
    Jeremy
  115. Re:qnx does just fine with a u-kernel and message by williamhb · · Score: 2, Insightful

    3) Each copy takes TWO context switches - one to switch into the kernel to copy the memory across ports, another back out to the called program. This means that even the simplest "system calls" are twice as slow as under a monokernel, AT BEST.


    Ahem, the point the poster was making was about modern desktop computers going multicore, in which case you cannot discount the possibility that the message will be going from an OS process active on one core to an OS process active on another core. This can potentially involve zero context switches. So "AT BEST" would not be twice as slow...
  116. design AND performance better with safe kernel by 0xABADC0DA · · Score: 2, Interesting

    Actually, monolithic kernels will always be faster... in fact why not make all software monolithic? What I am talking about is running all programs in the kernel address space with simple function calls to kernel services. That would make the computer much faster, and it can be done.

    If the entire operating system were written in a safe language such as Java or C# ("managed" code only) then the performance impact from syscalls, virtual memory (TLB flush/lookup), complicated task switching, and extra copies of data from/to the kernel would be almost entirely eliminated. A safe language is one that does not allow arbitrary pointers.

    FYI, in a linux 2.6 kernel on a 512 meg machine 4 megs is taken just to have page tables -- not even including the overhead when processes actually add pages to their memory spaces, just to have support for VM in the first place. Syscalls take ~1000x longer than normaly functions, so they are always going to be a bottleneck. And when you call a syscall that takes a data parameter (string for instance) the data is in the best case copied (in the worst case the kernel sets the address of the reading instructions in a table, then a page fault happens and the fault handler checks the table to see if the access was okay). IO using read/write is always copied at least twice, and even mmap suffers from a lot of overhead from the kernel managing the pages.

    Basically kernels written in C or other archaic systems programming language are needlessly slowing down the computer a LOT. With a safe language for instance, instead of using the virtual memory to force programs to not mess with each other, they simply can't do that so the VM can be used for other things. One nice performance enhancement is to allocate all memory (objects) in a 'new' zone and use VM to track what pages have been written to; when the 'new' zone fills up only pages that have been written to are checked for references during garbage collection. So basically you could do 1 billion memory allocations of arbitrary sizes and it would take only 1 billion instructions (each allocation increments an integer and that's all). Also, "system" calls are then just normal method calls and can even be inlined, so instead of getpid() taking the time of 1000 instructions it could easily take only 1 (direct inlined access to the variable).

    So lots of people will mod this down since they assume that the low-level details like cache lines are more important than oh, say, free memory management. But I got some news: a few minor tweaks and you can do all that same low-level crap in Java or managed C# and get all the benefits of a safe kernel.

    1. Re:design AND performance better with safe kernel by saider · · Score: 1

      You can do something like this with Busybox or BSD's crunchgen. I do embedded development and these tools esentially statically link everything together into one big program. It is handy, but I have not measured performance with it. The biggest issue is building the binary, since it would has to be built for the user's application selections. I'm sure someone could come up with a dynamic loader where each program is a library.

      The language does not really matter. They all evaluate to ones and zeroes anyway.

      --


      Remember, You are unique...just like everyone else.
    2. Re:design AND performance better with safe kernel by iggymanz · · Score: 1

      well, I'd rather see a pointer-safe (and nil value safe) procedural language with structures as the most complicated data representation, building and tearing down objects for all the data structures and messages an OS has to pass around probably would constipate things.

    3. Re:design AND performance better with safe kernel by PCM2 · · Score: 1
      So lots of people will mod this down since they assume that the low-level details like cache lines are more important than oh, say, free memory management. But I got some news: a few minor tweaks and you can do all that same low-level crap in Java or managed C# and get all the benefits of a safe kernel.
      You've got my vote. Can you get this finished by the end of the month?
      --
      Breakfast served all day!
    4. Re:design AND performance better with safe kernel by 0xABADC0DA · · Score: 1

      No, but if you have vmware or the right hardware you might want to check out JXOS an all-Java operating system. It was done by I think 2 people in their spare time, and it's like 50% of Linux speed at an actual benchmark (nfs filesystem). That's pretty good for two guys writing everything from scratch.

    5. Re:design AND performance better with safe kernel by EddWo · · Score: 2, Informative

      Check out this recent video discussing Microsofts "Singularity" research project works in this way.
      <URL:http://channel9.msdn.com/ShowPost.aspx? PostID =68302>

      --
      "Taligent is still pure vapor. Maybe they'll be the last who jumps up on Openstep... "
    6. Re:design AND performance better with safe kernel by EddWo · · Score: 1
      --
      "Taligent is still pure vapor. Maybe they'll be the last who jumps up on Openstep... "
  117. Re:Debate? what debate? by Anonymous Coward · · Score: 0

    You are using "begs the question" incorrectly, wiseguy. :)

  118. They have more in common than you may think... by ikewillis · · Score: 4, Informative
    XNU, the kernel of OS X, is a hybrid of Mach and select BSD code, which leans substantially more towards a monolithic kernel design. What Mach typically handled in a microkernel manner with servers, namely things like the VFS, networking, etc. have all been completely removed in XNU. Where once there were Mach servers there is now the FreeBSD Unified Buffer Cache, to which Apple has attached various FreeBSD subsystems like the FreeBSD VFS and network stack.

    XNU is essentially a monolithic kernel, much like Linux. The real differences, in my opinion, lie in the IOKit object oriented driver API, whereas Linux has no real driver API and drivers have complete access to all kernel functions as drivers are simply kernel modules.

    1. Re:They have more in common than you may think... by temojen · · Score: 1

      So you're saying it's Mach 2.5, not Mach 3? (Mach was built from BSD by gradually moving things to the new architecture; it's always had BSD code).

    2. Re:They have more in common than you may think... by BeerCat · · Score: 1

      So you're saying it's Mach 2.5, not Mach 3?

      Or, roughly F-15 Eagle, not XB-70 Valkyrie !

      --
      "She's furniture with a pulse"
    3. Re:They have more in common than you may think... by kaiwai · · Score: 1

      Nope.

      Tru64 was developed off Mach 2.5

      NeXT was developed off Mach 3.0

      With that being said, its really of no use to worry about who was based off what considering that it would only be relevant had they stayed static; the likelihood of Tru64 *NEVER* merging 3.0 improvements? highly unlikely.

      As for MacOS X itself, they probably sat down, kicked out the ugly parts (over engineered, convoluted or riddled with patents etc from other contributers to Mach development) and embraced the nice parts from BSD to replace them.

      Ultimately, they've done a nice job; although its not as scalable as say Tru64 or Solaris, it does the job well, and if it can scale up to 8 way ( 4 x cpus, with two cores in each (8 cores total)), then I'd say that Apple would be hitting the sweet spot in regards to where volume is in the server market.

      As for the desktop - It'll be interesting to see how they embrace dual core processors; I don't see them coming to the consumer line soon, as quite frankly, very few application vendors out there are actually taking advantage of it.

      [ Yeah, I know, waaaaay off topic, but I tend to embrace the grand-unified conversation model :-) ]

  119. Re:RMS, Is That You? by AndroidCat · · Score: 1
    Maybe calling Linux just plain GNU would make more sense.

    No, it should be called by whatever Shiny Pretty is doing the GUI desktop. That's all that people care about, and no one sees the GNU utilities.

    --
    One line blog. I hear that they're called Twitters now.
  120. Re:Debate? what debate? by KarmaMB84 · · Score: 1

    >My point is that writing a new operating system that is closely tied to any >particular piece of hardware, especially a weird one like the Intel line, >is basically wrong. -- Andy Tanenbaum 30 Jan 92 13:44:34 GMT

  121. Re:OT: PDF link clicking extension by beuges · · Score: 1, Offtopic

    Whats wrong with Right click, Save link as... ?

  122. Re:qnx does just fine with a u-kernel and message by Maury+Markowitz · · Score: 2, Informative

    My point was limited to the time for the switching itself. Perhaps I should have been more clear on this.

    The "at best" is assuming that the forgoing issues don't cause things like cache faults. Passing parameters in registers won't. Thus the performance really can be MUCH worse than twice even in the case of minimal calls.

    But even in that case the real-world performance of Mach is, in fact, much worse that twice as slow. I believe it was Chan that did all the big measurement runs, and - going on memory here - BSD on a 50MHz 486DX took 21 usec per syscall, and Mach 3 on the same machine took 114. I may have the number for BSD wrong, that might be the L4 number, BSD might be 9 usec.

    The other case is, in fact, even worse. This is the case where the system is constructed of a number of cleanly separated servers running as Mach tasks. In this case a system call may spawn off a series of calls, consider a page fault in the VM for instance. In this case you might end up with a chain of 5 IPC's causing traps. And each one of them is 5-15 times as slow. This is real-world noticable, even for I/O.

    One of the papers I have on L4 shows theoretical peak and sustained network throughput for IP on Mach, L4 and BSD. Mach had about 1/10th the performance IIRC. So that "best case" is pretty rare.

    Maury

  123. Re:Monolithic by EvilTwinSkippy · · Score: 2, Informative
    By all definitions Linux is monolithic.

    You can't download the binary of a driver, tell the kernel to load it, and expect it to work unless the person who compiled just so happened to have the exact same version info, and by some miracle the same compile options.

    Yes, distros like RedHat and SuSE do have binary drivers for download, BUT ONLY if you stay with the stock kernel.

    Just because you can "load modules" doesn't mean you are suddenly a microkernel. God it's like monolithic has become a swear word, it's a perfectly valid design.

    --
    "Learning is not compulsory... neither is survival."
    --Dr.W.Edwards Deming
  124. Re:RMS, Is That You? by anagama · · Score: 1

    by your rationale we should actually stop calling it OS-X and just call it Mach

    Funny and insightful. Great point!
    --
    What changed under Obama? Nothing Good
  125. its Gnu/Linux by Anonymous Coward · · Score: 0

    - its Gnu/Linux

    its GNU/Linux

    Linux is for the kernel
    GNU/Linux is for the OS

    its the right and legal way to mention it. You whont get killed if you call it Linux , you will just show that your clueless.

  126. What kind of crack have you been smoking... by ltwally · · Score: 3, Informative
    Just because linux gives you the options of going modular or monolithic whereas most BSD based kernels do not (you will use modules, period)
    It's a good thing you've already been modded to zero...

    To clear up any confusion: No *BSD uses a microkernel. (The only part of OS-X that is *BSD is the userland, which is derived from FreeBSD). The *BSD's are basically in the same classification as Linux/Solaris/HP-UX or any other UNIX or *NIX clone. Which means: all the *BSD's are monolithic in nature, with some modular abilities added on in recent years. Like Linux, the *BSD's can load a kernel-module upon request (either during boot, or upon superuser-request). These modules can also be compiled into the kernel itself (which is sometimes a good idea, as it saves a small amount of memory and improves performance).

    Anyhoo, back to the original topic: The MACH microkernel. Apple's implementation is excellent these days, but it definitely went through its struggles (which is one reason why we continue to see major speed improvements with new versions of OSX, even on older hardware). Creating a monolithic kernel is difficult enough, but to create a micro like MACH, and do it properly... that takes serious skills. Mad props, Apple engineers.
    --



    /dev/random
    1. Re:What kind of crack have you been smoking... by Anonymous Coward · · Score: 0
      It's unfortunate that you've not been modded to zero...

      Just because linux gives you the options of going modular or monolithic whereas most BSD based kernels do not (you will use modules, period) It's a good thing you've already been modded to zero... To clear up any confusion: No *BSD uses a microkernel. (The only part of OS-X that is *BSD is the userland, which is derived from FreeBSD). The *BSD's are basically in the same classification as Linux/Solaris/HP-UX or any other UNIX or *NIX clone. Which means: all the *BSD's are monolithic in nature, with some modular abilities added on in recent years. Like Linux, the *BSD's can load a kernel-module upon request (either during boot, or upon superuser-request). These modules can also be compiled into the kernel itself (which is sometimes a good idea, as it saves a small amount of memory and improves performance). The OS X kernel (xnu) has a lot of bsd code, indeed I would argue theres more freebsd kernel code in there than mach code. A large amount of the freebsd /usr/src/sys is dumped in there. This is not userland code, so quit spreading the fud that the only part of os x that's *bsd is userland.

      It's been repeated umpteen times already, but xnu is in no fashion a microkernel. It's every bit as monolithic as linux or freebsd or netbsd or openbsd or solaris or any other traditional *nix.

      As for no *bsd ever being a mk; I believe that you are overlooking the mach 'lites' project which ran freebsd essentially as a mach server. This was certainly a microkernel, and it was just as certainly *bsd.

    2. Re:What kind of crack have you been smoking... by Anonymous Coward · · Score: 0

      The XNU kernel, which is what OS X uses, is not a microkernel. It's a monolithic kernel just as much as NT or Linux.

      It has parts that are based on Mach, but it a mixture of FreeBSD and Mach kernels. One does not run in userspace on the other, they are one big kernel together.

    3. Re:What kind of crack have you been smoking... by prockcore · · Score: 1


      To clear up any confusion: No *BSD uses a microkernel.


      I think the problem is people don't understand what monolithic versus microkernel mean.

      For example, a microkernel has *NO* filesystem code in the kernel. Something like the filesystem would be handed in *userland* not the kernel.

      Meaning a daemon would be in charge of handling reading and writing files. The only thing the kernel would provide is direct access to the actual hardware.

      A monolithic kernel that has modules is just a monolithic kernel that can swap stuff out. When you /sbin/modprobe vfat it's the *kernel* that handles reading/writing of FAT32 partitions.

      In a microkernel, the code that handled reading/writing of FAT32 partitions would *never* be running in Ring0. It would be in userspace, not kernelspace.

  127. Here's is why , Moron. by Anonymous Coward · · Score: 0

    "For the most part, Mac people don't even know what the heck a kernel is."

    Mac people know what a kernel is , but they know its illegal for them to change it , modify it or resale it, so they work on other things if they do the previous they will get sued into oblivion.

    GNU/Linux OS user are not required to play with the kernel at all , but unlike for MAC they are given the right to do anything they wish with it.

    1. Re:Here's is why , Moron. by Anonymous Coward · · Score: 1, Informative
      Mac people know what a kernel is , but they know its illegal for them to change it , modify it or resale it, so they work on other things if they do the previous they will get sued into oblivion.

      Actually, the Mac kernel is completely contained in Darwin and is therefore open source. You are more than welcome to download it, compile it (even on x86), modify it, etc. without any risk of getting sued. No, you can't resale it and the license is more restrictive than other OS licenses, but most of what you said is simply false and absurd.
    2. Re:Here's is why , Moron. by Anonymous Coward · · Score: 0

      Shut up, fanboi. Come back when you have tried it.

    3. Re:Here's is why , Moron. by Anonymous Coward · · Score: 0
      Shut up, fanboi. Come back when you have tried it.

      The fact that the best that you can do to reply to the parent post is this childish babble (instead of backing it up with facts), shows that either

      a) You also haven't tried it

      or

      b) You are so technically incompetent that you tried, failed, and don't even know why you failed. And you are embarrassed to make your incompetence evident in Slashdot.

      In any case, you show the mental age of a 14 year old (tops). I'm personally inclined to think that you haven't even tried.
  128. Re:Monolithic by EvilTwinSkippy · · Score: 3, Interesting
    Actually, the Mac OS X Kernel is the Mac OS X Kernel, and the Linux Kernel is the Linux Kernel.

    To couch them in terms of Monolithic versus Micro would be like trying to classify an economy as Capitalist or Communist.

    Neither economy has ever existed in it's pure form. Both descriptions also have political overtones that have precious little to do with their actualy description.

    --
    "Learning is not compulsory... neither is survival."
    --Dr.W.Edwards Deming
  129. Re:RMS, Is That You? by Kenshin · · Score: 1

    Actually, wouldn't that be Mac/Mach?

    --

    Does it make you happy you're so strange?

  130. Re:Monolithic by cant_get_a_good_nick · · Score: 1

    I don't think you can say message passing is a feature of microkernels exclusively. DragonFly BSD uses a message passing interface internally to it's (IIRC) macrokernel. I did some work to a new device driver model that is now part of UnixWare that is definitely more message passing than API calls.

  131. Re:Monolithic by Alien+Being · · Score: 1

    "By all definitions Linux is monolithic."

    By *all* definitions? No, I already showed why that isn't true.

    "You can't download the binary of a driver, tell the kernel to load it, and expect it to work unless the person who compiled just so happened to have the exact same version info, and by some miracle the same compile options."

    You can't load code from a Univac either. That's beside the point.

    "Just because you can "load modules" doesn't mean you are suddenly a microkernel."

    Who said otherwise? My point was that there is more than one meaning to the word "monolithic" as it relates to an OS kernel.

    "God it's like monolithic has become a swear word, it's a perfectly valid design."

    You're reading way too much into what I wrote. Linux *is* monolithic in the sense that all of its components run in the same address space, and I'm not claiming that a microkernel would be better.

  132. well, no really different than mac os x by diegocgteleline.es · · Score: 1

    I don't understand why everybody says mac os x is a microkernel - it is not a microkernel. A microkernel most of the thigns in userspace. Mac os x moved _lots_ of things to kernelspace to save performance costs

    Hence, Mac os x is not a microkernel. They started from one - they are NOT one. It's not different than linux in that HFS or a driver can hang your box if there's a bug somewhere. It's no different than linux in that they're well-layered. They're not really THAT different, really - and NT is not really different either. I mean, those things have been studied, there's no "hidden magic".

    Maybe some people consider the mac os approach cleaner, personally I don't. If you're going to do a real microkernel, implemente everything in userspace and use message passing, do it. However if you're not going to do a real microkernel, why do you start from one and keep the message passing? May be some people find it "clean"...but message passing was done to write real microkernels, there's not need of it in a kernel that has lots of things in kernelspace like mac os x does. Do it the linux way - cheaper, simpler, less complexity....(this is why linus hates mac os x, they use microkernel funcionality to implement something that ends up being like traditional microkernels - lots of things in kernel userspace - so why not do it more KISS and kill message passing completely like linux does? You can do a good design anyway, design is not tyied to use messages or not)

    (Of course, both ways work)

  133. Nothing wrong with naming your own project by Phong · · Score: 2, Interesting
    In this post, you see that Linus was effectively trying to rename GNU

    That's certainly one cynical viewpoint, but is not what really happened. Linus started his own OS project and he named it as he pleased (or really those around him named it and he accepted the name). There's nothing wrong with naming your own project and then cherry picking the items you want to be in your project from the available choices. Keep in mind that the GNU folks were working on HURD at the time, and were not all that keen on the Linux kernel. So, this was not a case of someone coming along and completing the GNU project (at least, not at that time) -- this was a different OS project that shared a lot of the same code. In some ways it could be considered to be a fork, but even that is not right conceptually because the project didn't start out to be a GNU system. If the BSD utilities hadn't been under a cloud of a potential lawsuit, it may well have been that more BSD code would have made its way into the early versions of Linux (IIRC, the GNU tools were slightly buggier but more feature rich than the BSD tools at the time).

    Stallman tells us the call a GNU system running on Linux GNU/Linux.

    Stallman has every right to advocate that based on the perspective of someone close to the GNU project, and I have every right to ignore him based on my historical experiences with Linux from as far back as version 0.11 (I switched over from Minix to Linux, and helped Remy Card with some of the early work on ext2, so I've been using Linux for a long time).

    --
    ..wayne..
  134. Re:Monolithic by diegocgteleline.es · · Score: 1

    "Just because you can "load modules" doesn't mean you are suddenly a microkernel. God it's like monolithic has become a swear word, it's a perfectly valid design."

    Indeed. Just like a microkernel doesn't makes it suddenly "a better design". It's perfectly possible to write a microkernel with a ugly design (And mach is a good example of a _bad_ design, there're reasons why Hurd developers are going for L4). And that's because "design" has nothing to see with message passing or monolithic - it's perfectly possible to write a monolithic kernel with a wonderful design and very mainteinable. Message passing just encourages it. And give that mac os x is not a microkernel - they moved lots of things to kernel space because of performance, hence they're not a microkernel - linux and mac os x are not really that different.

  135. Re:RMS, Is That You? by cant_get_a_good_nick · · Score: 4, Insightful

    I hate flamewars, but as been said by many people many times, RMS does not get to define opensource. OpenSource existed long before RMS, and will exist after his demise. If you want to talk about fighting for open code, remember that the Regents of UCB fought for opensource code in a court case, and can say that they won.

    RMS is very important, but he's a zealot, and a lot of people don't agree with his views (I for one don't on a lot of issues). Don't get caught up in the whole Saint iGNUcious thing.

  136. Re:Debate? what debate? by Anonymous Coward · · Score: 0

    At least according to Andy Tanenbaum who said on 30 Jan 92

    5 years from now that will be different, but 5 years from now everyone will be running free GNU on their 200 MIPS, 64M SPARCstation-5.

    Where is Hurd today? from GNU

    support for character devices (like sound cards) and other hardware is mostly missing.

    And as far as running free GNU on their SPARCStation?

    Currently, the Hurd runs on IA32 machines.

    We also know about the superiority of the NT Microkernel.

  137. Re:OT: PDF link clicking extension by JHromadka · · Score: 1
    Whats wrong with Right click, Save link as... ?

    I use a Mac, you insensitive clod!!

    --
    "The objective of securing the safety of Americans from crime and terror has been achieved." -- John Ashcroft
  138. Re:OT: PDF link clicking extension by jakupovic · · Score: 1

    Only one mouse button ... :)

    --
    You always point your finger at the bad guy, but what if the bad guy points his finger at you?
  139. Re:RMS, Is That You? by Theatetus · · Score: 1

    Or, to keep it simple, just Mac(h). Or Mach? for you regexp people...

    --
    All's true that is mistrusted
  140. According to my Mom by CPhelan · · Score: 1

    The MACH kernel is brand new fighter pilot simulator, she thought so then deleted it at MACH 10.

  141. Usability by Strolls · · Score: 1
    For the most part, Mac people don't even know what the heck a kernel is. Linux people are nearly required to.
    Hey! This isn't a usability discussion!
  142. Let's agree... by midifarm · · Score: 1
    "Then we can concentrate on our real enemies, monogamist homosexuals and stem cells." - Ned Flanders

    Peace

  143. Re:Monolithic by Vitriol+Angst · · Score: 1

    Gawd. You obviously know how to jerk some chains Epiphani... I mean it is GUARANTEED that you will get into a useless and heated argument if you even mention Monolithic in a sentence. You might as well compare Pico and Edlin or the merits of a Command Line.

    Everyone knows that the entire computer is a module in userspace.

    --
    >>"ad space available -- low rates!!!"
  144. Re:Monolithic more popular, microkernel still appe by mrichmon · · Score: 1

    The original poster is almost right. Windows as in Windows 3.0/3.1/95/98 and so on (including earlier unsuccessful releases) were not designed using a micro-kernel approach. Many would argue that they were not designed at all. Windows NT 3.5 however was designed with micro-kernel architecture. Well, as close to a micro-kernel as Redmond has been able to achieve. However NT 3.5 suffered from significant performance issues. Some of these issues were seen to be a result of the layered microkernel approach. To address this, NT 4.0 moved many of the upper layers down into layers 0 and 1 and provided the ability for driver writers to install services into the lower layers. This was great for performance reasons since now drivers could make direct calls rather than message passing to the kernel services. However removing the separation started the rot of stuffing more and more things into the lower layers effectively transforming a micro-kernel into a monolithic kernel. The fact that these extra things stuffed into the kernel space have varying levels of QA and compatibility testing caused a trend to reduced stability in the resulting OS.

  145. Why Not Torrent Large Files From /. Links by theManInTheYellowHat · · Score: 1

    There seems to be a bunch of carping on this thread about large files and the "Super Slashdot Effect". Why not set up a torrent server for these poor links and let the poster and the readers actually get what they want?

  146. Windows XP is a microkernel OS, too. by callipygian-showsyst · · Score: 2, Interesting
    ...as anyone with XP device driver experience could tell you. Unlike the 60s era Unix technology that's the core of an Unix-based architecture, Windows XP was designed from the ground up to be modular, portable, and extensible.

    Cutler wrote a book on it, which is still worth reading, though out of print. Microsoft has a current "XP Internals" book available from Microsoft press.

    Also, Microsoft has an XP-based embeddable operating system, which eliminates many of XPs "desktop" enhancements. And of course, the excellent handheld operating systems that are the heart of Windows Mobile.

    1. Re:Windows XP is a microkernel OS, too. by Chucker23N · · Score: 1

      XP's kernel is *NOT* a microkernel by any means. Even part of its graphics subsystem lives in the kernel.

    2. Re:Windows XP is a microkernel OS, too. by kaiwai · · Score: 1

      NT 3 was the zeneath of Micro kernel design for Microsoft; they then buggered it up completely, not for pragmatic reasons like, "this is getting too complex", it was more, "we need fast graphics, and I want it now, so take all short cuts necessary". It has proven in the Linux and Mac world that shoving graphics display drivers into kernel isn't necessay to get good performance.

      Sure, there are issues with *NIX and X11; thats bound to happen, but that has *NOTHING* to do with the idea of keeping the drivers out of kernel space, and *EVERYTHING* to do with syncronisation etc. Once XCB replaces XLib, and ATI and Nvidia put down their giant size bongs, and start writing some quality code for once, life should improve in the UNIX world.

      What would be interesting will be how the Nvidia drivers for Solaris run since the heavy work has been done by SUN rather than Nvidia.

  147. Re:RMS, Is That You? by Trurl's+Machine · · Score: 1

    guess what, RMS is the reason why linux exists and why we are able to use it productively. he's the single most important reason as to why we still have open sourcecode at all.

    Not true. The single most important reason why we have open source code was "consent decree" from 1956, when Justice Department agreed to drop charges based on Sherman Antitrust Law against AT&T in exchange for compulsory licensing of all technologies developed by AT&T to American public for "nominal fee". When Bell Labs - part of the AT&T empire - developed Unix, they were obliged to supply source code to basically anyone who asked. That's how the open source Unix culture was born. RMS - with all due respect - has joined it quite later, when it was already florishing.

  148. Mach is NOT the Mac OS X Kernel by Anonymous Coward · · Score: 0

    ....XNU is. It is partly based on Mach, however it is also NOT a microkernel, as many of the BSD subsystems that normally live in userspace are incorporated into the XNU kernel. I'm (not) surprised that no one has pointed this out.

    Amit Singh of Kernelthread.com has an excellent handful of articles on OS X kernel and filesystem details.

    1. Re:Mach is NOT the Mac OS X Kernel by Chucker23N · · Score: 1

      Except that about a dozen people *have* pointed it out. Just scroll down a little :-P

  149. Re:qnx does just fine with a u-kernel and message by khrtt · · Score: 1

    [QNX]...performance is far better than Linux...

    As someone who actually evaluated and used both linux and QNX for embedded projects, I can say - not by a long shot. QNX is a very nicereal time operating system, with predictable interrupt timing and all that. But performance-wise it suckus-dickus. Too many context switches.

    Real-time operating systems have different design criteria than "normal" desktop-server OS, like linux. In general purpose OS you care about performance, which is average-case behaviour. In real-time OS you care about worst-case behaviour, which is a very different thing. You need things to be always predictable, even if they are not always efficient.

  150. torvalds vs. tanenbaum by just-a-stone · · Score: 2, Interesting

    still intersting and in some kind very funny the tanenbaum vs. torvalds debates about microkernel vs. monolithic architecture

  151. Re:qnx does just fine with a u-kernel and message by jericho4.0 · · Score: 1

    Well, there's theory, and then there's practice. A RTOS is generally designed to run one application in real time, not an arbitrary set of apps launched at random.

    --
    "A language that doesn't affect the way you think about programming, is not worth knowing" - Alan Perlis
  152. Answer Key by AvantLegion · · Score: 1
    PHP, Coke, C++, and Mozilla.

    I'm really happy I could help.

  153. Pragmatic restarts by hayne · · Score: 1
    Think about all the software updates & installs that you've done on OS X that end with "A Restart is Required".
    Many of these restarts are in fact not required. Apple merely programmed the installer to require the restart since:
    A) it was easier
    B) it eliminates any problems with dependencies like apps that are currently running and using the sub-system that was upgraded. (see A)

    I.e. Software Update often requires a restart because doing so enables Apple to release the update several days earlier than would be possible if they had to do all the necessary coding & testing to ensure that the update would work without a restart.

    1. Re:Pragmatic restarts by TheNetAvenger · · Score: 1

      I have to agree with your post.

      Even with Windows you will find this practice, because it is easier and eliminates locked files, conflicting applications in use that could prevent the driver in use to update immediately.

      The lowest level Driver in Windows is the Video which drops to a low Ring, and yet it can even be dynamically be loaded and unloaded at any time.

      However you will find that 99.9% of the time the Driver developers require the users to restart their systems. - It isn't because Windows NT's kernel and driver system is not capable of this, but just how the driver developers ensure there isn't a problem in the transisiton.

  154. Re:Monolithic more popular, microkernel still appe by EddWo · · Score: 1

    They are pulling a lot of stuff back into usermode for Longhorn. USB device drivers will be usermode, GDI will be software rendered in usermode, the new unified audio architechture is usermode. Basically only drivers that need to access hardware registers directly will remain in kernel mode.
    They are also changing the driver model to make writing drivers easier, so individual drivers do not have to reimplement plug and play and power management support etc. I guess they think that hardware performance has improved enough that it is worth sacrificing speed for stability.

    --
    "Taligent is still pure vapor. Maybe they'll be the last who jumps up on Openstep... "
  155. Ask /.: Adding new syscalls? by thogard · · Score: 1

    Mach has an interesting feature where a user app can add its on private system call. This could come in very handy for a emulator. My question is how is this done under OS X in a way that will continue to work with new releases?

    1. Re:Ask /.: Adding new syscalls? by kaiwai · · Score: 1

      They've added this new KPI thing recently; I haven't had much of a looky, however, it does make life alot easier for those who want to tinker with MacOS X's ticker without fearing breakages betwen verions.

  156. Re:qnx does just fine with a u-kernel and message by diegocgteleline.es · · Score: 1

    Its message passing is very lightweight, and the resulting performance is far better than Linux.

    Faster than passing arguments in the stack? Oh wait, we have an option to pass arguments in registers in linux 2.6. Is QNX message passing faster than passing arguments in registers? Somehow, I doubt it...

  157. kernel popping by Doc+Ruby · · Score: 1

    Is there a way to run Linux, say as a user-mode program, under OSX, letting Linux app binaries call the Linux kernel, alongside "native" OSX binaries calling the Mach kernel? Assumed exclusive kernel access to HW seems the biggest problem, but can it be solved through some kind of HAL that creates a virtual HW interface for each kernel, running under Mach for conflict resolution? Does OS virtualization layer software do all this at an acceptable performance cost?

    --

    --
    make install -not war

  158. Re:Monolithic by dadragon · · Score: 1

    Yes, but once a module is loaded, it failing can take down the whole system because the module is loaded into kernel space. A microkernel by definition is nothing more than a message passing interface that lets various user space processes handle everything else.

    --
    God save our Queen, and Heaven bless The Maple Leaf Forever!
  159. Re:OT: PDF link clicking extension by ScytheBlade1 · · Score: 1

    Command+click.

    (In all honesty, that's one troll that never made much sense... though, I guess that's the point of trolling :))

  160. Audio production by homer+dulu · · Score: 1

    If the OS X kernel is soooo slow being based on Mach, then why does it offer the lowest latencies in audio recording? Why are almost all of the major audio production houses (and home studio operators) use Macs? Pro Tools is tuned to run best on a Mac, Logic is Mac-only.

  161. Mach is a microkernel like Emacs is a text editor! by Dwonis · · Score: 1

    [No text]

  162. What it sounds like by kaiwai · · Score: 1

    One of those things you have to get *really* correct. When its good, its *VERY* good, and when its bad, its bloody horrible - in laymens terms.

    Sounds like the debate between 1:1 threading vs M:N threading - when M:N threading is done properly (like in Tru64), its a bloody great idea, but when it is shithouse, as the case of Solaris (prior to Solaris 9, now replaced with 1:1 in later Solaris 9 release, and default in 10), its horrible to the point that no bastard would want to touch it for all the tea in China.

  163. Re:OT: PDF link clicking extension by JHromadka · · Score: 1

    It's actually Control-click. It's not a troll if you're a Mac user. ;)

    --
    "The objective of securing the safety of Americans from crime and terror has been achieved." -- John Ashcroft
  164. Re:Debate? what debate? by ltbarcly · · Score: 1

    I'm not so sure. For an equivelent pc to be cheaper than a mac it is necessary for such a pc to exist. Therefore the existence is presupposed by the statment, and it begs the question, since the statement is that pc's are better than macs due to price.

    So again,
    statement ~:PC's are better than macs because of price.

    presumed 'fact':there exists a PC that is equivelent to a mac, varying only on price.

    but the very fact being debated is which is better. So he assumes they are equal, and then says pc's are cheaper. This is begging the question, since he asks that we concede the equivelence of some PC's to macs, which is the very point of contention.

  165. Re:OT: PDF link clicking extension by ScytheBlade1 · · Score: 1

    Touche.

  166. Re:qnx does just fine with a u-kernel and message by Cochonou · · Score: 1

    Hopefully you've got that BURN-PROOF technology.