Можно ли установить 64-разрядную программу на 32-разрядную ОС с 64-разрядным процессором?
В принципе да, но процессор и ОС должны его поддерживать.
В ARMv8 32-битное (Aarch32) ядро не может запускать 64-битные (Aarch64) процессы. Это ограничение процессора.
Есть другие процессоры, которые не имеют этого ограничения, например, можно запускать процессы x86_64 поверх ядра x86_32 на процессоре x86_64, но немногие ядра поддерживают его, предположительно, потому что он имеет ограниченную полезность (в основном, вы сохраняете немного оперативной памяти в ядре, сделав его 32-битным). Linux не поддерживает это, но Solaris поддерживает.
Вы можете сохранить существующую 32-битную ОС, если вы используете 64-битное ядро . Ядро Linux Aarch64 может запускать процессы Aarch32. Raspbian не поддерживает это из коробки, поэтому вам нужно поддерживать как 32-битную, так и 64-битную ОС. Вы можете использовать одну из них в качестве основной ОС (то есть ту, которая запускает init и системные службы), а другую - для запуска определенной программы с использованием chroot. Смотрите Как мне запускать 32-битные программы на 64-битном Debian / Ubuntu? для практического подхода.
Обратите внимание, что вам нужно будет установить все библиотеки, которые требуются для 64-битной программы. Любой данный процесс должен быть либо полностью 32-разрядным, либо полностью 64-разрядным, поэтому нельзя использовать 32-разрядную библиотеку в 64-разрядном исполняемом файле.
Если у вас нет веских причин сохранить 32-разрядную систему, если вам нужно запустить 64-разрядный исполняемый файл, установить 64-разрядную систему будет проще.
Обратите внимание, что единственное, что могут делать 64-битные программы, а 32-битные программы - это адрес более 3 ГБ виртуальной памяти, что имеет ограниченную полезность в системе с 1 ГБ ОЗУ. Вы можете получить выигрыш в производительности от дополнительных, более крупных регистров, но вы также потеряете производительность из-за дополнительных обращений к памяти.