Có thể cài đặt chương trình 64 bit trên HĐH 32 bit với bộ xử lý 64 bit không?
Về nguyên tắc có, nhưng bộ xử lý và HĐH phải hỗ trợ nó.
Trên ARMv8, hạt nhân 32 bit (Aarch32) không thể chạy các quy trình 64 bit (Aarch64). Đây là một hạn chế của bộ xử lý.
Có những bộ xử lý khác không có giới hạn này, ví dụ, có thể chạy các quy trình x86_64 trên hạt nhân x86_32 trên bộ xử lý x86_64, nhưng có lẽ ít hạt nhân hỗ trợ nó, có lẽ vì tiện ích hạn chế (chủ yếu là bạn lưu bit RAM trong kernel bằng cách làm cho nó 32 bit). Linux không hỗ trợ nó, nhưng Solaris thì có.
Bạn có thể giữ HĐH 32 bit hiện tại nếu chạy kernel 64 bit . Một nhân Linux Aarch64 có thể chạy các quy trình Aarch32. Raspbian không hỗ trợ điều này ngay lập tức, vì vậy bạn cần duy trì cả HĐH 32 bit và HĐH 64 bit. Bạn có thể sử dụng một trong hai hệ điều hành chính (tức là hệ điều hành chạy các dịch vụ init và hệ thống) và hệ điều hành khác để chạy một chương trình cụ thể bằng chroot. Xem Làm cách nào để chạy chương trình 32 bit trên Debian / Ubuntu 64 bit? cho một cách tiếp cận thực tế.
Lưu ý rằng bạn sẽ cần cài đặt tất cả các thư viện mà chương trình 64 bit yêu cầu. Bất kỳ quy trình nhất định nào cũng phải là 32 bit hoặc toàn bộ 64 bit, vì vậy bạn không thể sử dụng thư viện 32 bit trong tệp thực thi 64 bit.
Trừ khi bạn có lý do mạnh mẽ để giữ hệ thống 32 bit, nếu bạn cần chạy tệp thực thi 64 bit, việc cài đặt hệ thống 64 bit sẽ dễ dàng hơn.
Lưu ý rằng điều duy nhất mà các chương trình 64 bit có thể làm được nhưng các chương trình 32 bit không thể giải quyết được nhiều hơn khoảng 3 GB bộ nhớ ảo, đây là tiện ích hạn chế trên hệ thống có RAM 1GB. Bạn có thể nhận được lợi ích hiệu suất từ các thanh ghi bổ sung, lớn hơn, nhưng bạn cũng sẽ mất hiệu suất từ các truy cập bộ nhớ thêm.