Quelle est la différence entre un système d'exploitation 32 bits et un système d'exploitation 64 bits? Un système d'exploitation 32 bits peut-il fonctionner dans un processeur 64 bits?
Quelle est la différence entre un système d'exploitation 32 bits et un système d'exploitation 64 bits? Un système d'exploitation 32 bits peut-il fonctionner dans un processeur 64 bits?
Réponses:
Votre question est spécifique à l'architecture. x64 est essentiellement une extension de l'architecture x86. Il prend en charge un espace d'adressage 64 bits. Il fournit de nouvelles instructions et de nouveaux registres.
Vous pouvez exécuter Windows x86 32 bits sur une machine x64. Notez que vous ne pouvez pas le faire sur les systèmes Itanium 64 bits.
Un processeur 64 bits peut exécuter les systèmes d'exploitation 32 et 64 (au moins une boîte x64). Un processeur 32 bits ne peut fonctionner que 32 nativement.
La différence concerne principalement la taille d'un pointeur / référence. Sur les machines 64 bits, vous pouvez référencer une adresse dans une plage d'adresses 64 bits (vous donnant ainsi 2 ^ 64 octets de mémoire). Sur 32 bits, vous ne pouvez adresser que 2 ^ 32 octets (= 4 Go). Maintenant, si vous regardez les ordinateurs actuels, il est évident que le monde passe au 64 bits: le 32 bits ne peut plus facilement traiter toute la RAM.
Sur x64 (AMD / Intel), vous avez des avantages supplémentaires de 64 bits. Le CPU a plus de registres et permet ainsi un code plus efficace.
Sur d'autres architectures, les différences entre 64 et 32 bits sont moins évidentes. Par exemple, la Nintendo 64 (vous vous en souvenez?) Était une machine 64 bits mais la plupart de son code était 32 bits. Donc, dans ce cas, le 64 bits a plutôt servi d'astuce marketing.
La réponse actuellement acceptée est généralement correcte mais pas spécifiquement. Il n'y a vraiment pas une seule chose appelée "CPU 32 bits" ou "" CPU 64 bits "- c'est une description qui ne fait référence qu'à une petite partie de l'architecture du CPU. En particulier, elle fait référence au nombre de lignes de sélection d'adresse entre la CPU et la mémoire, c'est-à-dire l' espace dit d' adresse disponible pour les opérations de mémoire.
Au temps jadis, lorsque le CPU, lorsque les gens s'asseyaient et tissaient (enroulaient) les fils entre un processeur et la mémoire, vous auriez dû utiliser 32 ou (théoriquement, car il n'existait pas à l'époque) 64 fils entre le CPU et le contrôleur de mémoire qui seraient utilisés pour spécifier à quelle adresse mémoire vous souhaitez accéder. Par exemple, disons que nous avons une architecture de mémoire à 2 bits: l'envoi de 00 sélectionnerait l'adresse 0, 01 sélectionnerait l'adresse 1, 10 sélectionnerait l'adresse 2 et 11 sélectionnerait l'adresse 3. Ce 2 bits nous donne 2 ^ 2 octets de RAM (4 octets).
Si vous prenez un processeur 32 bits et que vous ajoutez 32 câbles supplémentaires entre le processeur et le contrôleur de mémoire afin que vous puissiez magiquement prendre en charge plus de mémoire, vous disposez maintenant d'un "processeur 64 bits" qui peut fonctionner en 32 bits. code ou code 64 bits. Qu'est-ce que cela signifie et comment cela se produit-il? Eh bien, prenons notre processeur 2 bits de la partie précédente de cette réponse et ajoutons un autre fil, le transformant en un processeur 3 bits, nous prenant de 4 octets à 2 ^ 3 ou 8 octets de RAM.
Le code "2 octets" existant s'exécutera, définissant les valeurs des 2 derniers fils comme indiqué ci-dessus (00-11). Nous allons câbler la connexion supplémentaire à zéro par défaut, donc en fait, lorsque le code à 2 octets s'exécute, lorsqu'il sélectionne 00, il sélectionne en fait 000 et lorsqu'il sélectionne 11, il sélectionne en fait 011. Facile.
Maintenant, un programmeur veut écrire du code "natif" de 3 octets et écrit son logiciel pour profiter de l'espace d'adressage supplémentaire. Elle dit au CPU qu'elle sait ce qu'elle fait et qu'elle prendra le contrôle manuel des nouveaux fils supplémentaires. Son logiciel connaît les fils supplémentaires et envoie correctement 000-111, lui donnant un accès complet à la plage de mémoire prise en charge par cette nouvelle architecture de processeur.
Mais ce n'est pas ainsi que cela doit se produire. En fait, ce n'est normalement pas comme ça que les choses se passent. Lorsque les processeurs 64 bits ont été introduits pour la première fois (et ils étaient nombreux), ils ont tous adopté des architectures / conceptions entièrement nouvelles. Ils ne se sont pas contentés de clouer sur 32 fils supplémentaires et ont dit: «Voilà, c'est un processeur 64 bits que vous pouvez utiliser en mode 32 bits ou 64 bits», mais ils ont plutôt dit «Voici notre nouveau processeur et il ne prend que la programmation dans ce tout nouveau langage machine, se comporte de cette manière entièrement nouvelle, résout un bazillion de problèmes bien plus élégamment que les anciens processeurs x86 / i386 32 bits, et c'est une architecture native 64 bits. . "
Ce fut l'histoire de l'Intel Itanium, désormais connu sous le nom de "Itanic" en raison de sa masse massive. Il était censé annoncer la nouvelle ère 64 bits, et c'était quelque chose à voir. Instructions de longueur variable, énormes caches, espace d'adressage 64 bits, tonnes de registres, super excitant, super cool et super difficile à convaincre tout le monde de recompiler ou de réécrire 20 ans de code hérité. C'était à l'époque où AMD et Intel étaient en concurrence, et AMD a eu la brillante idée de dire "oublions tout cela" résout tous les problèmes du monde "et ajoute simplement 32 fils de plus à l'i386 et en fait un 64 bits compatible 64- bit CPU "et l'architecture du processeur x86_64 est née.
En fait, si vous regardez les noms et les sources du noyau pour les principaux systèmes d'exploitation (Linux, Windows, BSD, etc.), vous les trouverez jonchés de références aux CPU AMD64 et à l'architecture AMD64. AMD a proposé une stratégie gagnante pour que tout le monde passe au monde 64 bits tout en préservant la compatibilité avec les applications 32 bits, de manière à ce qu'un système d'exploitation 32 bits puisse fonctionner sur du matériel 64 bits ou même des applications 32 bits pourrait fonctionner sur un système d'exploitation 64 bits sur du matériel 64 bits. Intel a suivi la suite plus tôt que tard avec leur architecture "Intel EM64T" (qui était fondamentalement identique à AMD64) et x86_64 a gagné, tandis que l'Itanic et d'autres comme MIPS64 et ALPHA64 n'étaient plus vus sur le marché des ordinateurs de bureau / serveurs.
tl; dr amd64 alias les processeurs x86_64 sont conçus pour être compatibles avec le noyau et le code 32 et 64 bits, mais la plupart des processeurs 64 bits ne sont décidément pas rétrocompatibles de la même manière. Un processeur 32 bits peut accéder à au plus 4 Go de mémoire, tandis qu'un processeur 64 bits peut accéder à 16 superbes EiB (16 × 1024 ^ 6 octets, soit 4 milliards de fois plus de mémoire que la 4GiB).
Un système d'exploitation 32 et 64 bits peut fonctionner sur un processeur 64 bits, mais le système d'exploitation 64 bits peut utiliser la pleine puissance du processeur 64 bits (registres plus grands, plus d'instructions) - en bref, il peut faire plus de travail en même temps. Un processeur 32 bits ne prend en charge que le système d'exploitation Windows 32 bits.
32 and 64 bit OS can run on a 64 bit processor
n'est généralement pas correct