Sự khác nhau giữa Thư mục “System32” và “SysWOW64” trong Windows là gì?

Mục lục:

Sự khác nhau giữa Thư mục “System32” và “SysWOW64” trong Windows là gì?
Sự khác nhau giữa Thư mục “System32” và “SysWOW64” trong Windows là gì?

Video: Sự khác nhau giữa Thư mục “System32” và “SysWOW64” trong Windows là gì?

Video: Sự khác nhau giữa Thư mục “System32” và “SysWOW64” trong Windows là gì?
Video: [ Hót ] Cách cài đặt Máy Ảnh trên iPhone thành một máy ảnh Chuyên Nghiệp | TopMax | - YouTube 2024, Tháng tư
Anonim
Trên các phiên bản Windows 64 bit, bạn có hai thư mục Program Files riêng biệt. Nhưng nó không kết thúc ở đó. Bạn cũng có hai thư mục hệ thống riêng biệt, nơi các thư viện DLL và các tệp thực thi được lưu trữ: System32 và SysWOW64. Mặc dù tên, System32 có đầy đủ các tập tin 64-bit và SysWOW64 có đầy đủ các tập tin 32-bit. Vì vậy, những gì cho?
Trên các phiên bản Windows 64 bit, bạn có hai thư mục Program Files riêng biệt. Nhưng nó không kết thúc ở đó. Bạn cũng có hai thư mục hệ thống riêng biệt, nơi các thư viện DLL và các tệp thực thi được lưu trữ: System32 và SysWOW64. Mặc dù tên, System32 có đầy đủ các tập tin 64-bit và SysWOW64 có đầy đủ các tập tin 32-bit. Vì vậy, những gì cho?

System32 là gì?

Thư mục System32 chứa các tệp hệ thống Windows, cả hai tệp thư viện.DLL được sử dụng bởi các chương trình và các tiện ích chương trình.EXE là một phần của Windows. Trong khi hầu hết các tệp bạn tìm thấy ở đây là một phần của hệ điều hành Windows, các chương trình phần mềm của bên thứ ba đôi khi cũng cài đặt các tệp DLL của riêng chúng vào thư mục này.

Các ứng dụng chạy trên hệ thống của bạn có thể được cài đặt trong thư mục Program Files của bạn hoặc ở nơi khác, nhưng chúng thường tải các thư viện toàn hệ thống từ thư mục System32.

Tách các thư viện 32 bit và 64 bit

Trên phiên bản Windows 64 bit, bạn có một thư mục C: Program Files chứa các chương trình 64 bit và các tệp của chúng và thư mục C: Program Files (x86) chứa các chương trình 32 bit và tệp của chúng. Việc tách các tệp này là hữu ích vì các chương trình 64 bit cần các tệp DLL 64 bit và các chương trình 32 bit cần các tệp DLL 32 bit.
Trên phiên bản Windows 64 bit, bạn có một thư mục C: Program Files chứa các chương trình 64 bit và các tệp của chúng và thư mục C: Program Files (x86) chứa các chương trình 32 bit và tệp của chúng. Việc tách các tệp này là hữu ích vì các chương trình 64 bit cần các tệp DLL 64 bit và các chương trình 32 bit cần các tệp DLL 32 bit.

Nếu một chương trình 32-bit đi để tải một tập tin DLL nó cần, tìm thấy một phiên bản 64-bit, và cố gắng để tải nó, nó sẽ sụp đổ. Bằng cách tách phần mềm 64 bit và 32 bit thành hai thư mục Tệp chương trình khác nhau, Windows đảm bảo rằng chúng sẽ không bị lẫn lộn và gây ra sự cố.

Tuy nhiên, không phải tất cả các tệp DLL đều được lưu trữ trong Program Files. Nhiều thư viện toàn hệ thống đi kèm với Windows được lưu trữ trong C: System32, và một số chương trình cũng kết xuất các tệp thư viện riêng của chúng ở đây. Vì vậy, cũng giống như Windows có các thư mục Program Files 32-bit và 64-bit riêng biệt, nó cũng có các phiên bản 32-bit và 64-bit riêng biệt của thư mục System32.

System32 và SysWOW64

Trên máy tính 32 bit, tất cả các chương trình 32 bit lưu trữ tệp của chúng trong C: Program Files và vị trí thư viện trên toàn hệ thống là C: System32.

Trên máy tính 64 bit, các chương trình 64 bit lưu trữ các tệp của chúng trong C: Program Files và thư mục C: Windows System32 toàn hệ thống chứa thư viện 64 bit. Các chương trình 32 bit lưu trữ các tệp của chúng trong C: Program Files (x86) và thư mục toàn hệ thống là C: Windows SysWOW64.

Điều này chắc chắn là phản trực giác. Mặc dù "32" trong tên, thư mục System32 chứa các thư viện 64-bit. Và, mặc dù 64 trong tên, thư mục SysWOW64 chứa các thư viện 32 bit - ít nhất là trên các phiên bản Windows 64 bit.

Nói chung, bạn sẽ không cần biết điều này. Hệ điều hành Windows và các chương trình bạn sử dụng sẽ tự động đặt các tệp của họ vào đúng vị trí và sử dụng đúng thư mục. Tuy nhiên, nếu bạn cần phải cài đặt thủ công tệp DLL ở vị trí chính xác hoặc tìm vị trí được cài đặt - rất hiếm - bạn sẽ cần phải biết cái nào.

WOW64, Giải thích

Ví dụ, nếu bạn cài đặt một chương trình 32 bit trên phiên bản Windows 64 bit và nó cố gắng ghi vào thư mục C: Program Files, WoW64 trỏ nó vào C: Program Files (x86). Và, nếu nó muốn truy cập vào thư mục C: Windows System32, WoW64 trỏ nó vào C: Windows SysWOW64. Windows thực hiện điều này bằng cách sử dụng trình chuyển hướng hệ thống tệp.

Tất cả điều này xảy ra tự động và minh bạch trong nền. Chương trình thậm chí không biết nó đang chạy trên hệ điều hành 64 bit, cho phép các chương trình 32 bit cũ hơn chạy mà không cần sửa đổi trên các phiên bản Windows 64 bit. WOW64 cũng chuyển hướng truy cập đăng ký, đảm bảo có các khu vực riêng biệt của sổ đăng ký cho các chương trình 64 bit và 32 bit.

Vì vậy, tại sao là System32 64-bit, và SysWOW64 32-bit?

Tất cả điều đó đưa chúng ta trở lại câu hỏi triệu đô la: Tại sao thư mục “System32” 64 bit và SysWOW64 32 bit?

Câu trả lời có vẻ là nhiều ứng dụng 32 bit đã được mã hóa cứng để sử dụng thư mục C: Windows System32. Khi các nhà phát triển biên dịch lại các ứng dụng này cho các phiên bản Windows 64 bit, họ tiếp tục sử dụng thư mục C: Windows System32.

Thay vì đổi tên thư mục và buộc các nhà phát triển chuyển sang thư mục mới, phá vỡ nhiều ứng dụng trong quá trình này, Microsoft đã để lại "System32" làm thư mục thư viện hệ thống chuẩn. Họ tạo ra một thư mục thư viện mới cho các ứng dụng đang chạy dưới lớp WoW64, mà chúng đặt tên là "SysWOW64". Khi bạn nghĩ về nó theo cách này, cái tên này có ý nghĩa hơn.

Có, nó là một chút ngớ ngẩn rằng một thư mục với "32" trong tên bây giờ là 64-bit. Có lẽ Microsoft nên thấy rằng khi họ đặt tên nó là C: Windows System32 vào những năm 90. Tuy nhiên, mặc dù một lược đồ đặt tên đơn giản hơn sẽ tốt đẹp, nó không đáng để phá vỡ một loạt các chương trình và tạo thêm nhiều công việc cho các nhà phát triển chỉ để đến đó. Điều đó có nghĩa là chúng tôi bị mắc kẹt với System32 và SysWOW64 trong tương lai gần.

Đề xuất: