อะไรคือความแตกต่างระหว่างโฟลเดอร์“ System32” และ“ SysWOW64” ใน Windows?
บน Windows เวอร์ชั่น 64 บิตคุณมีโฟลเดอร์ Program Files สองโฟลเดอร์แยกกัน แต่มันไม่จบแค่นั้น นอกจากนี้คุณยังมีไดเรกทอรีระบบที่แยกจากกันสองที่ซึ่งเก็บไลบรารี DLL และไฟล์เรียกทำงาน: System32 และ SysWOW64 แม้ว่าชื่อ System32 จะเต็มไปด้วยไฟล์ 64 บิตและ SysWOW64 นั้นเต็มไปด้วยไฟล์ 32 บิต ดังนั้นสิ่งที่ให้?
System32 คืออะไร?
ไดเรกทอรี System32 ประกอบด้วยไฟล์ระบบ Windows ทั้งไฟล์ไลบรารี. DLL ที่ใช้โดยโปรแกรมและยูทิลิตี้โปรแกรม. EXE ซึ่งเป็นส่วนหนึ่งของ Windows ในขณะที่ไฟล์ส่วนใหญ่ที่คุณพบในที่นี้เป็นส่วนหนึ่งของระบบปฏิบัติการ Windows บางครั้งโปรแกรมซอฟต์แวร์ของ บริษัท อื่นบางครั้งก็ติดตั้งไฟล์ DLL ของตัวเองลงในโฟลเดอร์นี้เช่นกัน.
แอปพลิเคชันที่ทำงานบนระบบของคุณอาจถูกติดตั้งในโฟลเดอร์ Program Files หรือที่อื่น ๆ แต่มักจะโหลดไลบรารี่ทั้งระบบจากโฟลเดอร์ System32.
การแยกไลบรารี่ 32- บิตและ 64- บิต
ใน Windows รุ่น 64 บิตคุณมีโฟลเดอร์ C: \ Program Files ที่ประกอบด้วยโปรแกรม 64 บิตและไฟล์และโฟลเดอร์ C: \ Program Files (x86) ที่มีโปรแกรมและไฟล์ 32 บิต การแยกไฟล์เหล่านี้มีประโยชน์เนื่องจากโปรแกรม 64 บิตต้องการไฟล์ DLL 64 บิตและโปรแกรม 32 บิตต้องการไฟล์ DLL 32 บิต.
หากโปรแกรม 32 บิตไปโหลดไฟล์ DLL ที่ต้องการค้นหาเวอร์ชัน 64 บิตและพยายามโหลดมันจะพัง ด้วยการแยกซอฟต์แวร์ 64- บิตและ 32- บิตออกเป็นโฟลเดอร์ Program Files ที่ต่างกันสองโฟลเดอร์ Windows รับรองว่าพวกเขาจะไม่สับสนและทำให้เกิดปัญหา.
อย่างไรก็ตามไฟล์ DLL ทั้งหมดจะไม่ถูกเก็บไว้ใน Program Files ไลบรารีทั่วทั้งระบบจำนวนมากที่มาพร้อมกับ Windows จะถูกเก็บไว้ใน C: \ System32 และบางโปรแกรมก็ถ่ายโอนไฟล์ไลบรารีของตัวเองที่นี่ ดังนั้นเช่นเดียวกับ Windows ที่มีโฟลเดอร์ Program Files 32- บิตและ 64- บิตที่แยกจากกันมันยังมีโฟลเดอร์ System32 รุ่น 32 บิตและ 64 บิตที่แยกต่างหาก.
System32 และ SysWOW64
บนคอมพิวเตอร์ 32 บิตโปรแกรม 32 บิตทั้งหมดเก็บไฟล์ไว้ใน C: \ Program Files และตำแหน่งไลบรารีทั้งระบบคือ C: \ System32.
บนคอมพิวเตอร์ 64 บิตโปรแกรม 64 บิตจะเก็บไฟล์ไว้ในไฟล์ C: \ Program และโฟลเดอร์ C: \ Windows \ System32 ทั่วทั้งระบบจะมีไลบรารี่ 64- บิต โปรแกรม 32 บิตเก็บไฟล์ไว้ใน C: \ Program Files (x86) และโฟลเดอร์ทั่วทั้งระบบคือ C: \ Windows \ SysWOW64.
นี่เป็นวิธีที่ใช้ง่าย แม้จะมี“ 32” ในชื่อโฟลเดอร์ System32 มีไลบรารี 64 บิต และแม้จะเป็น 64 ในชื่อโฟลเดอร์ SysWOW64 มีไลบรารี 32 บิตอย่างน้อยใน Windows รุ่น 64 บิต.
โดยทั่วไปแล้วคุณไม่จำเป็นต้องรู้สิ่งนี้ ระบบปฏิบัติการ Windows และโปรแกรมที่คุณใช้วางไฟล์โดยอัตโนมัติในตำแหน่งที่ถูกต้องและใช้โฟลเดอร์ที่ถูกต้อง อย่างไรก็ตามหากคุณจำเป็นต้องติดตั้งไฟล์ DLL ด้วยตนเองในตำแหน่งที่ถูกต้องหรือค้นหาตำแหน่งที่ติดตั้งซึ่งหายากมาก - คุณต้องรู้ว่าไฟล์ไหน.
WOW64 อธิบายแล้ว
ส่วน“ WOW64” ของชื่อที่นี่อ้างถึงซอฟต์แวร์“ Windows 32 บิตบน Windows 64 บิต” ของ Microsoft ซึ่งเป็นส่วนหนึ่งของระบบปฏิบัติการ สิ่งนี้ทำให้ Windows สามารถรันโปรแกรม 32- บิตบน Windows รุ่น 64 บิต WoW64 เปลี่ยนเส้นทางการเข้าถึงไฟล์เพื่อให้แน่ใจว่าโปรแกรมจะทำงานอย่างถูกต้อง.
ตัวอย่างเช่นหากคุณติดตั้งโปรแกรม 32 บิตใน Windows รุ่น 64 บิตและพยายามเขียนไปยังโฟลเดอร์ C: \ Program Files WoW64 จะชี้ไปที่ C: \ Program Files (x86) และถ้ามันต้องการเข้าถึงโฟลเดอร์ C: \ Windows \ System32, WoW64 ชี้ไปที่ C: \ Windows \ SysWOW64 Windows ทำสิ่งนี้โดยใช้ตัวเปลี่ยนเส้นทางระบบไฟล์.
ทั้งหมดนี้เกิดขึ้นโดยอัตโนมัติและโปร่งใสในพื้นหลัง โปรแกรมไม่จำเป็นต้องรู้ว่ามันทำงานบนระบบปฏิบัติการ 64 บิตซึ่งทำให้โปรแกรม 32 บิตที่เก่ากว่าทำงานได้โดยไม่ต้องดัดแปลงบน Windows เวอร์ชั่น 64 บิต WOW64 ยังเปลี่ยนเส้นทางการเข้าถึงรีจิสทรีเพื่อให้แน่ใจว่ามีพื้นที่แยกต่างหากของรีจิสทรีสำหรับโปรแกรม 64 บิตและ 32 บิต.
เหตุใดจึงเป็น System32 64 บิตและ SysWOW64 32 บิต?
ทั้งหมดที่นำเรากลับไปสู่คำถามล้านดอลลาร์: ทำไมโฟลเดอร์“ System32” 64- บิตและ SysWOW64 32- บิต?
คำตอบน่าจะเป็นที่แอปพลิเคชั่น 32- บิตจำนวนมากถูกฮาร์ดโค้ดเพื่อใช้ไดเรกทอรี C: \ Windows \ System32 เมื่อนักพัฒนาคอมไพล์แอปพลิเคชันเหล่านี้สำหรับ Windows รุ่น 64 บิตใหม่พวกเขายังคงใช้ไดเรกทอรี C: \ Windows \ System32.
แทนที่จะเปลี่ยนชื่อไดเรกทอรีและบังคับให้นักพัฒนาย้ายไปที่ใหม่ทำลายแอพพลิเคชั่นจำนวนมากในกระบวนการ Microsoft เหลือ“ System32” เป็นไดเรกทอรีไลบรารีระบบมาตรฐาน พวกเขาสร้างไลบรารี่ใหม่สำหรับแอพพลิเคชั่นที่ทำงานภายใต้เลเยอร์ WoW64 ซึ่งมีชื่อว่า“ SysWOW64” เมื่อคุณคิดแบบนี้ชื่อก็สมเหตุสมผลดีกว่า.
ใช่มันเป็นบิตที่โง่เง่าไดเรกทอรีที่มี "32" ในชื่อตอนนี้ 64- บิต บางที Microsoft น่าจะเห็นว่ามาเมื่อพวกเขาตั้งชื่อมันว่า C: \ Windows \ System32 ใน 90's แต่ถึงแม้ว่ารูปแบบการตั้งชื่อที่ตรงไปตรงมามากขึ้นก็น่าจะดี แต่ก็ไม่คุ้มที่จะแบ่งโปรแกรมออกเป็นส่วน ๆ และสร้างผลงานให้กับนักพัฒนามากขึ้น นั่นหมายความว่าเราติดอยู่กับ System32 และ SysWOW64 สำหรับอนาคตอันใกล้.