Comment la transition vers 64 bits a-t-elle été gérée sous Linux / Unix? Le monde Windows semble toujours avoir des problèmes avec lui et je suis curieux de savoir comment il a été géré dans le monde * nix.
Comment la transition vers 64 bits a-t-elle été gérée sous Linux / Unix? Le monde Windows semble toujours avoir des problèmes avec lui et je suis curieux de savoir comment il a été géré dans le monde * nix.
Réponses:
Le travail requis pour rendre le noyau 64 bits a été effectué il y a très longtemps en utilisant les systèmes DEC Alpha. Les programmes, cependant, sont une autre affaire.
Le consensus général que j'ai vu jusqu'à présent semble être:
/lib
et /lib64
répertoires pour les systèmes qui ont des binaires mixtesEn dehors de cela, vous n'allez vraiment pas voir beaucoup de "chagrin" à partir de versions mixtes 32/64 bits.
multilib
alien.slackbook.org/dokuwiki/doku.php?id=slackware:multilib
Windows et * ix ont utilisé différents modèles de données pour la transition. Cette page UNIX.org est un peu ancienne, mais elle fournit toujours une bonne vue d'ensemble des compromis (notez qu'elle a long long
été ajoutée plus tard à C99 et devait être au moins 64 bits). Vous pouvez également voir un article Wikipedia sur le même sujet. Comme le préconise à la fin de l'article UNIX.org, la plupart des systèmes de type UNIX sont allés avec LP64, ce qui signifie long
, long long
et les pointeurs sont tous 64 bits.
Windows a opté pour ce qu'on appelle le modèle de données LLP64, ce qui signifie que seuls les long long
pointeurs sont en 64 bits. long
reste 32 bits. Une partie de la raison était simplement qu'ils ne voulaient pas passer en revue et corriger le code cassé qui supposait qu'il long
cadrait dans un int
.
Comme les distributions Linux sont principalement OpenSource, une transition importante a déjà été effectuée. Sauf si vous utilisez un logiciel approprié (tel que skype), vous pouvez exécuter un système 64 bits pur sans aucun inconvénient.
Cependant, la vraie différence à mon humble avis est plus propertiaire vs ouvert qu'Unix vs windows car c'est généralement le logiciel open source qui est porté en premier (certains volontaires doivent recompiler quelque chose - peut-être résoudre certains problèmes de compilation) - ou dans la plupart des cas, pas portés sur tout mais juste recompilé;) - et le répertoire qui est porté en dernier.
En outre, sous Linux, vous disposez peut-être de référentiels, de sorte que l'installation est gérée automatiquement - vous n'avez pas besoin de choisir la version 64 bits ou 32 bits (le système choisit automatiquement la vôtre). Sous Windows, les programmes sont téléchargés et ont des versions 64 bits et 32 bits distinctes:
Je suppose que c'est la raison pour laquelle les binaires Windows sont généralement 32 bits - c'est une taille unique et tout le monde n'est pas passé à la version 64 bits.
En fait, essayez "The Long Road to 64-bits" sur ACM Queue: http://queue.acm.org/detail.cfm?id=1165766 qui a ensuite été repris par les Communications de l'ACM. Le premier micro 64 bits était le MIPS R4000, expédié en SGI Crimson 1Q1992, Dec Alphas expédié à la fin de cette année.
Les R4000 fonctionnaient d'abord en mode 32 bits, puis plus tard en mode 64/32, c'est-à-dire avec un système d'exploitation 64 bits, des codes utilisateur 64 ou 32 bits. Alphas a toujours exécuté UNIX en 64 bits uniquement (un choix raisonnable, car il n'y avait pas de base installée d'applications 32 bits.)
Plus tard dans les années 1990, SGI a contribué à Linux 64 bits (pour fonctionner sur Itaniums), à peu près au moment où XFS a été porté sur Linux (il voulait vraiment 64 bits).