Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Windows

WinSxS Folder ใน Windows 11/10 อธิบาย

คุณส่วนใหญ่อาจสังเกตเห็นโฟลเดอร์ WinSxS ใน Windows 11/10/8/7 และตกใจกับขนาดของมัน สำหรับผู้ที่ยังไม่ได้สังเกต โฟลเดอร์นี้อยู่ที่ C:\Windows\Winsxs และมีขนาดใหญ่โต! ของผมเกือบ 5 GB และมีประมาณ 6000 โฟลเดอร์ & 25000 ไฟล์ และครอบครองเกือบ 40% ของโฟลเดอร์ Windows! ในขณะที่ขนาดของโฟลเดอร์ Winsxs ใน XP ประมาณ 25-50 MB ขนาดใหญ่ใน Windows 11, Windows 10, Windows 8, Windows 7 และ Windows Vista จึงน่าสนใจมาก! ดูภาพด้านล่าง

WinSxS Folder ใน Windows 11/10 อธิบาย

ความลับของโฟลเดอร์ Winsxs ใน Windows 11/10 คืออะไร? มาหาคำตอบในโพสต์นี้

WinSxS Folder ใน Windows 11/10 คืออะไร?

WinSxS Folder จัดเก็บหลายสำเนาของ dll, exe และไฟล์ระบบอื่นๆ เพื่อให้แอปพลิเคชันหลายตัวทำงานใน Windows ได้โดยไม่มีปัญหาความเข้ากันได้ หากคุณเข้าไปดูภายใน คุณจะเห็นสิ่งที่ดูเหมือนไฟล์ซ้ำมากมาย แต่ละไฟล์มีชื่อเหมือนกัน จริงๆ แล้วเป็นเวอร์ชันที่แตกต่างของไฟล์เดียวกันที่ถูกจัดเก็บ เนื่องจากโปรแกรมต่างๆ อาจต้องการเวอร์ชันที่ต่างกัน

Winsxs ย่อมาจาก Windows Side By Side คือ Native Assembly Cache ของ Windows Libraries ที่ถูกใช้โดยหลายแอปพลิเคชันถูกจัดเก็บที่นี่ ฟีเจอร์นี้แนะนำครั้งแรกใน Windows ME และถูกพิจารณาว่าเป็นโซลูชันของ Microsoft สำหรับปัญหา 'DLL Hell' ที่รบกวน Windows 9x

ใน Winsxs โฟลเดอร์ 'backup' เป็นโฟลเดอร์ที่ใหญ่ที่สุด ตามที่สังเกตได้ในภาพด้านล่าง

WinSxS Folder ใน Windows 11/10 อธิบาย

อีกครั้ง ตามที่เห็นในภาพด้านล่าง ในโฟลเดอร์ Winsxs ไฟล์ประเภท 'Other' ใช้พื้นที่ส่วนใหญ่ ประกอบด้วย .imd, .ngr, .csd, .dll, .dll.mui, .exe และไฟล์ประเภทอื่นๆ

WinSxS Folder ใน Windows 11/10 อธิบาย

ใน Windows 7 และใหม่กว่า ไม่มีโฟลเดอร์ 'dllcache' และไม่พบโฟลเดอร์ 'i386' ที่ระบบแคช (เหมือนใน XP) โมดูลต้นทางทั้งหมด มันคือโฟลเดอร์ WinSxS นี้ที่จัดเก็บ Shared Components ของ Side-by-side Applications ไฟล์เหล่านี้อาจเป็นหลายเวอร์ชันของ Assembly หรือ Application เดียวกัน ทุก Side-by-side Assembly มี Identity ที่ไม่ซ้ำกัน หนึ่งในแอตทริบิวต์ของ Assembly Identity คือ Version

"Side-by-side assemblies ถูกใช้โดยระบบปฏิบัติการเป็นหน่วยพื้นฐานของ Naming, Binding, Versioning, Deployment และ Configuration โฟลเดอร์ Winsxs รวม Manifests, Optional Components และ 3rd party Win32 Files ทั้งหมด" Microsoft กล่าว

แต่ ทำไมถึงมี Subfolders มากมาย และเก็บ หลาย เวอร์ชันที่แตกต่างของ dll, exe หรือไฟล์อื่นๆ ไว้?

ตามที่กล่าวมา Windows จัดเก็บ DLL เก่าและ Library Components ในโฟลเดอร์ WinSxS ตอนนี้ หากเวอร์ชันใหม่ของไฟล์นี้เป็นส่วนหนึ่งของ OS แต่แอปพลิเคชันเฉพาะตัวต้องการเวอร์ชันเก่าพิเศษเพื่อรัน เวอร์ชันเก่าจากโฟลเดอร์ WinSxS จะถูกใช้ ทิ้งเวอร์ชันใหม่ไว้ในที่เดิม สำหรับแอปพลิเคชันอื่นๆ ที่อาจต้องการ

ปลอดภัยไหมที่จะลบ WinSxS Folder?

ชัดเจนว่าคุณไม่สามารถลบไดเรกทอรีนี้หรือย้ายไปที่อื่นได้ และไม่ควรลบอะไรที่นี่ เพราะขั้นตอนนี้อาจทำให้แอปพลิเคชันของคุณทำงานไม่ได้ หรือทำให้ระบบเสียหาย! หากคุณติดตั้งแอปพลิเคชันมากมาย คุณคาดการณ์ได้ว่าจะมีโฟลเดอร์ WinSxS ขนาดใหญ่ โฟลเดอร์ WinSxs นี้ไม่สามารถอยู่บน Volume อื่นนอกจาก System Volume ได้ เนื่องจาก NTFS Hard Links หากคุณพยายามย้ายโฟลเดอร์ อาจทำให้ Windows Updates, Service Packs, Features ฯลฯ ติดตั้งไม่ถูกต้อง

หากคุณลบ Components จากโฟลเดอร์ WinSxS เช่น Manifests หรือ Assemblies ฯลฯ คุณอาจเจอปัญหา แต่ละระบบจะตอบสนองต่างกันไป สิ่งที่ทำงานได้กับระบบหนึ่งอาจทำลายอีกระบบ! ตัวอย่างเช่น หากคุณติดตั้งโปรแกรมที่ต้องการ Assembly เฉพาะนั้น ซึ่งคุณอาจลบไป โปรแกรมนั้นจะไม่รันเลย! การบีบอัดโฟลเดอร์ก็ห้าม เพราะอาจทำให้เกิดปัญหาระหว่าง Windows Updates หรือตอนติดตั้ง Hotfix

วิธีที่ปลอดภัยที่สุดในการทำความสะอาดคือการ Uninstall แอปพลิเคชันที่คุณไม่ต้องการ อย่างไรก็ตาม นี้ก็ไม่ได้ Fool-proof เพราะหลายแอปพลิเคชันยังทิ้งไฟล์ของพวกมันไว้ที่นี่ เนื่องจากอาจถูกแชร์ระหว่างแอปพลิเคชันอื่นๆ ดังนั้นความน่าจะเป็นของ DLL ที่ไม่ได้ใช้แล้วแต่ยังคงเหลืออยู่สูงมาก

เราไม่แนะนำการใช้ WinSxS Cleanup Tools เช่น WinsxsLite เพราะคุณอาจทำให้ Windows เสียหาย

และหากคุณชอบลองซอฟต์แวร์ใหม่ หรือติดตั้งและถอนการติดตั้งบ่อยๆ คุณอาจสังเกตว่าขนาด Winsxs ของคุณใหญ่จริงๆ เนื่องจาก Windows จะจัดเก็บหลายสำเนาของไฟล์ DLL เหล่านี้ เพื่อให้หลายแอปพลิเคชันทำงานได้โดยไม่มีปัญหาความเข้ากันได้

WinSxS Folder Cleanup ใน Windows 11/10

Windows 8.1 นำเสนอตัวเลือกบรรทัดคำสั่งใหม่สำหรับ DISM.exe คือ /AnalyzeComponentStore การรันคำสั่งนี้ จะวิเคราะห์โฟลเดอร์ WinSxS และบอกว่าควรทำ Component Store Cleanup หรือไม่ มันมีอยู่ใน Windows 11/10 ด้วย

  • ใน Windows 11/10/8.1/8 เปิด Disk Cleanup Tool และใช้ตัวเลือก Windows Update Cleanup เพื่อทำความสะอาด WinSxS
  • สำหรับ Windows 7 Microsoft เปิดตัวอัปเดทที่เพิ่มตัวเลือก Windows Update Cleanup ให้กับ Disk Cleanup Tool
  • ผู้ใช้ Windows Server ตอนนี้ก็สามารถทำความสะอาด WinSxS ใน Windows Server ได้ด้วยอัปเดทใหม่

นี่คือตัวเลือกอื่นๆ ที่คุณอาจพิจารณาเพื่อ 釋放พื้นที่ดิสก์ – บางอย่างเป็นเรื่องปกติ บางอย่างเป็นวิธีสุดโต่ง:

  1. รัน Disk Cleanup Tool
  2. Uninstall แอปพลิเคชันที่ไม่ได้ใช้
  3. ย้าย Page File ไปไดรฟ์อื่น
  4. ปิดใช้งาน Hibernation
  5. ใช้ Dedicated Dump File Option เพื่อจับ Memory Dump Files บน Volume อื่นในระบบ
  6. ปิดใช้งาน System Restore Points
  7. Offload User Profile และ Program File Directories ไปยัง Volume อื่นในระบบ

Update 1 จาก TechNet Blogs: การเปลี่ยนแปลงใหญ่ที่สุดระหว่างรุ่นก่อนหน้าของ Windows คือการย้ายจาก OS ที่อธิบายด้วย INF ไปสู่ Componentization ทุก Component ในระบบปฏิบัติการอยู่ในโฟลเดอร์ WinSxS – จริงๆ แล้วเราเรียกตำแหน่งนี้ว่า Component Store แต่ละ Component มีชื่อที่ไม่ซ้ำกัน รวมถึง Version, Language และ Processor Architecture ที่สร้างขึ้นมา WinSxS Folder เป็นตำแหน่งเดียวที่ Component อยู่บนระบบ ทุก Instance ของไฟล์ที่คุณเห็นบนระบบถูก "Projected" โดย Hard Linking จาก Component Store

ตอนนี้คุณรู้แล้วว่าทำไม Store ถึงใหญ่ คำถามต่อไปของคุณอาจเป็นว่าทำไมเราไม่ลบเวอร์ชันเก่าของ Components คำตอบสั้นๆ คือ Reliability Component Store ร่วมกับข้อมูลอื่นๆ บนระบบ ช่วยให้เรากำหนดได้ตลอดเวลาว่า Version ใดของ Component ที่ดีที่สุดสำหรับการ Project นั่นหมายความว่าหากคุณ Uninstall Security Update เราสามารถติดตั้ง Version ถัดไปที่สูงสุดบนระบบ – เราไม่มีปัญหา "Out of order uninstall" อีกต่อไป มันยังหมายความว่าหากคุณตัดสินใจติดตั้ง Optional Feature เราไม่ได้แค่เลือก RTM Version ของ Component เราจะดูว่ามี Version ใดที่สูงที่สุดและพร้อมใช้งานบนระบบ

วิธีเดียวที่จะลดขนาด WinSxS Folder อย่างปลอดภัยคือลดชุดของ Actions ที่ระบบสามารถทำได้ – วิธีง่ายที่สุดคือลบ Packages ที่ติดตั้ง Components ไปในตอนแรก สามารถทำได้โดยการ Uninstall Superseded Versions ของ Packages ที่อยู่บนระบบของคุณ Service Pack 1 มีไบนารีชื่อ VSP1CLN.EXE เครื่องมือที่จะทำให้ Service Pack Package เป็น Permanent (ไม่สามารถลบได้) บนระบบของคุณ และลบ RTM Versions ของ Superseded Components ทั้งหมด สามารถทำได้เพราะการทำให้ Service Pack เป็น Permanent เราสามารถรับประกันได้ว่าเราจะไม่ต้องการ RTM Versions อีกต่อไป

Update 2 จาก E7 Blogs: "Modularizing" ระบบปฏิบัติการเป็นเป้าหมายทางวิศวกรรมใน Windows Vista เพื่อแก้ปัญหาหลายอย่างใน Windows Legacy ที่เกี่ยวกับ Installation, Servicing และ Reliability Windows SxS Directory แทน "Installation and Servicing State" ของ System Components ทั้งหมด แต่ในความเป็นจริง มันไม่ได้ใช้พื้นที่ดิสก์มากนัก ตามที่ปรากฏเมื่อใช้เครื่องมือ Built-in (DIR และ Explorer) วัดพื้นที่ที่ใช้ ข้อเท็จจริงที่เราทำให้คุณยากที่จะรู้ว่ามีพื้นที่เท่าไหร่ถูกใช้ใน Directory นี่เป็นจุดที่ยุติธรรม! WinSxS Directory ยังเปิดใช้งาน Offline Servicing และทำให้ Windows Vista และใหม่กว่า "Safe for Imaging"

มีบล็อกหลายแห่ง และแม้แต่ Tools "ใต้ดิน" บางอย่างที่บอกว่าลบ WinSxS Directory ได้ และแน่นอนว่าหลังการติดตั้ง คุณสามารถลบมันออกจากระบบได้ และดูเหมือนระบบบูทและทำงานได้ดี แต่ตามที่อธิบายข้างต้น นี่เป็นแนวทางที่แย่มาก เพราะคุณกำลังลบความสามารถในการ Servicing อย่างน่าเชื่อถือ ทุก Components ของระบบปฏิบัติการ และความสามารถในการ Update หรือ Configure Optional Components บนระบบของคุณ Windows รองรับ WinSxS Directory เฉพาะบน Physical Drive ในตำแหน่งที่ติดตั้งต้นทางเท่านั้น

สรุป

ปล่อยให้ WinSxS Folder อยู่เหมือนเดิม!

เรียนรู้เกี่ยวกับ Sysnative Folder, Panther Folder และ Catroot & Catroot2 Folders ที่นี่

อ่านเพิ่มเติม:

  1. Analyze Windows Component Store หรือ WinSxS ใน Windows
  2. WinSxS Folder Cleanup ใน Windows
  3. Add Windows Update Cleanup Option ให้ Disk Cleanup Tool ใน Windows
  4. Clean up WinSxS Directory บน Windows Server
WinSxS Folder ใน Windows 11/10 อธิบาย