Isn't Mac these days a UNIX-like OS on x86? What happens if you just move a Mac binary to a Linux machine (with all its dependencies) and try to run it?
I'm assuming it'll break, but what difference between the two OS's makes it break?
Not exactly. Mac OS does include a BSD subsystem and behaves more like a Unix than it behaves like Windows. But it is still significantly it's own thing.
The Mac kernel is XNU. Nearly all Mac apps use Cocoa. The Mac filesystem is HFS+. Hardware is managed through IOKit. The list goes on but basically every major system service is written for Mac OS and does not have any direct compatibility with other OSes.
Well, first of all, OS X is based on BSD and not Linux, which would affect even simple command line utilities. (I'm not even sure the kernel ABI is compatible.)
More to the point, there's the lack of Mac-specific frameworks (e.g. Cocoa) on which most Mac applications rely.
They use different object file formats, different system calls, different library loading procedures, and on and on. Even if Mac OS X had the actual Linux kernel, the windowing interfaces are completely different.
To put it simply, it would take about the same effort to port a Linux application to Mac as it would to Windows. Everything talks differently, and you have to adapt for that.
I'm gonna stop you there—this isn't true. Yes, the interfaces are completely different, but if you can sidestep that (command line tools, games go directly to OpenGL), the systems are very compatible. I've written a LOT of hairy code that is perfectly compatible and would be straightforward to emulate.
I'm assuming it'll break, but what difference between the two OS's makes it break?