Karanbir Singh mail-lists@karan.org wrote:
Linux wins hands down.
There are two major contributors to this:
1. Until just recently (GCC 4.x), the PPC64 GCC target was very poor. Apple leverages GCC 3.x in current MacOS releases.
2. The pre-emptive Mach microkernel adds overhead and context switching, although it has helped maintain portability (including to x86).
[ NOTE: Despite the insistance of Microsoft marketeers, the NT Hardware Abstraction Layer (HAL) is _not_ a microkernel, and it does _not_ pre-empt the NT kernel. If it did, NT would be much slower. ]
I am sitting typing this out on a Dual G5 2ghz, and I find Linux to be much more responsive than OSX.
Hmmm, "responsiveness" is not a complete test of performance. In fact, prior to the pre-empt patch, based on just "responsiveness," a single CPU Linux system would be near the bottom of the barrel.
Responsiveness v. throughput is always a game played -- typically between microkernels and monolithic kernels. Microkernels typically have better response time, monolithic kernels typically have better throughput. Microkernels make re-entry (kernel threading) easier, monolithic kernels make it more difficult. These are oversimplifications, but you get the jist.
Ironically enough, although the Mach component of MacOS X is a microkernel, you're running on the Darwin platform which is monolithic. Linux is a monolithic kernel with a couple of approaches to re-entry. I don't like the pre-empt patch, because it is a hack to take adavantage of Linus' ingenious ideal to allow 1 kernel entry per CPU to keep context switching down. That design is specific to the number of physical cores, and overall performance is hurt by the pre-empt patch.
In the near-future of dual-core designs, I hope the kernel goes back to 1 entry per CPU. It gives you adequate response time without hurting throughput because there is no additional context switching overhead -- each CPU has a single thread. Linus was a genious in coming up with that.
anandtech had a write-up recently where they compared OSX Server to Linux on the server side of things, iirc correctly - Linux came out on top. A bit of googling should dig up the exact article.
It dependend on the application. AnandTech actually made it a 2-parter, investigating more after the first run.
Part I: http://www.anandtech.com/mac/showdoc.aspx?i=2436
Part II: http://www.anandtech.com/mac/showdoc.aspx?i=2520
One also needs to remember that Darwin/Cocoa is not a true, "clean" 64-bit platform.