12
votes

Je développe une application 64 bits. Est-il possible d'exécuter l'application 64 bits sur un système d'exploitation 32 bits?

Je développe une application 64 bits. Est-il possible d'exécuter l'application 64 bits sur un système d'exploitation 32 bits?

Veuillez noter que la question est générique et non spécifique à Windows OS. Enfait l'application en elle-même est portable sur le système d'exploitation.


3 commentaires

De la question, cela ressemble à vous essayer d'utiliser la demande en question. Je reformulerais le titre et la question: "Je développe une application Windows. Puis-je expédier des fichiers binaires de 64 bits et les faire travailler sur des fenêtres de 32 bits et de 64 bits?"


@Douglas, j'espère que mon édition va bien.


Temporairement fermé et rouvert pour empêcher la migration vers Su.


9 Réponses :


7
votes

sur Windows, uniquement en utilisant un machine virtuelle .

sur OS X, les applications 64 bits fonctionnent de manière nativement (merci Stephen)


5 commentaires

Qui descendit toutes ces réponses sans fournir une correction?


+1 - Quelqu'un est révolutionnaire toutes les réponses, y compris la mienne. Et je ne peux pas voir pourquoi. Si nous nous trompons, veuillez fournir la solution correcte.


@Pino: Je pense que quelqu'un a essayé d'obtenir sa réponse au sommet au début en descendant toutes les autres réponses


Stupide et vaincre l'objet de cela. Les commentaires doivent être requis.


Ceci est vrai sur Windows, mais pas vrai sur tous les systèmes d'exploitation. OS X, par exemple, exécutera des fichiers binaires 64 bits sur le noyau 32 bits.



5
votes

L'autre solution est bien, je ne pense pas que vous puissiez exécuter une application 64 bits sur un système d'exploitation 32bit, vous pourrez peut-être utiliser une machine virtuelle ou une sorte de virtualisation.


1 commentaires

Dépend du système d'exploitation. Cela ne fonctionnera pas sur Windows, mais cela fonctionnera sur OS X.



2
votes

voir Ceci (en supposant que vous exécutez des fenêtres):

Si le programme est spécialement conçu pour la version 64 bits de Windows, elle ne fonctionnera pas sur la version 32 bits de Windows. (Cependant, la plupart des programmes conçus pour la version 32 bits de Windows fonctionneront sur la version 64 bits de Windows.)

Les pilotes de périphérique conçus pour la version 64 bits de Windows ne fonctionneront pas sur des ordinateurs exécutant une version 32 bits de Windows. Pour savoir comment vérifier les pilotes, voir Mettre à jour un pilote pour le matériel qui ne fonctionne pas correctement ou d'aller sur le site Web du fabricant de périphériques.


0 commentaires

14
votes

(Nous supposerons que vous parlez de AMD64 (== EM64T == x86_64 ) et X86 pour 64 bits et 32 ​​bits respectivement)

Vous pouvez exécuter un code AMD64 sur X86 processeurs uniquement par émulation (par exemple, QEMU ) ou quelques types de Virtualisation (je crois que VMware pourrait prendre en charge le système d'exploitation invité 64bit sur 32 bits d'OS sur 64 cpu capable de bits). Cependant, cela signifie exécuter un système d'exploitation 64 bits en tant qu'invité sur l'émulation ou la virtualisation que je crois.

Comme vous développez l'application, il ne devrait pas être trop difficile de développer des constructions 32 bits et 64 bits de votre code.

Pour Mac, vous pouvez expédier un seul binaire qui contient les deux types de code de code, ou Mac OSX peut exécuter votre binaire de 64 bits sur un noyau 32 bits (uniquement sur un processeur Capable X86_64). Pour Windows et Linux, vous devez soit expédier des installateurs distincts, soit expédier de l'installateur intelligent, qui sélectionne les billets corrects au moment de l'installation. Pour Linux, il existe un projet d'ajout de la possibilité d'exécuter le code AMD64 sur le noyau X86 sur le processeur AMD64 - http: //linuxpa64.sourceforge .NET / - Mais cela n'a pas l'air d'avoir très loin dans le noyau de la ligne principale.

Y a-t-il une raison particulière que vous voulez seulement produire des fichiers binaires 64 bits?
Si c'est pour accéder à une mémoire supplémentaire, le système d'exploitation 32 bits ne pourra pas vous donner une mémoire supplémentaire de toute façon.
Si vous éviterez de tester 2 versions différentes, produisez simplement la version 32 bits, elle fonctionnera sur Windows AMD64 et la plupart des distributions Linux AMD64 sans problèmes.


2 commentaires

Surtout dans certains cas si vous exécutez l'hôte 32 bits sur une CPU 64 bits.


Sur le Mac, vous pouvez également expédier un binaire 64 bits, et cela fonctionnera sur les noyaux 32 et 64 bits.



3
votes

Il est possible d'utiliser QEMU en mode d'émulation souple


0 commentaires

3
votes

NO.

Voir Microsoft FAQ :

Les termes 32 bits et 64 bits font référence à la façon dont le processeur d'un ordinateur (aussi appelé une CPU), gère les informations. La version 64 bits des poignées Windows Grandes quantités de mémoire d'accès aléatoire (RAM) plus efficacement qu'un 32 bits système. Pour plus de détails, allez à un Description des différences entre Versions 32 bits de Windows Vista et Versions 64 bits de Windows Vista en ligne.

Comprendre la différence entre 32 bits et 64 bits et vous verrez pourquoi ce n'est pas possible.


3 commentaires

Qu'en est-il de l'émulation et des machines virtuelles?


Ce n'est pas "natif" que je suppose que l'OP vous demande.


@Mouviciel: Ensuite, le programme 64 bits serait exécuté sur une plate-forme émulée ou virtuelle 64 bits au lieu d'être exécutée sur une plate-forme 32 bits.



4
votes

Il existe une solution plus facile que d'essayer d'exécuter un programme de 64 bits sur un système d'exploitation 32 bits (y compris l'exécution d'une plate-forme virtuelle 64 bits sur le système d'exploitation 32 bits): recompilez-le pour le système d'exploitation 32 bits .

Lorsque vous avez dit qu'il est portable sur différents OSES, avez-vous également signié des systèmes d'exploitation non 64 bits? Je ne pouvais pas appeler quelque chose de portable sans qualifier "seulement 64 bits" si c'était le cas, et je pense que beaucoup (peut-être même le plus?) Les programmeurs s'attendent également à ce que la qualification, au moins actuellement.


0 commentaires

2
votes

sur Windows, non. Sur OS X, oui. Je ne sais pas ce que l'état des choses est sur Linux.

En fait, les bottes de léopard des neiges dans un noyau 32 bits, mais compile les applications 64 bits par défaut, il est donc assez courant sur OS X.


0 commentaires

2
votes

Une application 64 bits ne fonctionne pas sur une période de processeur de 32 bits

Une application 64 bits utilise un registre de 64 bits de large. Il suffit de ne pas correspondre.


0 commentaires