Linux es una implementación de unix, lo que significa que pretende cumplir con los estándares únicos de Unix y POSIX. Tiene, en su núcleo, el Kernel Linux, escrito por Linus Torvalds y modificado por la comunidad de código abierto. Linux es una marca registrada y se refiere a un sistema operativo muy específico. Linux es de código abierto.
Mac OS X está construido sobre Darwin, su nombre para una implementación de FreeBSD, otra implementación que cumple el estándar posix. FreeBSD también es de código abierto. Mac OS X ha sido certificado para cumplir con el SUS y por lo tanto puede ser llamado UNIX.
El hecho de que ambos sean de código abierto y el hecho de que ambos sean implementaciones de unix da lugar a que la gente llame a Mac OS «Linux», aunque definitivamente no sea Linux.
Los ejecutables binarios en las dos plataformas son diferentes – un programa compilado para Linux no se ejecutará en Darwin.
Interesantemente, oigo a la gente aplicar cada vez más el término Linux a cualquier sistema operativo de «código abierto» que sea una implementación de unix. No es el caso. Hay muchas versiones que cumplen el estándar y se basan en un núcleo diferente. Hay mucha gente, de hecho, que no cree que el kernel de Linux esté a la altura en cuanto a rendimiento o aspectos de seguridad; sin embargo, ese’ no es un debate en el que yo participe porque no’ conozco los detalles de las implementaciones del kernel.
Ubuntu es una distribución Linux. OS X es una distribución BSD. Ambas probablemente cumplen con el estándar de UNIX; no son lo mismo.
Edición: tomado en cuenta el comentario de Bill Karwin’s, ediciones adicionales después de los comentarios de User’s para aclarar el estado del SUS.