Every few months, the Mac web is bombarded with open pleas to Apple, asking—nay, demanding—that Apple swap out the Mach-based kernel that Mac OS X runs on, XNU/Darwin, with Linux. This, of course, ends in with Apple stoically continuing development of XNU/Darwin while fanboys dry their eyes and limp home after their flamewars. The cycle then repeats itself again a few months later like clockwork. The truth of the matter, however, is that Apple will never replace XNU/Darwin with Linux.
Tearing XNU/Darwin out from OS X and replacing it with Linux would be winding the clock back almost twenty-five years. Mach, which comprises a large percentage of XNU/Darwin's XNU kernel, was a microkernel research project developed at Carnegie-Mellon University in the Eighties, overseen by Avie Tevanian, who usually worked on it while playing Depeche Mode and Tears For Fears and ushered it through various revisions at NeXT and, ultimately, Apple.
This continuity of development has given Apple a tight integration between the kernel, libraries, utilities, and higher-level frameworks. Linux would throw that synergy right out the window, making Apple dependent on an entirely unregulated development team, and forcing Apple to play catch-up with their specific needs after every major upgrade to Linux. Apple would have to hire Linus Torvalds in order to recreate the creator/creation dynamic they have now. And as Linus has stated several times, he'll never go work for a company doing Linux.
Perhaps one reason Linux users bleat so unceasingly for Apple to switch kernels stems from a pre-NeXT project the company ran called MkLinux. MkLinux was a version of Mach running Linux as a process. The project was sponsored by both Apple and OSF/1 and ran on Apple's first generation Power Macs and some early second-generation Power Macs. Performance was about 20% less than a native Linux would have been, but that wasn't the point; Apple was looking at different ways to create a modern operating system in the dark times of Copland before NeXT was even a gleam in their eyes.
After Apple's operating system woes came to a head in 1997, MkLinux was all but forgotten by everyone except the long-time Apple engineers tasked with updating OPENSTEP alongside their NeXT counterparts. It was a non-starter, but it was the first taste of Linux anywhere near a Mac; it would be years later that Linux/PPC or the swatch of PowerPC versions of more popular distributions like Debian, Fedora, SUSE, and YellowDog came to Apple motherboards.
"But wait!" whine the Linux zealots, "Apple uses the BSD kernel in Mac OS X, and that's not under their control!" And so it is not. But the portions of the FreeBSD kernel are only used to fill out Mach, and as such does not constitute a significant portion of the kernel. In fact, Apple's use of BSD code is so minute that it amounts to being a charity project that allows Apple a way of keeping FreeBSD solvent. So Apple is simply not using the FreeBSD kernel, and asking to replace XNU with the Linux kernel is therefore asking something disproportionate to reality and wrong. It completely misses the point, just like Linux itself.
Alongside calls of kernel replacement, Linux zealots often ask for Apple to use the GNU userland. In the beginning of Mac OS X's life, Apple used utilities from FreeBSD, NetBSD and OpenBSD instead of Linux, which was a smart move. For one, with BSD, Apple can take what they want, modify it, and ship without worrying about anything else. That's the glory of the BSD license. It's hands-off and lets you use the code as you see fit unrestrained.
In contrast, the GPL is viral in nature and ties the hands of the developers to a process that dictates distribution of source code with the binaries. You know how Snow Leopard is going to weigh five gigs instead of Leopard's eleven? We'd be talking dozens of gigabytes today if Apple used GNU. Proponents of the GPL may argue that the GPL ensures a flow of new code back into the community, but it's really just a burden to the developer.
Another reason Apple favored BSD over Linux was standardization. Most commercial Unices are genetically related to BSD in some way. For instance, Sun's Unix, Solaris, is a hybrid of System 5 Release 4 and BSD, while IBM's Unix, AIX, is based firmly on BSD4. The same goes for Hewlett-Packard's HP-UX and Tru64 UNIX, SGI's IRIX, and SCO Group's SCO OpenServer and SCO UnixWare. These Unices represent over 97% of the current Unix market, which shows that the BSD family is stronger and more established than SVR4 or the myriad of incompatible Linux distribution offerings.
BSD command utilities, while not universal, are more ubiquitous than the GNU command set, which Linux uses. And while some GNU utilities offer BSD compatibility, it's really a crapshoot whether they'll even compile. By using BSD commands, Apple made sure that a Unix pro could sit down and get to work with their command line. Even though Linux has grown somewhat in popularity, the choice for familiarity and compatibility is still clear. For those who want Linux command tools under OS X, porting isn't a problem thanks to Mac OS X's strong POSIX support.
Apple to this day remains with XNU/Darwin after six (and coming up on seven) major releases of Mac OS X. and are unlikely to switch any time soon. At most, a move to the GNU userland would be feasible, but since that's already available for OS X and BSD, Apple doesn't want mired in the GPL, that's unlikely too. So for the time being, it would be easier on all of us if the Linux-for-Mac OS X camp just quieted down and realized that Mach is what works best for Mac OS X because it offers so much more than Linux.