È possibile installare un programma a 64 bit su un sistema operativo a 32 bit con un processore a 64 bit?
In linea di principio sì, ma il processore e il sistema operativo devono supportarlo.
Su ARMv8, un kernel a 32 bit (Aarch32) non può eseguire processi a 64 bit (Aarch64). Questa è una limitazione del processore.
Esistono altri processori che non hanno questa limitazione, ad esempio è possibile eseguire processi x86_64 su un kernel x86_32 su un processore x86_64, ma pochi kernel lo supportano, presumibilmente perché è di utilità limitata (principalmente, si salva un bit di RAM nel kernel rendendolo a 32 bit). Linux non lo supporta, ma Solaris lo supporta.
Puoi mantenere il tuo sistema operativo a 32 bit esistente se esegui un kernel a 64 bit . Un kernel Linux Aarch64 può eseguire processi Aarch32. Raspbian non lo supporta immediatamente, quindi è necessario mantenere sia un sistema operativo a 32 bit sia un sistema operativo a 64 bit. È possibile utilizzare uno come sistema operativo principale (ovvero quello che esegue init e i servizi di sistema) e l'altro per eseguire un programma specifico utilizzando chroot. Vedi Come posso eseguire programmi a 32 bit su Debian / Ubuntu a 64 bit? per un approccio pratico.
Si noti che sarà necessario installare tutte le librerie richieste dal programma a 64 bit. Ogni dato processo deve essere interamente a 32 bit o interamente a 64 bit, quindi non è possibile utilizzare una libreria a 32 bit in un eseguibile a 64 bit.
A meno che non si abbiano validi motivi per mantenere un sistema a 32 bit, se è necessario eseguire un eseguibile a 64 bit, sarebbe più semplice installare un sistema a 64 bit.
Si noti che l'unica cosa che i programmi a 64 bit possono fare ma i programmi a 32 bit non possono fare è indirizzare più di circa 3 GB di memoria virtuale, che è di utilità limitata su un sistema con 1 GB di RAM. È possibile ottenere vantaggi prestazionali dai registri extra più grandi, ma si perderanno anche le prestazioni dagli accessi extra alla memoria.