
Tại sao Windows 64-bit
lại cần thư mục riêng để
chứa ứng dụng 32-bit ?

Nếu đang sử dụng hệ điều hành Windows 64-bit, có thể bạn sẽ để ý thấy 2 thư
mục “Programs file” xuất hiện trong phân vùng cài đặt HĐH: một thư mục
“Program Files” (chứa ứng dụng 64-bit), và 1 thư mục có tên “Program Files”
(x86) – chứa ứng dụng 32-bit. Trong khi trên Windows 32-bit thì chỉ có một
thư mục mà thôi. Vì sao lại có sự phân biệt này? Có lẽ đó cũng là câu hỏi mà
khá nhiều người tò mò muốn hỏi: tại sao các chương trình 32-bit phải ở trong
một thư mục khác với các chương trình 64-bit”. và “ Nếu tôi thay đổi đường
dẫn và trỏ mọi chương trình vào C:\Programs File\ thì điều gì sẽ xảy ra?”.
“Có phải vì một lý do kĩ thuật nào đó mà Microsoft phải tách ra làm 2 thư
mục?”
Rất may trong thời đại internet ngày nay, việc một thắc mắc khó hiểu của 1
(hay nhiều người) nào đó lại được giải đáp khá dễ dàng và đơn giản bởi người
khác có chuyên môn về vấn đề. Và câu hỏi trên cũng không phải ngoại lệ. Sau
khi 1 thành viên đem “tâm sự” trên trình bày ở diễn đàn Howtogeek, một số
thành viên làm việc trong ngành lập trình đã có lời giải thích khá trực quan,
dễ hiểu.

Câu trả lời rất đơn giản: lý do Microsoft tạo ra 2 thư mục riêng là để đảm bảo
các ứng dụng 32-bit vẫn sẽ tiếp tục hoạt động bình thường trên Windows 64-
bit mà không bị xáo trộn với bản thân các ứng dụng dành riêng cho Windows
64-bit. Sự phân chia này không phải là một giải pháp bắt buộc. Nó chỉ là
phương pháp thuận tiện hơn so với các giải pháp khác, chẳng hạn như: nếu
không tạo ra 2 thư mục riêng biệt, mỗi ứng dụng sẽ cần phải tự phân biệt các
DLL (thư viện liên kết động – Dynamic Link Library) hay các mã, tệp thực
thi riêng cho từng phiên bản Windows (32-bit và 64-bit).
Các chương trình 32-bit không chạy được trên hệ thống 64-bit. Một ứng dụng
32-bit không thể dùng được DLL của 64-bit, bởi vậy, sẽ cần một giải pháp để
cho ứng dụng 32-bit không tìm thấy DLL của phiên bản kia.
Như đã nói, giải pháp đơn giản nhất là đặt chúng trong hai thư mục riêng biệt.
Lựa chọn tốt nhất là mọi ứng dụng 64-bit “ẩn” các tập tin thực thi đi để ứng
dụng 32-bit không thấy, chẳng hạn như tạo thư mục bin64 trong ứng dụng đó.
Một câu trả lời khác từ lập trình viên Oliver Salzburg, liên quan đến lập trình
và lí do chính xác vì sao Microsft để cấu trúc của mình như thế: “tôi nghĩ lí
do để có các thư mục này là rất rõ ràng. Thư mục thực chất là một công cụ

