Now, if I'm not mistaken, Mac OS is a lot more similar to Linux than it is towards Windows. If I remember some past history, Mac OS was originally a Unix variant operating system and has a lot of command and design similarities. So why on Earth, would you go out of your way to make something work on Mac OS and not Linux with a working version on Windows? Great example of this is World of Warcraft. It even works fine in WINE but they fail to produce something that works on Linux natively.
I think Mac OS was/is a derivative of BSD, which, yes, is another Unix flavor.
The reason is cost vs profit. There aren't enough people (in the company's
estimation) using Linux to buy their product, so they can't justify the cost of
porting. What cost, you ask? Well, Linux' graphics support is poor at best
(X was never really meant for games), so as it turns out just getting
graphics drivers for the various chipsets that support OpenGL hardware
acceleration is difficult (I know this from experience, BTW).
OSX (not MacOS in general. 9 and below are an OS class of their own) uses BSD kernel code, which at the lowest level is as removed from Linux as Linux is from Windows. At the application level, though, most Unices are indeed quite similar.
Well, the thing is, producing and publishing a binary is an investment. If the developers feel that the investment isn't going to pay off for a particular platform, then they're better off not producing it. It's not like Linux is majority in the desktop market.
Another factor is that Windows and MacOS, even considering all their possible configurations, are relatively controlled environments. Have you ever tried building a moderately complex binary that can work untouched on any Linux distribution? I have. And I gave up. It's impossible. Imagine dumping fifty bucks on a piece of plastic that doesn't work because you're using Linux Foobartastic 5.0.1 and it requires 5.0.0. Linux's openness is ironically one of its weak points.
Mac OSX is based on FreeBSD isn't it? Or Darwin, which is directly based on FreeBSD. Coincidentally, http://i46.tinypic.com/ly7px.png . I'm actually on PC-BSD but they're virtually they same as far as the kernel goes.
At the application level, though, most Unices are indeed quite similar.
Yeah, but Linux can't run executables from other Unices. FreeBSD has what they call a "Linux emulation layer;" but Linux doesn't have the opposite, unfortunately.
Have you ever tried building a moderately complex binary that can work untouched on any Linux distribution? I have.
Isn't that what autoconf is for? So you can run your programs on every popular UNIX?
Looking at Mac OS gets very complicated. Mac OS X is based on Darwin. Darwin is an open source posix compliant OS released by Apple.
Darwin is build around the XNU kernel. XNU is a hybrid kernel (somewhere between a Microkernel and a monolithic kernel) combining the Mach Microkernel with aspects of BSD/freeBSD and a driver kit.
On top of Darwin you have the Graphics and Media layer (Quartz, OpenGL,...).
And before anyone mentions it (I have a feeling someone will); using FreeBSD code isn't "stealing" or "cheating" or a "rip-off"; it's BSD licensed for a reason...
Autoconf is an extensible package of M4 macros that produce shell scripts to automatically configure software source code packages. These scripts can adapt the packages to many kinds of UNIX-like systems without manual user intervention.
I have no dislike of macs, just the wider userbase, the adverts and the company that produces them. I also don't dislike the OS (although once in an Apple store, I made a text file called "Mac OSX" and placed it in the wastebasket); I've used it only briefly and it seemed a little better than windows at least. What I dislike is the way people are brainwashed into thinking it's better for the wrong reasons. It's better because it's indirectly based on FreeBSD and therefore BSD 4.4 lite and therefore UNIX SVR4; which is secure and efficient. They think it's better because it "doesn't get viruses." Idiots. It still gets viruses; you just gotta find them.
Basically so you can compile binaries specific to your particular UNIX system automatically, like I said.
No. You said "autoconf [allows you to] run your programs on every popular UNIX", in response to me saying "[it's impossible to build] a moderately complex binary that can work untouched on any Linux distribution".
autoconf has nothing to do with built binaries. It generates scripts to build binaries from source code that theoretically can be run (the scripts, that is; not the binaries) on any UNIX.
There literally is no way to build a complex universal Linux binary. To name one reason, libc changes in incompatible ways between versions.
No. You said "autoconf [allows you to] run your programs on every popular UNIX", in response to me saying "[it's impossible to build] a moderately complex binary that can work untouched on any Linux distribution".
That is what I meant. It allows you to compile your programs to supposedly work on any UNIX-like system. Perhaps I should have said
So you can compile your programs for every UNIX-like OS