System32 क्या है?
System32 निर्देशिका में Windows सिस्टम फ़ाइलें हैं, दोनों प्रोग्राम और.EXE प्रोग्राम उपयोगिताओं द्वारा उपयोग की जाने वाली डीएलएल लाइब्रेरी फ़ाइलें जो विंडोज का हिस्सा हैं। जबकि आप यहां पाए गए अधिकांश फाइलें विंडोज ऑपरेटिंग सिस्टम का हिस्सा हैं, तीसरे पक्ष के सॉफ्टवेयर प्रोग्राम कभी-कभी इस फ़ोल्डर में अपनी डीएलएल फाइलें भी इंस्टॉल करते हैं।
आपके सिस्टम पर चल रहे एप्लिकेशन आपके प्रोग्राम फ़ाइलें फ़ोल्डर या अन्य जगहों पर स्थापित हो सकते हैं, लेकिन वे सिस्टम सिस्टम फ़ोल्डर से अक्सर सिस्टम-व्यापी लाइब्रेरी लोड करते हैं।
32-बिट और 64-बिट पुस्तकालयों को अलग करना
यदि 32-बिट प्रोग्राम किसी डीएलएल फ़ाइल को लोड करने के लिए जाता है, तो उसे 64-बिट संस्करण मिल जाता है, और इसे लोड करने का प्रयास करता है, यह क्रैश हो जाएगा। 64-बिट और 32-बिट सॉफ़्टवेयर को दो अलग-अलग प्रोग्राम फ़ाइलें फ़ोल्डरों में विभाजित करके, विंडोज सुनिश्चित करता है कि वे मिश्रित नहीं होंगे और समस्याओं का कारण बनेंगे।
हालांकि, प्रोग्राम फ़ाइलों में सभी डीएलएल फाइलें संग्रहीत नहीं हैं। विंडोज़ के साथ कई सिस्टम-व्यापी पुस्तकालयों को सी: System32 में संग्रहीत किया जाता है, और कुछ प्रोग्राम यहां अपनी लाइब्रेरी फाइलों को भी डंप करते हैं। इसलिए, जैसे कि विंडोज के पास 32-बिट और 64-बिट प्रोग्राम फ़ाइलें फ़ोल्डर्स हैं, इसमें सिस्टम 32 फ़ोल्डर के अलग-अलग 32-बिट और 64-बिट संस्करण भी हैं।
सिस्टम 32 और SysWOW64
32-बिट कंप्यूटर पर, सभी 32-बिट प्रोग्राम उनकी फ़ाइलों को C: Program Files में संग्रहीत करते हैं, और सिस्टम-व्यापी लाइब्रेरी स्थान C: System32 है।
64-बिट कंप्यूटर पर, 64-बिट प्रोग्राम उनकी फ़ाइलों को C: Program Files में संग्रहीत करते हैं, और सिस्टम-व्यापी C: Windows System32 फ़ोल्डर में 64-बिट लाइब्रेरीज़ हैं। 32-बिट प्रोग्राम अपनी फ़ाइलों को सी: प्रोग्राम फ़ाइलें (x86) में संग्रहीत करते हैं, और सिस्टम-व्यापी फ़ोल्डर सी: विंडोज SysWOW64 है।
यह निश्चित रूप से counterintuitive है। नाम में "32" के बावजूद, System32 फ़ोल्डर में 64-बिट पुस्तकालय शामिल हैं। और, नाम के 64 के बावजूद, SysWOW64 फ़ोल्डर में 32-बिट पुस्तकालय शामिल हैं-कम से कम विंडोज़ के 64-बिट संस्करणों पर।
आम तौर पर, आपको यह जानने की आवश्यकता नहीं होगी। आपके द्वारा उपयोग किए जाने वाले विंडोज ऑपरेटिंग सिस्टम और प्रोग्राम स्वचालित रूप से अपनी फ़ाइलों को सही स्थान पर रखते हैं और सही फ़ोल्डर का उपयोग करते हैं। हालांकि, यदि आपको कभी भी सही स्थान पर एक DLL फ़ाइल मैन्युअल रूप से स्थापित करने की आवश्यकता है या यह पता लगाएं कि कोई कहां स्थापित है - जो बहुत दुर्लभ है-आपको यह जानने की आवश्यकता होगी कि कौन सा है।
WOW64, समझाया
उदाहरण के लिए, यदि आप Windows के 64-बिट संस्करण पर 32-बिट प्रोग्राम स्थापित करते हैं और यह C: Program Files फ़ोल्डर को लिखने का प्रयास करता है, तो WoW64 इसे C: Program Files (x86) पर इंगित करता है। और, यदि यह C: Windows System32 फ़ोल्डर तक पहुंचना चाहता है, तो WoW64 इसे C: Windows SysWOW64 पर इंगित करता है। विंडोज़ एक फाइल सिस्टम रीडायरेक्टर का उपयोग कर करता है।
पृष्ठभूमि में यह सब स्वचालित रूप से और पारदर्शी रूप से होता है। कार्यक्रम को यह भी पता नहीं है कि यह 64-बिट ऑपरेटिंग सिस्टम पर चल रहा है, जो पुराने 32-बिट प्रोग्राम्स को Windows के 64-बिट संस्करणों में संशोधन किए बिना चलाने की अनुमति देता है। WOW64 रजिस्ट्री एक्सेस को रीडायरेक्ट करता है, यह सुनिश्चित करता है कि 64-बिट और 32-बिट प्रोग्राम के लिए रजिस्ट्री के अलग-अलग क्षेत्र हैं।
तो सिस्टम 32 64-बिट क्यों है, और SysWOW64 32-बिट क्यों है?
यह सब हमें मिलियन डॉलर के प्रश्न पर वापस लाता है: "System32" फ़ोल्डर 64-बिट क्यों है, और SysWOW64 32-बिट?
ऐसा लगता है कि सी: विंडोज System32 निर्देशिका का उपयोग करने के लिए कई 32-बिट अनुप्रयोगों को हार्डकोड किया गया था। जब डेवलपर्स ने विंडोज़ के 64-बिट संस्करणों के लिए इन अनुप्रयोगों को फिर से संकलित किया, तो उन्होंने सी: विंडोज System32 निर्देशिका का उपयोग करना जारी रखा।
निर्देशिका का नाम बदलने और डेवलपर्स को नए स्थानांतरित करने के लिए मजबूर करने के बजाय, प्रक्रिया में कई अनुप्रयोगों को तोड़ने के बाद, माइक्रोसॉफ्ट ने "सिस्टम 32" को मानक सिस्टम लाइब्रेरी निर्देशिका के रूप में छोड़ा। उन्होंने WoW64 परत के अंतर्गत चल रहे अनुप्रयोगों के लिए एक नई लाइब्रेरी निर्देशिका बनाई, जिसे उन्होंने "SysWOW64" नाम दिया। जब आप इस बारे में सोचते हैं, तो नाम अधिक समझ में आता है।
हां, यह थोड़ा मूर्खतापूर्ण है कि नाम में "32" वाला एक निर्देशिका अब 64-बिट है। शायद माइक्रोसॉफ्ट को यह देखना चाहिए था कि जब उन्होंने 90 के दशक में इसे C: Windows System32 नाम दिया था। लेकिन, हालांकि एक और सीधी नामकरण योजना अच्छी होगी, लेकिन कार्यक्रमों का एक समूह तोड़ने और डेवलपर्स के लिए और अधिक काम करने के लायक नहीं है। इसका मतलब है कि हम निकट भविष्य के लिए System32 और SysWOW64 के साथ फंस गए हैं।