Stories
Slash Boxes
Comments

News for nerds, stuff that matters

Slashdot Log In

Log In

Create Account  |  Retrieve Password

Understanding OS X Kernel Internals

Posted by Hemos on Mon May 22, 2006 08:16 AM
from the knowing-more-about-the-insides dept.
jglidell writes "The OS X kernel has been in the news alot this past year, whether it's why its slow, Mach/micro-kernel makes it bad, it's going closed source and what not. Amit Singh has put up a new presentation on the innards of OS X. It does a pretty good job of summing up the OS X kernel architecture, and has some pretty detailed diagrams... for instance they show that there are so many process/threads layers in OS X. So if you are in the mood for doing some OS studying then head over."
+ -
story
This discussion has been archived. No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More
Loading... please wait.
  • huh? (Score:2, Insightful)

    whether it's why its slow

    What the hell does that mean ? Editors drunk ?
    • Parse it out:

      The OS X kernel has been in the news alot this past year, whether it's:
      -why its slow,
      -Mach/micro-kernel makes it bad,
      -it's going closed source
      -and what not

      make sense now?

      The sentence sucked, but it made sense in a bad grammar sort of way.
    • Re:huh? (Score:2, Informative)

      It might make more sense in this format, and without the grammar error:

      ...in the news alot this past year, whether it's:

      • why it's slow,
      • Mach/micro-kernel makes it bad,
      • it's going closed source
      • and what not
      • Re:huh? (Score:4, Funny)

        by M. Baranczak (726671) on Monday May 22 2006, @12:47PM (#15382048)
        Nope, it's still gibberish.

        whether it's why it's slow

        Well... why is it slow?

        Mach/micro-kernel makes it bad

        Debating the pros and cons of Mach is a valid topic, but a phrase like this is so vague that it's meaningless.

        it's going closed source

        OK, that one's intelligible. But then we come across gems like this:

        for instance they show that there are so many process/threads layers in OS X.

        A small request for submitters: Take a minute to actually proof-read your summary. I'm not even talking about simple typos, or the correct use of "you're/your" - those look ugly, but most of the time people can still figure out what you meant. Just ask yourself: will these words make sense to a moderately intelligent English speaker who's not on a meth bender?
    • Re:huh? (Score:3, Interesting)

      "Alot" isn't even an actual word.
      • He means editors as in slashdot editors. As in plural slashdot editors who should review these story submissions before sending them to the front page.
  • Needs more editor. (Score:4, Insightful)

    by dajobi (915753) on Monday May 22 2006, @08:28AM (#15379687)
    "alot"
    "whether it's why its slow"
    "they show that there are so many process/threads layers in OS X."

    Do the editors even look at submissions any more? Or to put it another way, is our children learning yet?
    • by OECD (639690) on Monday May 22 2006, @08:43AM (#15379803) Journal

      Do the editors even look at submissions any more?

      I'm afraid they do. I think the problem is that they're not as skilled in writing english as they are in writing PERL. (That's not a slam, by the way. I suck at PERL.)

      And before anyone goes on an "Off Topic" jag, it really does make a difference if the readers can understand what's being written. I stumbled over the "that there are so many" sentence a couple times trying to make sense of it. There are so many process threads layers in OS X that what? It slows it down? It's hard to program? Or is there simply a gee-whizz lot?

      Yeah, I know, I'm off to R the FA. I just wish I had a better idea of what's in there.

    • Me fail English? That's unpossible!
    • "whether it's why its slow"

      This one is actually grammatical, just awkward. "whether it is why MacOS X's kernel is slow, or ..."
  • by thogard (43403) on Monday May 22 2006, @08:35AM (#15379740) Homepage
    I have a small program that mmaps a bit of code and then points the program counter at it. Everything runs fun until a OS call happens. I've heard that Mach allows user land programs to install their own OS calls but I haven't seen any example code to do it and I suspect such a feature isn't in OS X. I've hunted through the source and I while I could write my own system call and compile it in, there should be an easier way. Can anyone point me in the correct direction?
  • Terrible summary. (Score:3, Insightful)

    by IANAAC (692242) on Monday May 22 2006, @08:37AM (#15379760)
    I could barely get through the summary.

    If English is a second language for the submitter, fine. But good grief, do you suppose one of the PAID editors could have done just a bit of work to make the summary more readable?

  • by Logic and Reason (952833) on Monday May 22 2006, @08:46AM (#15379821) Homepage
    Before anyone starts spouting off again about Mac OS X being "slow by design" or somesuch, read this article by an Apple engineer [ridiculousfish.com] that investigates those claims.
      • It shows how the author completely misses the criticism that he is trying to address and fails miserably in his arguments.

        It does nothing of the kind. Read the whole article, and ALL of the comments, sparky, not just the ones that support your prejudice.

        Peter's point is that the "benchmark" in question boils down to how quickly OSX will malloc and free 35KB blocks. It happens to cross the mmap() threshold for kernel versus heap allocations.

        It also shows how Apple fanboys applaud the author's explaination, even though they haven't a clue about the subject matter - and even admit it in their posts.

        If you had actually refuted anything that Peter had said in his article, you might have a leg to stand on, but since you didn't, and since you toss off an epithet like "fanboy" instead of doing so, I conclude that you are the clueless one.

        No wonder you're an AC.

        -jcr
      • '' It's a good article. I wonder why OSX isn't compiled with a larger heap threshold, though? I'd do with a 2x performance increase on common operations even if it cost more memory (in the form of fragmentation). My only guess is that in real world usage this is not common, and thus it wouldn't improve real-world performance much? ''

        It is _not_ a common operation.

        As that article explained, the developers of the software in question could have used Shark (comes for free with every Macintosh), and within 20 s
  • Ad (Score:5, Informative)

    by AstrumPreliator (708436) on Monday May 22 2006, @09:03AM (#15379961)
    I looked at the "presentation" and no, it doesn't do a very good job of explaining anything. Maybe combined with an extensive lecture to explain what the hell he's talking about would make it a bit more clear. From what I saw it was basically just enumerating the different components. Then I noticed the second to last slide. It's basically an ad for a book coming out.

    Maybe it's just me though. Did anyone else find it extremely enlightening?
  • by Beefslaya (832030) on Monday May 22 2006, @09:07AM (#15380004)
    As the purchaser of a brand new Core Duo Mini, (my first Mac, I feel "as happy as a little Gurlll!") I noticed that my system out of the box with 512 of RAM was dog slow when you start loading iPhoto, or any more then 2 apps.

    Initial startup yielded a smoking fast web browser, and other single line items.

    I purchased the 2GB Ram upgrade (not from Apple at 600 USD, 280USD from Crucial) and I noticed such a difference, that I couldn't understand WHY they would even consider shipping that little silver wonder with less then 1GB of RAM.

    It's not the kernel, it's the apps... They just don't give enough power to the off the shelf machines to support the great apps that come with it.

    Vive le Mac... Thanks for putting excitement back into computing for me.
    • by caseih (160668) on Monday May 22 2006, @10:18AM (#15380632)
      I think much of OS X's ram-hungriness comes from the fact that outside of the system frameworks, there is very little utilization of shared libraries among the different applications. Each app bundle is largely self-contained with its own shared libraries. Granted most apps that ship with OS X (from apple) just access the shared frameworks in /Library/Frameworks and have few other dependencies in their bundles. But start adding apps like MS Word, Firefox, OpenOffice, etc, and you'll start having multiple copies of various libraries loaded. The app bundle system is very simple and reliable, but because of the shared library issue, you'll always need more ram when running these apps on OS X than Windows or Linux.

      Definitely 1 GB is a minimum amount of RAM needed for OS X Tiger these days. That is quite sad when you think about it, but RAM is cheap so I'm not too concerned about it. Apple has always shipped their machines short on RAM, hoping you'll pay ridiciulous amounts of money for their official RAM upgrades.
      • Not to be a total Apple fanboy but all mainstream computer suppliers sell PC's with half the amount of RAM that's usually needed. When Windows ran fine on 128 MB, you got 64. Now you usually get 512 MB, but XP SP2 is slow with less than a gig. Especially if you're playing games, but also using regular apps.
      • Perhaps if those applications actually leveraged Cocoa's AppKit Frameworks, Core Data, Core Imaging, etc., then you'd see drastically smaller app bundles and more shared use of built-in Cocoa Frameworks.

        Since they are Carbon based expect them to be bloated.

        When Apple replaces Finder and other critical sections of their application base with pure cocoa applications then perhaps we'll see more improvements as we should have seen.
    • I purchased the 2GB Ram upgrade (not from Apple at 600 USD, 280USD from Crucial) and I noticed such a difference, that I couldn't understand WHY they would even consider shipping that little silver wonder with less then 1GB of RAM.

      And this is exactly what you should have done. Apple ships their consumer boxes with way too little RAM (they always have,) but the upside to that is you can just go elsewhere and buy it cheaper than Apple is willing to sell it for.

      I wouldn't fully judge ANY computer's speed unles
        • Buying RAM for a Mac isnt' what it used to be. If I remember right, before the MacIntels, and such, you had to buy special matched/paired memory kits for upgrades, specially from Apple.

          You don't remember right.

          I've owned Macs for years, and never once used anything other than cheap third-party memory to upgrade them. The G3 Towers were very picky about memory that was up to spec, but even then there was no need to buy from Apple.

          And how, exactly, would you suggest installing "matched/paired memory kits" in
    • You also have to remember that the Mac mini has integrated graphics which uses some of the memory. I've heard it uses about 80MB of your memory. But I agree, it needs at least 1GB to run smoothly.
        • Its kernel is based on BSD which wasn't designed to have locks, so locking is much more coarse than it needs to be.

          Few, if any, current UN*Xes were "designed to have locks", but many of them (Solaris, Linux, FreeBSD, OS X) have made their locks finer-grained anyway; it's not as if you're stuck with all the consequences of the "design" forever.

          The Mach base (which as far as I can tell is completely unnecessary) adds extra indirection to system calls.

          What are some examples of this extra indirection? (Not

  • Closed? (Score:5, Insightful)

    by ShadowBottle (663193) on Monday May 22 2006, @09:27AM (#15380149)
    Riiiight. Just because some idiot alarmists say that the kernel has gone closed when it simply just hasn't been released yet, the media and clueless bloggers start crying that it's gone closed source.
    "Well... it hasn't. It's still open. IT JUST HASN'T BEEN RELEASED YET.
    OSNews is reporting that Ernest Prabhakar, Apple's Open Source and Open Standards product manager, has stated in the Fed-Talk mailing that Apple has not actually closed Mac OS X's Darwin kernel for the Intel version of the OS; they simply haven't released it yet. Speculation about Apple closing the kernel arose from the fact that other non-kernel Darwin sources actually have been released, and the previous PowerPC-based kernel is still available as open source as well.Ernest wanted to make sure that tech media didn't confuse 'speculation' with 'fact'. A good lesson we all could benefit from...."

    God damn alarmist idiots.
    • If OSNews is reporting this (I can't get to OSNews right now), then they appear to be exaggerating a comment by Prabhakar. The only posting I can find from him on the entire list in the last two months is this one [apple.com].

      In it, he simply makes it clear that no decision has been made public yet. This is what he writes:

      Hi all,

      Just to be clear, Tom Yager was *speculating* about why we have -- so far -- not released the source code of the kernel for Intel-based Macintoshes. We continue to release *all* the Darw

                • Uh, you don't appear to be presenting an argument, you seem to have an unsupported opinion. By the way, your position (not argument) makes sense to you. Yet you have at least two people who appear to disagree with the "logic" which lead you to your position, not that that really matters.

                  An unsupported opinion is one where facts are not presented that back up the opinion. Disagree with me all you like, but the facts do actually agree with my position, which is why I used them in my argument.

                  The two peop

                  • After re-reading your posts, and the responses, I don't disagree with you. I interpreted your statements to be supporting Yager's interpretation as fact.

                    Yager's speculation as to why they might close it sounds viable, but Prabhakar says that it's merely speculation. Which it is. Yager's assumption doesn't seem to address the possibility that Apple might be changing from XNU to something else entirely, which has been continually speculated for years now. Yager also ignores the possibility that they migh
  • by ElitistWhiner (79961) on Monday May 22 2006, @10:36AM (#15380828)
    As an ex-NeXT developer, the historical speed bumps behind this architecture are directly related to code density. NeXTSEP ver 2.0 was nicely running on 25mHz. NeXTSTEP ver 3.0 suffered performance on 25mHz compared to ver 2.0 because of the additional kernel overhead resultant from code densification.

    With every ver. release through 10.4.x MacOS X, mach/BSD layer exhibits funtional improvements with speed increases of the processor CPU and latent performance behaviors from the additional kernal overhead added by code complexity and densification.

    Prima Facia evidence to the 4X speed improvement in performance from Apple's new Intel CPU bears witness to the limits of the kernal architecture.
    • *snort*

      Not bad! I think for extra points you should have bought up speculation that Apple closed the OS X kernel to ease the future transition to the Vista kernel.

      And of course, no modern anti-apple troll should be complete without reference to Apple's 'betrayel' of PA semi [reghardware.co.uk]
    • by Fordiman (689627) <fordiman.gmail@com> on Monday May 22 2006, @08:37AM (#15379754) Homepage Journal
      "OS virtualization is going to kill off the native OS X software market"

      Ahh, and welcome back to another thrilling episode of "doesn't know what the fuck they're on about" theatre!

      Honestly. OSV is SLOW compared to native. No one wants slow.
      • "Honestly. OSV is SLOW compared to native. No one wants slow."

        While I don't think virtualization will kill off native OSes, it's not slow.

        We use virtualization at work, the hit from VMWare is significant but usually managable, and the hit from Xen is small enough that it's getting hard to measure.

        • we have several large power 5 servers where I work, as well as mainframe systems. when you have a platform where virtualization is part of the architecture and not an afterthought you don't even know your on a shared box. when intel and amd add vituralization to their chips a lot of folks like myself will love being able to run winders/linux/bsd whatever at the same time on one PC.

        • 90% normal speed is slow, or at least, slower than optimal. I'm not going to pay for a system that's 10% less than I actually paid for. Try watching a video that's been slowed to 90%, and you'll see what I mean by slow.

          No. I don't need to use another OS today.
          • Try watching a video that's been slowed to 90%, and you'll see what I mean by slow.

            A video slowed to 90% would be annoying, but any modern system slowed to 90% would play a video at full speed. Your analogy breaks down.

            As the mac-buying public has no problem with rosetta slow downs on intel hardware, I imagine they wouldn't have any problems with other slow downs due to emulation layers.
            • It does not break down. A system at 90% is just as annoying as a video at 90%. I paid for full speed, I want full speed.

              "As the mac-buying public has no problem with rosetta slow downs on intel hardware, I imagine they wouldn't have any problems with other slow downs due to emulation layers."

              The mac-buying public has no problem with getting less than what they paid for? No... Surely not...

              No seriously, I'm well aware of the masses of emu layers Macs *presently* have, as well as all the stupid pissing con
              • It does not break down. A system at 90% is just as annoying as a video at 90%.

                No, it does break down. A video at 90% speed is unwatchable. A computer at 90% speed is quite usable.

                In fact - as you rightly point out, no matter what system you're using, it will almost certainly be running at less then 90% of its full speed.

                I paid for full speed, I want full speed.

                Well, I don't disagree with you there.

                So yeah. My point is that Virtualization will not destroy the native OS market. Not a chance in hades. Too many
        • The cold hard economic fact is that it is cheaper for us to drop the Mac version and let the small, but not insignificant number of companies with Macs, run our software under virtualization

          This is absurd. None of your customers are going to buy $200 Windows licenses, and spend the considerable extra money for Windows support costs, to run your product. They will spend the money to switch to a competitor's product instead. If they wanted to run Windows boxes, they would have them. The fact that they've pa

            • by MagnusDredd (160488) on Monday May 22 2006, @03:39PM (#15383484)
              Quoth the AC:
              200 bucks for a Windows license? I don't think so. Are you so clueless that you think IT people drive down to the local computer store and buy a boxed copies of Windows???


              You're assuming that the only market for software is medium to large enterprise. Autocad (which is made by a well known vendor) is used by tons and tons of architects. Since I've worked in IT support for a few architectural firms, I can tell you that most of them are comprised of small business of under 50 employees. I've used Autocad under Windows, however when I needed to use something to make some plans for a shed for my church, I used Sketch-Up, because there's an OSX native version.

              Furthermore, most of the people that I've run across who are excited about virtualization are primarily interested in using it to run the existing Windows apps they own, and plan on replacing those with OSX native versions where available, and comparable OSX native apps where not available. The other major segment (where I fall into this equation)interested in virtualization, is the IT people who use/support multiple platforms.

              Boot Camp is for games. Noone I have spoken with that knows about virtualization is seriously intersted in using it for anything other than games.

              Saith the parent:
              "If you have enough Mac customers that your Mac software is a profitable product, you are going to lose money from your decision. If you didn't have that many Mac customers, you shouldn't have been making a Mac product anyway."

              Quoth the AC:
              Woah!

              Only someone who has never worked in a real life software dev house could make such a wildly stupid statement.

              + Savings from dumping Mac developers and overhead to support them
              + Savings from dumping Mac support and packaging
              - Percentage of Mac running customers who stop buying your product due to canceled OS X version

              Revenue goes down, but profits go up in almost every case outside of having 75-100 percent or so of your Mac customers stop buying your product. It is pretty funny to see Mac people freaking out about everyday business economics - "But that won't happen because I wouldn't like it to!" Heh.


              What?
              I'm not understanding something...

              This seems like Carly Fiorina Logic. If we stop making HP calculators, people will just buy handheld HP units with similar funtionality. It doesn't matter that the calculator group provides a substantial net profit for the company. If we stop spending all that money on supporting calculators and simply use the computer support people we already have... Think of the savings!!!!

              When a group/division in a company that caters to a market makes the company lots of money, leave them alone. They're doing their job, pulling a PHB stunt in wall street business tactics will only hurt your company.
    • Re:Profit! (Score:4, Informative)

      by moro_666 (414422) <kulminaator&gmail,com> on Monday May 22 2006, @08:56AM (#15379908) Homepage
      somebody must have mispelled "book commercial" as "presentation".

      there's nothing really new in that presentation, most of slashdotters know this stuff already, the only thing that we didn't know as of yet is that you can mispell "book commercial" in such an interesting way.

      you can "troll" or "flamebait" my post, but this is the way that it is.
    • So go read a less technical website than Slashdot.
      This story was boring because the presentation was dumb. It had a little useful information but not much. The subject is interesting.
      OS/X security? How to lock it down? There are many sites on the web. Look for just about any good site about UNIX security and start from that. OS/X uses the UNIX security model.
      • I really don't blame anyone for using one phrase or the other. Out of context, both have problems. You have to consider the level at which someone cares about something before how much less they could care has any meaning. For instance, if on a scale of 0 to 9 (0 being the least anyone can care about anything and 9 being the most anyone can care about anything) I care about the starving children in Africa at level 9. If I say "I couldn't care less." It may only mean that I can't in good conscience care