Ist es möglich, ein 64-Bit-Programm auf einem 32-Bit-Betriebssystem mit einem 64-Bit-Prozessor zu installieren?
Im Prinzip ja, aber der Prozessor und das Betriebssystem müssen es unterstützen.
In ARMv8 kann ein 32-Bit-Kernel (Aarch32) keine 64-Bit-Prozesse (Aarch64) ausführen. Dies ist eine Einschränkung des Prozessors.
Es gibt andere Prozessoren, die diese Einschränkung nicht haben. Beispielsweise ist es möglich, x86_64-Prozesse auf einem x86_32-Kernel auf einem x86_64-Prozessor auszuführen, aber nur wenige Kernel unterstützen dies, vermutlich weil es nur einen begrenzten Nutzen hat (meistens speichern Sie a Bit RAM im Kernel durch 32-Bit). Linux unterstützt es nicht, Solaris jedoch.
Sie können Ihr vorhandenes 32-Bit-Betriebssystem beibehalten, wenn Sie einen 64-Bit- Kernel ausführen . Ein Aarch64 Linux-Kernel kann Aarch32-Prozesse ausführen. Raspbian unterstützt dies nicht sofort, daher müssen Sie sowohl ein 32-Bit-Betriebssystem als auch ein 64-Bit-Betriebssystem verwalten. Sie können entweder eines als Hauptbetriebssystem verwenden (dh dasjenige, auf dem Init- und Systemdienste ausgeführt werden) und das andere, um ein bestimmtes Programm mit chroot auszuführen. Siehe Wie führe ich 32-Bit-Programme auf einem 64-Bit-Debian / Ubuntu aus? für einen praktischen Ansatz.
Beachten Sie, dass Sie alle für das 64-Bit-Programm erforderlichen Bibliotheken installieren müssen. Jeder Prozess muss entweder vollständig 32-Bit oder vollständig 64-Bit sein, sodass Sie keine 32-Bit-Bibliothek in einer ausführbaren 64-Bit-Datei verwenden können.
Wenn Sie keine triftigen Gründe haben, ein 32-Bit-System beizubehalten, ist es einfacher, ein 64-Bit-System zu installieren, wenn Sie eine ausführbare 64-Bit-Datei ausführen müssen.
Beachten Sie, dass 64-Bit-Programme nur 32-Bit-Programme nicht mehr als 3 GB virtuellen Speicher adressieren können, was auf einem System mit 1 GB RAM nur von begrenztem Nutzen ist. Sie können Leistungsvorteile durch die zusätzlichen, größeren Register erzielen, aber Sie verlieren auch die Leistung durch die zusätzlichen Speicherzugriffe.