Understanding OS X Kernel Internals
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."
Grrr... "alot" isn't a word! It's "a lot."
The spelling police are on their way!
whether it's why its slow
What the hell does that mean ? Editors drunk ?
"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?
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?
*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
There are shills on slashdot. Apparently, I'm one of them.
"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.
110100 1101000 1101000 1100110 0 1101111 1101000 1100011 1
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?
Honestly. OSV is SLOW compared to native. No one wants slow.
Bzzzzzzzzzzzzzzt!
Incorrect. Anyone who's ever run os x in a vmware window will tell you that it's quite snappy (maybe 90% of normal system speed). And that's without any vendor support.
There are shills on slashdot. Apparently, I'm one of them.
This isn't news for the average person. This is isn't always news either. What's the problem?
If you lend someone $20 and never see that person again, it was probably worth it.
Uh...yeah, whatever.
Karma Schmarma
sounds like someone is a little bitter for being critical of OS X. GET OVER IT.
Before anyone starts spouting off again about Mac OS X being "slow by design" or somesuch, read this article by an Apple engineer that investigates those claims.
"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.
I rarely criticize things I don't care about.
How is the above comment marked "Interesting"? Shouldn't it be -1 "Flamebait"? It's not even "Funny".
Hello... Marketing people make commercials, not programmers. Don't be such a tool.
And of course, no modern anti-apple troll should be complete without reference to Apple's 'betrayel' of PA semi
Don't forget MPC8641D.
A flash presentation which is over 6 MB large (still loading)..
Good bye, dear server!
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.
I'd tell you the chances of this story being a dupe, but you wouldn't like it.
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?
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.
Oh, and by the way, the hum doesn't bother me whatsoever. 90% of the time its perfectly silent. Also, my old laptop, an HP ZD7000 P4 3.2ghz had the EXACT same problem.
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.
See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
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.
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.
110100 1101000 1101000 1100110 0 1101111 1101000 1100011 1
Wowzers....1900 pages uh uh uh uh uh...compllekks! - Jeff Lebowski
Insinct is stronger than Upbringing - Irish Proverb
Werent we told recently that we no longer have the right to make modifications and compile the apple kernel from source?
Maybe it would be useful to look at it for learning purposes, but now-a-days I believe you can get into quite a bit of trouble if you look at source code thats not your own then go off to make your own project under a different licence.
could care less
I think you mean "couldn't care less". I don't really blame you as this is a very common mistake people make, but seriously, think for a moment on what you're saying.
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.
There are shills on slashdot. Apparently, I'm one of them.
What a silly claim to make.
But ignoring that, our company, an office/data entry/database type product, right now is on the verge of having the Mac version EOLed. Our product runs exactly the same with virtualization under Windows on Intel Macs. 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 as soon as it become mainstream shortly. It is clear that for most businesses a Windows license is going to be mandatory for every Mac in the company.
I am sure the exact same cost/benefit calculation is going on at almost every company that ships Mac software right now.
The handful of Mac people here are in shock since they have been a bit uppity over the last year with talk of how the whole Windows world, both home and biz, was about to switch to Apple. Oh well, the loss of the OS X version looks like it will be replaced with a Linux version. For some reason that seems to be salt in the wounds for the Mac people here.
The book you claim all slashdotters 'know' is 1900 pages long, and it's pretty substantive and articulate. Why don't you check the TOC (it's freely available as pdf) and reconsider your statement. You might actually have to look into the story though instead of commenting on it with preconceived notions.
Insinct is stronger than Upbringing - Irish Proverb
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 contests about Windows' legacy software support - when both systems have the same problem.
No, seriously; the mac-PC split in my mind is one of usability versus cost and software availability, and since for me, usability is a nonentity, you know where my dollars lay. I don't hate Apple (though their marketing humans ALL need shot in the face with the largest weapon handy), but I can't justify overpaying for their stuff.
Now you want me to overpay for my computer to support multiple OSes at a performance hit - to what end? So I can run software I've never needed before? Oh Goody Goody Gumdrops.
So yeah. My point is that Virtualization will not destroy the native OS market. Not a chance in hades. Too many performance hounds like myself in the work to cause native to fail to be profitable.
Oh, and if you think that virtualized performance will match native in the future: well, it's possible, but don't think commercial marketing is going to let anyone know; it's in their interests to have there be a compromise in existence so that they can sell you two separate products. And they wouldn't be able to fool you or I, but they absolutely would be able to fool a significant enough chunk of the masses.
110100 1101000 1101000 1100110 0 1101111 1101000 1100011 1
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 paid for Macs means they want to run Mac OS, not Windows.
Therefore, the real effect of your decision will be that you will lose your Mac customers. 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.
If management at your company has this little basic business sense, I'm glad I'm not relying on your product to operate my business.
"Uh...yeah, whatever."
Oh god do I love reading the indignant lalaland Mac freaks these days.
Yep, software developers are going to go right on putting out Mac versions out of the goodness of their hearts just like game developers did for all those native Mac games!
Fund the development of the Mac version or just let the tiny Mac niche of the market dualboot or run their software through their ubiquitous Intel Mac Windows partition...
Bwhahahahaha!
Dream on Mac freaks!
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 performance hounds like myself in the work to cause native to fail to be profitable.
It probably won't kill it, but it will vastly reduce the amount of 'native' software.
I think the vast majority of people will quite happily accept a 5-10% slowdown.
There are shills on slashdot. Apparently, I'm one of them.
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 less than I do. On the other hand, someone who "could care less" can care less because it isn't as important to him. In other words, indifferent. That isn't to say people should say, "could" instead of "couldn't" when they really mean "I care in the least" which by the way is the less ambiguous approach.
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.
PHP is the solution of choice for relaying mysql errors to web users.
"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."
Woah!
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???
"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."
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.
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.
"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.
The OS X kernel has been in the news alot this past year[.] Whether it is why it is slow [(]Mach/micro-kernel makes it bad[)] [OR] it is going closed source and what not[,] Amit Sing has put up a new presentation on the innards of OS X.
The OS X kernel has been in the news alot this past year. Whether it is why it is slow (Mach/micro-kernel makes it bad) or it is going closed source and what not, Amit Sing has put up a new presentation on the innards of OS X.
Ummm, lets see, since its a Mac it would be COMIC SANS! What do the Windows people call it?...
Depends on the IT person's needs. If you're talking about big organizations, no. If you're talking about a shop that keeps its hardware long enough that an OEM license (which can't be moved to another machine) is cost-effective, no. If you're talking about a small business, quite possibly. Microsoft does not have good (or any) volume licensing options for very small numbers of seats.
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.
...which is exactly what's going to happen. How can it possibly be in your customers' best interest to spend the money on Windows licenses and Windows support (especially when they've already demonstrated a preference against Windows by buying Macs) when they could just switch to the competition instead and avoid Windows entirely? Also, even those customers who continue buying your product in the short term are going to be looking at a completely different value equation when it's time to implement a major version upgrade or roll out the product to a significant number of new users.
If you're marketing to big enough organizations that the Mac users are only a small portion of the total, then, maybe keeping your product could still be the best value. But the impression I got from the OP was that he was marketing an integrated administrative product to small businesses, which are not nearly as likely to have both platforms, and which can save proportionally more by avoiding those expensive Windows costs.
In any case, we've only talked so far about the retention of your existing customer base. If you don't offer a Mac product, you will not attract a single new Mac customer. If you find you can be more profitable by shrinking or growing more slowly, fine, but that's not the approach most businesses are seeking to take.
Where people cite "business economics" for abandoning profitable products on a growing platform, dislike or distrust of the platform usually ends up being a more believable explanation.
ian
I know that the original code, from NeXT, was Mach because there wasn't any choice. But in this day and age there are plenty of microkernels that actually perform well, even as a platform for full kernels. There's plenty of benchmarking for Linux on L4, and Linux on Exokernel. Both have minimal impact on performance. (L4 is usually 2-10%, Exokernel is similar.) Mach is a dinosaur. And since microkernels are small, with well-defined interfaces, porting to a more modern one should be relatively easy, even keeping backwards-compatibility of libraries. (You might need a mach emulator, or mach-on-top-of-l4 for a few mach-specific system calls, but that would hardly be a problem.)
So why hasn't apple done it?
You're right, the composition of that poem took the entire development staff at Apple to complete.
We should all switch from Apple's "crappy kernel" to the wonderful Linux kernel, which is now so buggy even its major developers agree it needs a bug fix cycle.
"Sufferin' succotash."
That's Edgar Allan Poe, not "Allen."
"Don't forget that the Intel iMacs don't have dedicated video RAM."
ATI Radeon X1600 Graphics gives iMac the PCI Express treatment on a 16-lane bus interface.
-Apple's Webpage
It may surprise many Slashdotters that there are people in the world who can effectively write both English *AND* PERL. I detect a lack of effort, education, or both.
There's plenty more.
There's no doubt in my mind X is many times slower than it needs to be. Most of it is in the kernel though, not the call site.
http://lkml.org/lkml/2005/8/20/95
My opinion is that mac OSX is very well designed if you beleive that in the future there is be more and more "cores" inside most notebook and desktop computers. OSX is well setup to take advantage of 8-core machines. It should scale well.
oh! Now I get it! Also, by any chance, are you able to explain the alarmingly frequent substitution of "then" for "than", as in: "3 is more then 2"?
Stephen Pinker wrote about this once. it's not a mistake. quite the opposite, in fact
and can read as short for "as if there were something that I could care less about"
(or "about which I could care less", if you prefer).
makes sense to me, but then I am the type who thinks that computer stores should sell "mouses" and
that the farmer's wife chopped the tails off mice.
Far from enough. You need as much as possible to taste the Adobe Creative Sweet.
There is a spark in every single flame bait point.
Kernel and Kernel Theory Aside...
Most Apple applications themselves tend to be a bit 'bloated'. No matter how fast the kernel is, you have a bit of a bloated GUI construct (especially in terms of RAM Usage) then add on the RAM used by some of the built in applications, and ouch.
And no, not all of Apple application are bloated, safari isn't bad in terms of size and performance in comparison to some of their other creations like iPhoto, etc...
You can almost pick through the applications included on OSX and see where the developers just were rushing to get the product working and the ones that performance and RAM usage were seriously taken into account.
Even iTunes is not built for speed nor does it seem to care about a low RAM footprint.
OSX performance needs to be debated, but in three parts at the very least. The Kernel OS Layer, The GUI Layer, and the included Application level.
Here is what is really sad, Vista in Beta is snappy with 512mb and 512mb is the 'recommended' RAM for optimal performance as well. (Of course that is if it ever ships, but in the meantime, a Beta OS full of debug code should not feel snappier than an OS that has been refined for last 6 years like OSX.
Mac means "pimp" en français. Thought that was rather funny.
Good points, and I agree. However, the unambiguous way to express yourself is "I don't care". I don't think "I care in the least" is even valid English.
So, if X's micro kernel is slower than a monolithic kernel, and current tests show OS-X is as fast as Windows then....
Mac OS-X could be faster than Windows. Yes!!! I love it!!!
Now we've also learned how to misspell 'mispell' in an interesting way.
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.
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.
Check out my sci-fi/humor trilogy at PatriotsBooks.
Interestingly, that's the first thing I typed out ("I don't care"), but I felt like what I was addressing was the usage problem for the term "least." So, I deleted that and wrote the original phrase in its most unambiguous form while maintaining the use of "least." Indeed "I don't care" is even less ambiguous. I think people like to use the word "least" or "most" because it adds emphasis. I believe the example I gave is valid English, in the sense that it doesn't break any rules. However it isn't Standard English, in the sense that it doesn't conform to a model for speech and writing used by the educated. "Least" in this case would refer to which bracket, or classification the caring falls. A parallel example would be someone finishing "in the bottom" of the results, therefore that person would say, "I finished in the bottom." It's vague, but it's not invalid.
Lack of education. Where you looking for something more insightful?
There's the other reason. People type too fast and don't catch their mistakes until seconds after hitting submit. It should be, "Were you looking for something more insightful?"
'' It probably won't kill it, but it will vastly reduce the amount of 'native' software.
I think the vast majority of people will quite happily accept a 5-10% slowdown. ''
Customers who bought a Macintosh are very unlikely to accept software that runs 5-10% slower, and _in Windows_.
I expect that only a small percentage of Macintosh owners would be willing to _use_ Windows software. The percentage who would be willing to _buy_ Windows software, especially after a Macintosh product was abandoned, is miniscule.
Customers who bought a Macintosh are very unlikely to accept software that runs 5-10% slower, and _in Windows_.
I doubt they would even notice a 5-10% slowdown.
I expect that only a small percentage of Macintosh owners would be willing to _use_ Windows software. The percentage who would be willing to _buy_ Windows software, especially after a Macintosh product was abandoned, is miniscule.
You obviously did not read the mac fanboy excitement in the win32 virtualization & boot camp stories. It was rampant, you could almost smell how eager the fanbois were to run windows software (embarassing, but true).
Oh - and I'm afraid the Apple fanboism is being watered down by the legions of clueless ipod inspired switchers - these guys don't give a crap if it used to be mac software, they'll buy it regardless.
There are shills on slashdot. Apparently, I'm one of them.
Uh, they don't pay attention to Vista. They don't know what OS-X is. They don't need to know. They don't CARE.
They heard that "Apples just work", and they like their iPods. Then they see these commercials who basically say the best reasons to get a Mac are that it has applications for things which they already have applications for, and it doesn't get viruses despite viruses not being a problem for them because they have antiviruses...
So yes. They WERE serious. They aren't now, they're sticking with generic Windows computers.
Apple discourages employees from writing books. It's part of the employment contract that you don't write books about Apples current or prospective business, and an internals book would qualify.
It's supposedly possible to get permission from the lawyers, but in practice, they won't let you put your name on the book, and you have to have a publisher up front, and there are other restrictions that make it impossible / not profitable.
-AC
You are incorrect, sir.
/dev/null and /dev/zero, and then turn any reads or writes from either around immediately in the first function called out of the sysent[] table as soon as you see an fd pointing to one or the other, and never enter into the rest of the kernel. Then you can run the lmbench "system call speed" tests, with everything *but* the call site overhead factored out.
It is a trivial experiment to initially cache the vp for
The real problem here, though, is the perception that system call trap speed is actually somehow very important. This has grown out of the Linux community.
Part of it is Larry McVoy's benchmark suite, designed to make Linux look better than other OSs; the perception that system call speed is important is based on the idea that since it can be measured, making it small as possible is worthwhile. As evidendence that this is actually jingoistic, the previous "null system call" implementation in LMBench was actually getppid(), and prior to that, it was getpid() (the result of getpid() is cacheable in user space in Libc). As other OSs have started turning the calls around faster, other calls have been selected to keep Linux ahead.
The second part of the problem is deeper, and goes to how people program software being influenced by their execution environment, and their perception. This is more problematic. Whether it's the idea that it's OK to not bzero() a sockaddr_in before using it in a call to connect() (which works on Linux, but fails on most BSD derived systems because of the "mutual connect" case in the TCP state machine that isn't accounted for in the Linux implementation), or it's the idea that thread creation or system calls are "free", and therefore not to be avoided, or whether its something else, it ends in bad code.
My canonical example for this is MySQL's client libraries, which end up making multple system calls (3 of them) per transaction, when they could get by with a single system call simply by buffering their data per client connection, rather than per thread in the MySQL server. This simple change would amount to a huge performance improvement on most OSs; Linux itself would see perhaps a 5% performance improvement from the change. But it would be an improvement. Yet people keep pointing to MySQL as a benchmark, when what they are measuring is actually a design problem in the database, not the OS on which it's running.
The problem is that most people don't change code, once they get it to the point that it works well enough for their initial uses - and short of someone doing a deeper port than just a trivial "get it compiling and running" type port, you're not going to see the performance on *any* platform that wasn't the initial platform where the code was written and tuned. Or to put it another way, the person most capable of tuning the code is almost never going to be the person moving it to a new platform; so platform assumptions built into the implementation of the code - or worse, the design of the code - are going to bite everyone that moves it to a new platform.
For thread creation - well, you know, there's a good reason that Apache pre-spwans anonymous workers, and applications that don't are probably assuming that thread or process creation is "free" or close enough that they don't care.
Personally, I'm not that impresed with benchmarks that purport to measure kernel performance; other than I/O, where most of the time is spent waiting on whatever you're talking to, well written applications tend to spend their time in user space; I've heard that on MacOS X, it's usually more than 80% of the time in user space, and for multimedia or compute bound applications, it can get a lot higher than that.
Microbenchmarks have their place; they are useful for comparing against yourself, and for detecting regressions before they become entrenched. But they aren't very useful for anything else, and exspecially not for comparing one OS to another.
-- Terry
No, actually I don't think that's a correct usage of "it's" and "its."
He should have used "it's" in both cases. (Because "it's" is a contraction of "it is," while "its" is the possessive.) If you read it to yourself, replacing the apostrophe with the individual words, it becomes more clear.
For example, "whether it's why its slow..." I think should parse as 'whether it is why it is slow...' (which makes sense, if only as a fragment). So "its" in the article should correctly be "it's."
You can't have "why its", because the word 'why' can't possess anything. (Well, you could potentially have a question -- "Why its?" -- but that doesn't make sense in the context of the summary.) Frankly, the author would have been best served by dumping all the contractions and just running with the extra words: the few extra characters would have been worth not making the reader have to sound out the sentence in order to figure out what was meant.
I'd say the article is typical at 1 out of 3 correct, but still manages to be nonsensical for other reasons.
"Ladies and gentlemen, my killbot features Lotus Notes and a machine gun. It is the finest available."
So is this post about the Crapple Suckintosh?