¿Cómo se manejó la transición a 64 bits en Linux / Unix? El mundo de Windows todavía parece tener problemas y tengo curiosidad por saber cómo se manejó en el mundo * nix.
¿Cómo se manejó la transición a 64 bits en Linux / Unix? El mundo de Windows todavía parece tener problemas y tengo curiosidad por saber cómo se manejó en el mundo * nix.
Respuestas:
El trabajo requerido para hacer el kernel de 64 bits se realizó hace muuuucho tiempo usando sistemas DEC Alpha. Los programas, sin embargo, son un asunto diferente.
El consenso general que he visto hasta ahora parece ser:
/lib
y /lib64
directorios para sistemas que tienen binarios mixtosAparte de eso, realmente no vas a ver una gran cantidad de "dolor" de las versiones mixtas de 32/64 bits.
multilib
alien.slackbook.org/dokuwiki/doku.php?id=slackware:multilib
Windows y * ix utilizaron diferentes modelos de datos para la transición. Esta página de UNIX.org es un poco antigua, pero aún proporciona una buena visión general de las compensaciones (tenga en cuenta que long long
más tarde se agregó a C99, y se requería que tuviera al menos 64 bits). También puede ver un artículo de Wikipedia sobre el mismo tema. Como se propone en el extremo del artículo UNIX.org, lo más parecido a UNIX sistemas han ido con LP64, lo que significa long
, long long
y los punteros son todos de 64 bits.
Windows eligió lo que se llama el modelo de datos LLP64, lo que significa que solo los long long
punteros son de 64 bits. long
sigue siendo de 32 bits. Parte de la razón era simplemente que no querían revisar y corregir el código roto que se suponía que long
encajaba en un int
.
Como las distribuciones de Linux son en su mayoría de código abierto, ya se ha realizado una gran transición. A menos que utilice un software propio (como Skype), puede ejecutar un sistema puro de 64 bits sin inconvenientes.
Sin embargo, la verdadera diferencia en mi humilde opinión es más propietario frente a abierto que unix frente a Windows, ya que generalmente es el software de código abierto el que se porta primero (algunos voluntarios necesitan recompilar algo, tal vez solucionar algunos problemas de compilación), o en la mayoría de los casos no se transfieren a todo pero solo recompilado;) - y propiedad que se transfiere al último.
Posiblemente adicionalmente en Linux tenga repositorios para que la instalación se maneje de forma automática: no necesita elegir la versión de 64 bits o 32 bits (el sistema elige la suya automáticamente). En Windows, los programas se descargan y tienen versiones separadas de 64 bits y 32 bits:
Supongo que esa es la razón por la cual los binarios de Windows son generalmente de 32 bits: es de talla única y no todos han optado por la versión de 64 bits.
En realidad, intente "El largo camino hacia los 64 bits" en la cola de ACM: http://queue.acm.org/detail.cfm?id=1165766 Eso fue recogido más tarde por Communications of the ACM. El primer micro de 64 bits fue MIPS R4000, enviado en SGI Crimson 1Q1992, Dec Alphas enviado a finales de ese año.
Los R4000 se ejecutaban primero en modo de 32 bits, luego más tarde en modo de 64/32, es decir, SO de 64 bits, códigos de usuario de 64 o 32 bits. Alphas siempre ejecutó UNIX solo en 64 bits (una opción razonable, ya que no había una base instalada de aplicaciones de 32 bits).
Más tarde, en la década de 1990, SGI contribuyó con el esfuerzo de Linux de 64 bits (para ejecutarse en Itaniums), aproximadamente cuando XFS fue portado a Linux (realmente quería 64 bits).