Computer >> Hướng Dẫn Máy Tính >  >> Hệ Thống >> Windows

Khác biệt giữa thư mục System32 và SysWOW64 trong Windows 11/10

Nếu bạn đã sử dụng hệ điều hành Windows một thời gian, chắc hẳn bạn đã từng thấy thư mục System32. Tuy nhiên, nếu bạn đang dùng máy tính 64-bit, bạn sẽ nhận thấy có hai thư mục trong thư mục C:\Windows: System32 và SysWOW64. Bài viết này sẽ giải thích về chúng và sự khác biệt giữa thư mục System32 và SysWOW64 trong Windows 11/10.

Khác biệt giữa thư mục System32 và SysWOW64 trong Windows 11/10

Thư mục System32 là gì?

Thư mục System32 chứa các tệp hệ thống, chủ yếu là các tệp DLL (thư viện liên kết động). Đây là những chương trình phổ biến nhất được ứng dụng sử dụng để truy cập các tính năng của Windows. Ngoài ra, các chương trình cài đặt trên máy tính cũng có thể lưu trữ tệp trong thư mục này.

Khi bạn cài đặt một chương trình, hai việc xảy ra ở mức độ rộng: chương trình chính (file EXE) được cài đặt trong thư mục Programs, trong khi các tệp DLL (chứa các hàm, chức năng) được lưu trong thư mục System32. Đây là phương pháp phổ biến.

Thư mục SysWOW64 là gì?

Bạn có từng nhận thấy thư mục C:\Program Files (x86) trên máy 64-bit? "x86" ở đây có nghĩa là 32-bit. Vì vậy, để cài đặt chương trình 32-bit trên máy 64-bit, thư mục C:\Program Files (x86) được sử dụng. Trong khi thư mục C:\Program Files chứa các chương trình 64-bit và tệp của chúng.

Bạn có thể suy diễn rằng thư mục SysWOW64 chỉ chứa DLL 64-bit. Đó là ý định ban đầu, nhưng thực tế không như vậy. Nếu kiểm tra thủ công, bạn sẽ thấy nhiều DLL 64-bit trong System32 và DLL 32-bit trong SysWOW64.

Tại sao thư mục mang tên 32-bit lại chứa DLL 64-bit, và thư mục mang tên 64-bit lại chứa DLL 32-bit?

Đọc thêm: Tiến trình splwow64.exe là gì?

Sự khác biệt giữa thư mục System32 và SysWOW64

Cả hai đều là thư mục hệ thống chứa các DLL hoặc tệp toàn hệ thống. Tuy nhiên, chúng không tuân theo tên gọi của mình do lập trình cứng (hard-coded).

Trên máy 64-bit, chương trình 64-bit lưu trữ:

  • Tệp chính (EXE) trong C:\Program Files.
  • Tệp hệ thống (DLL, v.v.) trong C:\Windows\System32 chứa thư viện 64-bit.

Tuy nhiên, chương trình 32-bit lưu trữ:

  • Tệp chính trong C:\Program Files (x86)
  • Thư mục hệ thống là C:\Windows\SysWOW64.

Khi chương trình 32-bit muốn cài đặt DLL 32-bit vào C:\Windows\System32, nó sẽ được chuyển hướng (redirect) sang C:\Windows\SysWOW64. Điều này khiến System32 chỉ chứa thư viện 64-bit. Microsoft không thể xóa thư mục này vì sẽ làm hỏng nhiều chương trình.

Điều xảy ra là hầu hết các nhà phát triển triển khai ứng dụng 32-bit trên hệ thống 64-bit vẫn sử dụng C:\Windows\System32. Điều này được cứng vào mã chương trình. Vì Microsoft không muốn làm hỏng chương trình, họ thiết kế cơ chế chuyển hướng này.

Điều này đảm bảo mọi thứ diễn ra ngầm mà không cần nhà phát triển làm nhiều việc. Mỗi khi chương trình 32-bit yêu cầu từ thư mục System32, nó sẽ được chuyển hướng thầm lặng sang SysWOW64 chứa các DLL 32-bit. Không cần chuyển hướng cho chương trình 64-bit vì chúng đã có thư mục mặc định.

Tóm lại: Windows x64 có thư mục System32 chứa DLL 64-bit. Thư mục SysWOW64 thứ hai chứa DLL 32-bit. Tiến trình 64-bit gốc tìm DLL ở nơi chúng mong đợi là System32. Đối với tiến trình 32-bit, hệ điều hành chuyển hướng yêu cầu và hiển thị thư mục SysWOW64.

Cơ chế tương tự cũng được áp dụng cho Registry Windows – tách biệt chương trình 32-bit và 64-bit.

Liên quan: Thư mục System32 tự mở khi khởi động.

Ý nghĩa của "WOW" trong SysWOW64

Thay vì đặt tên là System64, Microsoft đặt tên thư mục này là SysWOW64. WOW là viết tắt của Windows (32-bit) on Windows (64-bit). Ứng dụng 32-bit có thể chạy trên Windows 64-bit, và đó là nguồn gốc tên gọi.

Microsoft chắc chắn không lường trước được điều này, nếu không thư mục System32 sẽ không bao giờ được đặt tên như vậy. Việc không đổi tên thư mục mà sử dụng chuyển hướng là một quyết định xuất sắc. Nó đảm bảo cả người dùng và nhà phát triển không mất ứng dụng khi chuyển sang 64-bit.

Mặc dù hệ thống 32-bit đang dần bị loại bỏ và thay thế bởi máy tính 64-bit, nhưng vẫn cần thời gian. Có lẽ trong tương lai Microsoft sẽ có giải pháp. Hy vọng không có mã cứng trong lập trình 64-bit.

Đọc tiếp: Thư mục Sysnative trong Windows 64-bit giải thích.

Khác biệt giữa thư mục System32 và SysWOW64 trong Windows 11/10