सार:
<पी शैली = "व्हाइट-स्पेस: सामान्य;">लंबे समय से, एक उचित स्पष्टीकरण दिया गया है कि 32-बिट विंडोज केवल 4 जीबी मेमोरी का उपयोग क्यों कर सकता है: क्योंकि 32-बिट पते केवल 2 ^ 32 पते का प्रतिनिधित्व कर सकते हैं, जो अधिकतम 4 जीबी मेमोरी है। लेकिन माइक्रोसॉफ्ट के वरिष्ठ इंजीनियर रेमंड चेन ने हाल ही में इस ऐतिहासिक मुद्दे को फिर से समझाया और बताया कि यह कथन अधूरा है। वास्तव में, 32-बिट x86 प्रोसेसर और विंडोज़ में लंबे समय से 4GB से अधिक भौतिक मेमोरी तक पहुंचने की क्षमता है। माइक्रोसॉफ्ट ने आखिरकार विंडोज के सामान्य उपभोक्ता संस्करण को 4 जीबी तक सीमित करने का मुख्य कारण उस समय के विशाल और जटिल हार्डवेयर ड्राइवर पारिस्थितिकी तंत्र में गंभीर संगतता जोखिम था।

शुद्ध हार्डवेयर क्षमता के नजरिए से, 32-बिट प्रोसेसर के पास केवल 4GB भौतिक मेमोरी तक पहुंच नहीं है। इंटेल ने पेंटियम प्रो युग की शुरुआत में फिजिकल एड्रेस एक्सटेंशन, जिसे पीएई (फिजिकल एड्रेस एक्सटेंशन) तकनीक के रूप में भी जाना जाता है, पेश किया, जो 32-बिट x86 प्रोसेसर को 36-बिट भौतिक पते का उपयोग करने में सक्षम बनाता है। इस प्रकार, सैद्धांतिक पता योग्य भौतिक मेमोरी को 4GB से 64GB तक विस्तारित किया जाता है।
पीएई 32-बिट एप्लिकेशन के वर्चुअल एड्रेस स्पेस को नहीं बदलता है। एक सामान्य 32-बिट प्रोग्राम के लिए, यह अभी भी केवल 4 जीबी वर्चुअल एड्रेस स्पेस देखता है, और ऑपरेटिंग सिस्टम को इस सीमित वर्चुअल एड्रेस स्पेस और बड़ी भौतिक मेमोरी के बीच प्रबंधन और मैपिंग के लिए जिम्मेदार होना चाहिए। दूसरे शब्दों में, पीएई इस समस्या को हल करता है कि ऑपरेटिंग सिस्टम 4 जीबी से अधिक भौतिक मेमोरी को कैसे प्रबंधित करता है, न कि एक 32-बिट प्रोग्राम को अचानक 4 जीबी से अधिक सन्निहित पता स्थान प्राप्त करने की अनुमति देता है।
Microsoft ने वास्तव में लंबे समय से इस क्षमता का लाभ उठाया है। Windows Server 2003 के कुछ सर्वर संस्करण PAE के माध्यम से 4GB से अधिक मेमोरी का उपयोग कर सकते हैं, एंटरप्राइज़ संस्करण 64GB तक का समर्थन करता है, और डेटासेंटर संस्करण 128GB तक का समर्थन करता है। यह साबित करता है कि "32-बिट विंडोज़ तकनीकी रूप से केवल 4GB का उपयोग कर सकता है" सटीक नहीं है।
असली समस्या ड्राइवर के साथ है।
जब पीएई सक्षम होता है, तो सिस्टम हार्डवेयर ड्राइवर को 32-बिट रेंज से परे भौतिक पते प्रदान कर सकता है। उन ड्राइवरों के लिए जो पारंपरिक 32-बिट वातावरण के अनुसार लिखे गए हैं, यह एक बहुत ही खतरनाक समस्या लाएगा: कुछ ड्राइवर इस विश्वास में चूक करते हैं कि भौतिक पता कभी भी 32 बिट से अधिक नहीं होगा, इसलिए वे पते के उच्च बिट्स को सीधे काट देंगे।

उदाहरण के लिए, विंडोज़ ड्राइवर को बता सकता है कि डेटा का एक निश्चित टुकड़ा 4 जीबी एड्रेस रेंज से परे भौतिक मेमोरी स्थान पर लिखा जाना चाहिए, लेकिन यदि ड्राइवर गलती से उच्च बिट्स को छोड़ देता है, तो यह डेटा को मेमोरी के पूरी तरह से अलग क्षेत्र में लिख सकता है। इससे न केवल प्रोग्राम असामान्य रूप से चल सकता है, बल्कि अन्य डेटा भी अधिलेखित हो सकता है, जिससे अंततः मेमोरी क्षति, सिस्टम क्रैश, या यहां तक कि प्रारंभ करने में विफलता भी हो सकती है।
Microsoft के पिछले तकनीकी दस्तावेज़ में यह भी बताया गया है कि PAE को सक्षम करने के बाद, ड्राइवर को आमतौर पर कुछ छोटे लेकिन बहुत महत्वपूर्ण संशोधन करने की आवश्यकता होती है। समस्या यह थी कि ड्राइवर डेवलपर्स को यह सुनिश्चित करना था कि उनका कोड यह न माने कि भौतिक पते 32-बिट वर्चुअल पते के समान श्रेणी में थे, जो उस समय बड़ी संख्या में हार्डवेयर ड्राइवरों के लिए मामला था।
यह नियमित उपभोक्ता कंप्यूटरों पर विशेष रूप से खतरनाक है। सर्वर का हार्डवेयर वातावरण आमतौर पर बहुत निश्चित होता है। सिस्टम प्रशासक सिद्ध सर्वर हार्डवेयर का चयन करेंगे और विंडोज़ के साथ आने वाले मानक ड्राइवरों का उपयोग करने का प्रयास करेंगे। साधारण पीसी बिल्कुल अलग होते हैं। उपयोगकर्ता विभिन्न प्रकार के प्रिंटर, स्कैनर, साउंड कार्ड, टीवी कार्ड, कैमरा, नेटवर्क कार्ड और अन्य विस्तार उपकरण स्थापित कर सकते हैं। प्रत्येक डिवाइस के पीछे विभिन्न निर्माताओं और विभिन्न पीढ़ियों द्वारा लिखे गए ड्राइवर हो सकते हैं।
Microsoft यह गारंटी देने में असमर्थ था कि ये सभी बड़ी संख्या में तृतीय-पक्ष ड्राइवर 4GB से अधिक के भौतिक पतों को सही ढंग से संभाल सकते हैं।
इससे भी अधिक परेशानी की बात यह है कि 4GB से कम के सामान्य मेमोरी वातावरण में कुछ समस्याएं सामने नहीं आती हैं। एक ड्राइवर वर्षों तक ठीक से काम कर सकता है, लेकिन एक दिन सिस्टम उसे 4GB भौतिक पते सौंप देता है और कोड में छिपे बग अचानक सामने आ जाते हैं। यदि ड्राइवर इस पते को छोटा कर देता है, तो परिणाम यह हो सकता है कि डेटा गलत मेमोरी स्थान पर लिखा गया है, जिससे यादृच्छिक क्रैश और डेटा भ्रष्टाचार हो रहा है जिसका निवारण करना बेहद मुश्किल है।

इसलिए, माइक्रोसॉफ्ट ने अंततः एक समाधान चुना जो बहुत रूढ़िवादी लगता था लेकिन आम उपभोक्ताओं के लिए सुरक्षित था: 32-बिट विंडोज क्लाइंट संस्करण में भौतिक पता स्थान को सक्रिय रूप से सीमित करना और सिस्टम को 4 जीबी से अधिक भौतिक मेमोरी का उपयोग करने से रोकना।
Windows XP और Windows Server 2003 SP1 इस नीति के महत्वपूर्ण नोड हैं। Microsoft ने संबंधित क्लाइंट संस्करण में भौतिक पता स्थान को 4GB तक सीमित करने के लिए दोनों की हार्डवेयर एब्स्ट्रैक्शन परत को संशोधित किया है। इसका उद्देश्य यह नहीं है कि प्रोसेसर उच्च पते तक नहीं पहुंच सकता है, बल्कि पीएई को असंगत तृतीय-पक्ष ड्राइवरों को उजागर करने से रोकना है।
यह यह भी बताता है कि क्यों विंडोज़ सर्वर 4GB से अधिक मेमोरी का उपयोग कर सकता है, लेकिन सामान्य उपयोगकर्ताओं के लिए विंडोज़ ऐसा नहीं कर सकता।
सर्वर प्रशासक आमतौर पर दस डॉलर से अधिक में खरीदे गए पुराने यूएसबी स्कैनर को उत्पादन सर्वर में प्लग नहीं करते हैं, सामान्य उपभोक्ता इलेक्ट्रॉनिक्स डिवाइस का उपयोग करने के लिए दस साल से अधिक पहले से तीसरे पक्ष के ड्राइवर को स्थापित करना तो दूर की बात है। सर्वर वातावरण की आमतौर पर अत्यधिक जांच की जाती है, उपयोग किए गए हार्डवेयर और ड्राइवर अधिक निश्चित होते हैं, और Microsoft सिस्टम के साथ प्रदान किए गए ड्राइवरों का पूरी तरह से परीक्षण करने में सक्षम है।
रेमंड चेन ने इस अंतर को बहुत ही सरल तरीके से समझाया: सर्वर प्रशासक आम उपभोक्ताओं की तरह केवल सस्ते डिवाइस के लिए ड्राइवर स्थापित नहीं करेंगे, और सर्वर पर उपयोग किए जाने वाले ड्राइवरों को आमतौर पर उच्च भौतिक पता वातावरण के लिए सत्यापित किया गया है।

सामान्य उपयोगकर्ता बिल्कुल विपरीत हैं। उपभोक्ता कंप्यूटर में दर्जनों विभिन्न उपकरणों के लिए ड्राइवर स्थापित हो सकते हैं, जिनमें से कुछ ऐसे हार्डवेयर से हैं जो एक दशक से अधिक पुराने हैं। माइक्रोसॉफ्ट के लिए, इन सभी ड्राइवरों को पीएई-संगत बनाने का जोखिम मेमोरी को सीमित करने के दंड से कहीं अधिक है।
वास्तव में, भले ही 32-बिट विंडोज़ में 4 जीबी मेमोरी स्थापित हो, उपयोगकर्ता वास्तव में पूर्ण 4 जीबी नहीं देख पाएंगे। इसका कारण यह है कि 4 जीबी से नीचे के भौतिक पता स्थान का उपयोग न केवल सिस्टम मेमोरी के लिए किया जाना चाहिए, बल्कि ग्राफिक्स कार्ड, नेटवर्क कार्ड, साउंड कार्ड और अन्य हार्डवेयर की डिवाइस मेमोरी को भी मैप करना चाहिए। यदि हार्डवेयर एड्रेस स्पेस का हिस्सा घेरता है, तो RAM का हिस्सा 4GB एड्रेस सीमा के ऊपर आवंटित किया जाना चाहिए।
परिणामस्वरूप, 4 जीबी रैम स्थापित कई 32-बिट विंडोज कंप्यूटरों पर, सिस्टम केवल 3 जीबी या उससे कम रैम का उपयोग कर सकता है। यह भी बुनियादी कारणों में से एक है कि बड़ी संख्या में विंडोज एक्सपी कंप्यूटरों में "4 जीबी स्थापित है लेकिन सिस्टम केवल 3 जीबी का ही उपयोग कर सकता है" की घटना थी।
Microsoft ने विशेष रूप से लंबे समय से चली आ रही साजिश के सिद्धांत का भी खंडन किया कि उपभोक्ताओं को महंगा Windows सर्वर खरीदने के लिए मजबूर करने के लिए Microsoft ने जानबूझकर 32-बिट विंडोज़ में मेमोरी सीमित कर दी है। हालाँकि विंडोज़ सर्वर वास्तव में अधिक मेमोरी का उपयोग कर सकता है, Microsoft का मानना है कि दोनों के लिए बाज़ार और हार्डवेयर वातावरण पूरी तरह से अलग हैं, और क्लाइंट संस्करण पर 4GB की सीमा मुख्य रूप से ड्राइवर संगतता समस्याओं से बचने के लिए है।
इसके अलावा, अगर माइक्रोसॉफ्ट वास्तव में चाहता था कि आम उपयोगकर्ता मेमोरी सीमाओं को हल करने के लिए विंडोज सर्वर खरीदें, तो इस समाधान की कीमत स्पष्ट रूप से हास्यास्पद थी। विंडोज़ सर्वर 2003 का सबसे निचला संस्करण जो 4GB से अधिक मेमोरी का समर्थन कर सकता था, एंटरप्राइज़ संस्करण था, जिसकी कीमत $3,999 थी, जिसका आम उपभोक्ताओं के लिए कोई व्यावहारिक महत्व नहीं था।

64-बिट प्रोसेसर और 64-बिट ऑपरेटिंग सिस्टम के धीरे-धीरे लोकप्रिय होने के साथ, इस मुद्दे ने अंततः अपना व्यावहारिक महत्व खो दिया। 64-बिट विंडोज़ में 4GB से अधिक एड्रेस स्पेस है, जो इसे अनुकूलता बनाए रखते हुए बड़ी मात्रा में भौतिक मेमोरी का उपयोग करने की अनुमति देता है। जैसे-जैसे कंप्यूटर धीरे-धीरे मल्टी-जीबी या दसियों जीबी या सैकड़ों जीबी मेमोरी के युग में प्रवेश करते हैं, 32-बिट आर्किटेक्चर अंततः मुख्यधारा के बाजार से हट जाता है।
Microsoft 2020 से धीरे-धीरे 32-बिट प्रोसेसर का उपयोग करके नए सिस्टम को बढ़ावा देना बंद कर देगा, और अंततः विंडोज 11 युग में 32-बिट संस्करण को पूरी तरह से रद्द कर देगा। Microsoft का वर्तमान आधिकारिक समर्थन दस्तावेज़ भी स्पष्ट रूप से बताता है कि Windows 11 और उच्चतर केवल 64-बिट संस्करण प्रदान करते हैं।
यह इतिहास एक दिलचस्प समस्या को भी दर्शाता है: हार्डवेयर संसाधन जितने अधिक प्रचुर होंगे, सॉफ़्टवेयर के लिए "मोटापा" बनना उतना ही आसान होगा। यदि पीसी हमेशा 4 जीबी मेमोरी तक सीमित होते, तो सॉफ्टवेयर डेवलपर्स को मेमोरी उपयोग पर अधिक ध्यान देना पड़ता; और जैसे-जैसे कंप्यूटर मेमोरी तेजी से 4GB से 8GB, 16GB और यहां तक कि 64GB तक बढ़ती है, कई एप्लिकेशन धीरे-धीरे अधिक संसाधनों का उपभोग करने के आदी हो जाते हैं।
आजकल, कुछ एप्लिकेशन के लिए सैकड़ों एमबी या यहां तक कि जीबी मेमोरी आसानी से ले लेना कोई असामान्य बात नहीं है। माइक्रोसॉफ्ट अब 8 जीबी मेमोरी वाले कंप्यूटरों पर विंडोज 11 को अच्छी तरह से चलाने के लिए कड़ी मेहनत कर रहा है, और कृत्रिम बुद्धिमत्ता अनुप्रयोगों द्वारा मेमोरी संसाधनों की भारी मांग ने एक बार फिर पूरे उद्योग को मेमोरी दक्षता के महत्व से अवगत कराया है।
इसलिए, हालांकि 32-बिट विंडोज़ की 4GB सीमा अंततः इतिहास बन गई है, इसके पीछे का कारण इतना सरल नहीं है क्योंकि "32-बिट प्रोसेसर केवल 4GB मेमोरी को संभाल सकते हैं।" वास्तविक उत्तर यह है कि Microsoft को एक विशाल पारिस्थितिकी तंत्र का सामना करना पड़ा जिसमें विभिन्न गुणवत्ता के हजारों तृतीय-पक्ष हार्डवेयर ड्राइवर शामिल थे। तकनीकी रूप से 4GB से अधिक होना संभव है, लेकिन यदि सफलता के कारण बड़ी संख्या में उपभोक्ता कंप्यूटर बेतरतीब ढंग से क्रैश हो जाते हैं, तो यह क्षमता क्लाइंट ऑपरेटिंग सिस्टम के लिए बोझ बन सकती है।
इस परिप्रेक्ष्य से, विंडोज़ की 4GB सीमा केवल एक तकनीकी बाधा नहीं है, बल्कि स्थिरता और अनुकूलता के लिए सक्रिय रूप से बनाया गया एक इंजीनियरिंग विकल्प है। 32-बिट विंडोज़ के पास वास्तव में लंबे समय तक 4GB को तोड़ने का एक तरीका था। हालाँकि, उस समय अनियंत्रित ड्राइवर पारिस्थितिकी तंत्र का सामना करते हुए, Microsoft ने अंततः आम उपयोगकर्ताओं के लिए कंप्यूटर का अधिक स्थिरता से उपयोग करने के लिए कुछ हार्डवेयर क्षमताओं का त्याग करना चुना।
टिप्पणियाँ