Si Mac es Linux, ¿por qué no podemos ejecutar software de Mac en Linux como podemos usar .deb o .sh en cualquier Linux como Ubuntu, Mint, Centos, etc.?


Respuesta corta:

Mac OS NO es Linux. Por eso no se pueden ejecutar aplicaciones de MAC en Linux.


Respuesta larga:

Se basa en UNIX, en el sentido de que se ajusta a los estándares de arquitectura POSIX, al igual que Linux y BSD. POSIX son las siglas de Portable Operating System Interface for Unix-like Operating Systems. UNIX no es sólo un sistema operativo, también es un estándar. Todos los sistemas operativos basados en Linux se ejecutan sobre el Kernel Linux, desarrollado por Linus Torvalds en un principio (ahora por miles de otros desarrolladores independientes y entusiastas). Mac OS X, está basado en el sistema operativo Darwin de Apple, y ejecuta el Kernel XNU. Esto fue desarrollado por Apple, y es en realidad libre y de código abierto!

Cavemos un poco más profundo!

De Wikipedia:

XNU es el núcleo del sistema operativo de ordenador desarrollado en Apple Inc. desde diciembre de 1996 para su uso en el sistema operativo macOS y publicado como software libre y de código abierto como parte del sistema operativo Darwin. También se utiliza como núcleo para los sistemas operativos Apple TV Software, iOS, watchOS, tvOS y audioOS. XNU es la abreviatura de X is Not Unix

XNU está basado en el Kernel de FreeBSD. Ahora BSD significa Berkley Software Distribution, que fue un sistema operativo derivado de Unix desarrollado y distribuido por el Computer Systems Research Group (CSRG) de la Universidad de California, Berkeley, desde 1977 hasta 1995. En la actualidad, el término "BSD" se utiliza a menudo de forma no específica para referirse a cualquiera de los descendientes de BSD que forman una rama de la familia de sistemas operativos tipo Unix. Los sistemas operativos derivados del código fuente original de Berkeley, como FreeBSD y OpenBSD, siguen desarrollándose de forma activa y son ampliamente utilizados.

BSD, FreeBSD y OpenBSD se consideran sistemas UNIX.

La clave: A partir de Mac OS 10.5, Apple ha presentado cada versión de MacOS al UNIX Open Group para su certificación como sistema operativo UNIX. El sistema operativo ha sido aprobado en todas las ocasiones. Esto lo convierte oficialmente en un sistema operativo UNIX.

Para responder a la parte principal de la pregunta, las aplicaciones de Mac no pueden ejecutarse en Linux porque los sistemas operativos basados en Mac y Linux tienen diferentes ABIs {Interfaz binaria de aplicación}.

De Wikipedia:

En el software informático, una interfaz binaria de aplicación (ABI) es una interfaz entre dos módulos de programa; a menudo, uno de estos módulos es una biblioteca o instalación del sistema operativo, y el otro es un programa que está siendo ejecutado por un usuario.

Debido a varias diferencias internas en la forma en que Darwin (el sistema operativo de Apple en el que se basa Mac OS) y Linux manejan las llamadas al sistema, procesan los archivos binarios de aplicación (ejecutables) de forma diferente. Esto significa esencialmente que una aplicación escrita para Mac OS no se ejecutará en Linux.

Eso no significa que nadie esté tratando de hacerlos funcionar.
Sin embargo, ha habido intentos de hacerlos funcionar. El proyecto Darling es una capa de emulación de OS X que pretende conseguir un soporte binario compatible con aplicaciones Darwin/OS X en Linux, además de proporcionar herramientas útiles que ayuden especialmente en la instalación de aplicaciones. Esto es muy similar a lo que hace WINE en Linux (ayuda a ejecutar aplicaciones de Windows en Linux).