¿Por qué los microcontroladores y microprocesadores little endian son más populares que big endian dado que los protocolos de red como TCP / IP son big endian?

Cuando escribe código en un lenguaje de alto nivel, el compilador maneja casi cualquier peculiaridad causada por la endianidad para usted. Esto es bueno porque hace que su código sea portátil. Realmente se trata de cómo se ordenan los bytes individuales de palabras / palabras, etc., en la memoria.
Curiosamente, al menos para mí, es que cualquier depurador, en aras de su cordura, generalmente muestra el volcado de memoria en modo big-endian, independientemente del diseño de memoria real. ¡Piense en tratar de leer esas palabras clave si fueran little-endian!

Como mencionas, cuando llegas a la interacción máquina a máquina, los protocolos de transmisión de datos, etc., la “endianidad” comienza a importar. Tienes que enviar los bits y bytes en un orden específico. Y no todos van a pensar que elegiste la forma “correcta” de hacerlo. No importa lo que elijas, algunas personas se avergonzarán de cómo van a tener que contorsionar los bytes y los bits de manera ridícula y preguntarse, ¿qué estaban pensando?

De todos modos, el punto que estoy tratando de hacer es que la resistencia de las máquinas es totalmente independiente de los protocolos de transmisión.

Algo así, la forma en que almacena los libros en el estante de la biblioteca no tiene una relación necesaria con el estándar de cómo los empaqueta para su envío. Un método puede hacer que sea mucho más fácil sacarlos del estante y apilarlos en la caja, sacarlos de la caja y volver a colocarlos en el estante, pero puede hacerlo independientemente de su técnica de estantería.
¡Siempre y cuando haya una forma estándar de colocarlos en la caja para el transporte! Eso es lo importante.
=========
Ahora volví a mirar tu pregunta y me di cuenta de que realmente no la había respondido.
Lo desglosaré, según mis pensamientos, observaciones.

¿Por qué los protocolos de transporte son big-endian?
1- arquitecturas “antiguas” eran grandes endian
2 – la gente obviamente piensa en Big Endian
Esto podría / lo llevaría a visualizar sus datos y diseñar una estructura (para el transporte) de una gran manera endian.

¿Por qué los procesadores little endian son “más populares”?
Creo que comenzó como una cuestión de costo / rendimiento (ahora totalmente eclipsada por las mejoras de hardware).
1 – IBM 360 son realmente caros 🙂
2 – en días de 8 bits – hubo algunos escenarios en los que la poca endiacidad realmente tenía mucho sentido.
Imagine agregar un inmediato (de memoria) a un registro. Es una operación de onda. Si busco los bytes de una palabra clave de uno en uno desde el byte bajo hasta el byte alto, puedo usar un sumador de bytes y termino cuando termine de buscar el último byte.
Si soy big endian … o necesito recuperar los bytes fuera de servicio, o recuperarlos todos y luego agregarlos con un sumador grande o pieza por pieza.

Entonces, cuando tuve que diseñar mi primer “procesador”, la elección obvia fue poca endianess. Esto simplificó el hardware, pero convirtió el “software” en una pesadilla. Tuvimos que cargar el subsistema de memoria con punchcard, así que por palabras. Esto significaba que tenía que ensamblar a mano mi código de máquina, luego invertir los bytes antes de perforar las tarjetas. Fue “construcción de carácter”.

Las dos cosas están bastante débilmente vinculadas. El dominio de Intel en las computadoras de uso general se debe a una larga lista de decisiones comerciales, tecnológicas e históricas, pero dudo que la resistencia de los sistemas de comunicación haya molestado a muchas personas además de los desarrolladores de protocolos.

En cuanto a los microcontroladores: hay muchos diseños exitosos de little endian, pero Freescale es un diseño big endian que todavía tiene un nicho de uso; ARM (posiblemente el microcontrolador más exitoso) es bi-endian.

¿Probablemente porque el USB es little endian? No 🙂

Endianness realmente no importa. La mayoría de los núcleos modernos cuentan con instrucciones de conversión de resistencia que convierten registros internos o realizan la conversión durante las instrucciones de carga / almacenamiento sin ninguna penalización de rendimiento. Incluso sin un apoyo especial no es gran cosa.

Principalmente es historia: Intel prefirió little endian (x86), Motorola prefirió big endian (m68k, PPC), ARM puede ser ambos.