¿Todas las distribuciones modernas de Linux son idénticas en términos de su arquitectura central?

Realmente estás haciendo múltiples preguntas, aquí.

Tomando su pregunta literalmente, especialmente al ignorar los detalles, uno podría responder de cualquier manera. Por un lado, las aplicaciones del núcleo y del sistema central son bastante similares en todas las principales distribuciones de escritorio y servidor, al menos en el código fuente.

La mayoría de las distribuciones más comunes se ejecutan en más de una arquitectura de hardware, por otro lado. Incluso si es solo IA32 y AM64, pero la mayoría también están disponibles para ARM, y algunos para otros. Y luego está Android, que podría describirse como una distribución de Linux, si uno quisiera ser un poco pedante, y comparte poca infraestructura además del Kernel y el código directamente relacionado con otros. Y no entremos en los sistemas init y demás. Habrá dragones.

Ahora estamos llegando a la segunda parte: ¿se puede ejecutar el mismo software en todas las distribuciones modernas de Linux?

Una vez que nos hemos librado de los patos extraños como Android: Claro.

Todo el software de código abierto, al menos. Es posible que necesite compilar e instalar a mano desde la fuente sin procesar, y puede que tenga que instalar una tonelada métrica de bibliotecas y otras dependencias, de nuevo, compiladas e instaladas manualmente desde el código fuente sin procesar, si es necesario. También es posible que tenga que volver a escribir algunos scripts de inicio, etc., para que algún software se ejecute con éxito, pero debería funcionar.

A excepción de algunos programas que dependen de características que solo están disponibles en algunas arquitecturas de procesador, o controladores específicos que solo están disponibles para algunas arquitecturas de procesador.

Los paquetes binarios (ya compilados) son otra cosa otra vez: si bien los binarios de Linux con buen comportamiento deberían ejecutarse en cualquier distribución que se compila para la misma arquitectura de procesador subyacente (sistema, realmente), a menudo dependen de versiones bastante específicas de bibliotecas, servicios del sistema y ubicaciones para archivos de configuración. Si bien, en el pasado, logré obtener programas que solo estaban disponibles como paquetes binarios para una distribución específica (SuSE en ese caso) para instalar y ejecutar bajo una diferente (Debian), fue una molestia por detrás e involucrada mucho trabajo manual bastante cerca del sistema. Y a veces no funcionará.

¿Obtener paquetes binarios para que una arquitectura de sistema se ejecute incluso en la misma distribución para otra arquitectura? Olvídalo. Nunca obtendrá un programa binario IA32 para ejecutarse en una máquina basada en ARM, incluso si está empaquetado para Debian XY y está ejecutando ese mismo sistema operativo y versión en su máquina ARM. Ni siquiera intentará instalarse, normalmente (aunque Debian es Debian, estoy seguro de que puede forzar al instalador a intentarlo y morir horriblemente al intentarlo).

Para recapitular en términos un poco menos especializados: más o menos.

  • ¿Está disponible la mayoría del software de aplicación para una distribución de PC convencional (basada en Intel o AMD) para todos los demás? Si. Y probablemente muy fácil de instalar.
  • ¿Puede obtener software escrito para Linux y totalmente disponible como código fuente instalado en casi cualquier distribución de Linux actual? Casi seguro Podría requerir algunos ajustes e instalar aplicaciones, servicios o bibliotecas adicionales que no son estándar en esa distribución, pero debería funcionar nueve de cada diez veces.
  • ¿Puede instalar software empaquetado como un paquete binario para Red Hat en Ubuntu (por ejemplo)? Depende de muchas cosas. Lo más probable es que implique un poco de manipulación, investigación, trabajo manual y prueba y error, pero las posibilidades son bastante decentes, siempre y cuando permanezca dentro de la misma Arquitectura del Sistema / Procesador.
  • ¿Puedes instalar Google Chrome¹ en tu Raspberry Pi²? Si eres Linus Torvalds, una hermana gemela perdida que siempre fue mucho mejor con esas cosas de la computadora, de todos modos, mmmaayybe De lo contrario: prueba la lotería. Mejores oportunidades

  1. Un programa de código cerrado³ que Google solo proporciona como paquetes binarios para la arquitectura AM64 (y hasta hace poco IA32) ”.
  2. Una máquina basada en ARM
  3. Sí, hay cromo. Solo le faltan algunas (para mí) características asesinas de la construcción cerrada de Google
  4. Excepto para Chrome Books basados ​​en ARM. Nadie dijo nunca que tenía sentido .

En casi todos los casos la respuesta es sí. Si algún programa se ejecuta en un Linux, es muy posible que se ejecute en otro. Todo lo que se puede requerir son algunas dependencias que la primera ya había instalado, pero la segunda no. Por ejemplo, un programa que usa el marco Qt GUI se ejecuta como está en un Linux con el escritorio KDE, pero requeriría que se instale una gran parte de las bibliotecas Qt para que pueda ejecutarse en otro usando el escritorio Gnome.

Hay algunas situaciones donde ocurre un choque. Por ejemplo, una distribución puede tener algunos programas / bibliotecas / etc. instalados que impiden la instalación de otra (o una de sus dependencias). Una muestra de esto con la que me he encontrado es el cliente de Dropbox instalado en Ubuntu Unity; esto choca con el programa marcador en KDE, por lo que si tiene Dropbox en Unity, se encontrará con problemas si luego instala el escritorio de KDE también, o tampoco puede hacer que Dropbox funcione en el escritorio de KDE. Al menos no sin desinstalar el programa marcador, por lo que no puedo usar un módem.

La mayoría del software de Linux es de código abierto y, por lo tanto, puede compilarse a partir del código fuente, si es necesario.

Fuera de eso, hay dos formatos ejecutables principales: .DEB y .RPM

.DEB es usado por Debian, y es derivados.

.RPM es utilizado por Enterprize Linux, como RHEL, SLES y sus derivados.

Otras cosas a tener en cuenta:

Una distribución de Linux puede ser X86 (IA / AMD64), ARM o IBM Power.

Por ejemplo, los juegos de Steam solo son compatibles con las distribuciones X86 (32 bits y 64 bits).

Sí, suponiendo que esté hablando de distribuciones de escritorio convencionales.

Todos son muy similares, las principales diferencias son la marca y los administradores de paquetes que usan.