कभी-कभी ऐसा क्यों होता है कि मुझे नए सॉफ़्टवेयर को स्थापित करने के बाद अपने कंप्यूटर को पुनरारंभ करने की आवश्यकता होती है और अन्य समय पर नहीं?
क्या कोई कारण है कि इसे इस रिबूट की आवश्यकता है या क्यों यह हमेशा एक ही रास्ता या दूसरा नहीं है?
कभी-कभी ऐसा क्यों होता है कि मुझे नए सॉफ़्टवेयर को स्थापित करने के बाद अपने कंप्यूटर को पुनरारंभ करने की आवश्यकता होती है और अन्य समय पर नहीं?
क्या कोई कारण है कि इसे इस रिबूट की आवश्यकता है या क्यों यह हमेशा एक ही रास्ता या दूसरा नहीं है?
जवाबों:
निर्भर करता है।
यदि स्थापित किया जा रहा सॉफ़्टवेयर ऑपरेटिंग सिस्टम के एक अभिन्न अंग को प्रभावित करता है तो एक पुनरारंभ की आवश्यकता होती है। उदाहरण के लिए ऑपरेटिंग सिस्टम के लिए एक नया कर्नेल।
विंडोज सिस्टम पर, इसका उपयोग अक्सर किया जाता है क्योंकि उपयोगकर्ताओं को अपने कंप्यूटर का ठीक से उपयोग करने के लिए बहुत बेवकूफ माना जाता है। एक उदाहरण के रूप में, Microsoft अपनी वेबसाइट पर नेटवर्किंग के लिए उपयोग किए जाने वाले "नोड प्रकार" को कैसे बदलना है, इसका विवरण प्रकाशित करता है , जिसमें "कंप्यूटर को पुनरारंभ करने" का निर्देश शामिल है जब आवश्यक है कि यहां विस्तृत रूप से नेटवर्क सेवा का पुनरारंभ हो । क्योंकि हम, चूंकि उपयोगकर्ता किसी सेवा को पुनः आरंभ करने के लिए बहुत मूर्ख हैं, इसलिए हमें सब कुछ पुनः आरंभ करने के लिए कहा जाता है।
सॉफ्टवेयर के कुछ टुकड़ों के लिए, मैं इस नतीजे पर पहुंचा हूं कि यह एक आदत है और ऐसा करने के लिए कहने पर भी अक्सर जरूरी नहीं है। अगर मुझे नहीं लगता है कि सॉफ्टवेयर के एक टुकड़े को ऑपरेटिंग सिस्टम के लिए कुछ भी करना चाहिए था, तो मुझे परेशान नहीं होना चाहिए, और किसी भी समस्या का अनुभव नहीं किया है (और अगर समस्याएं थीं तो उन्हें हल करना आसान होगा)।
कभी-कभी सॉफ़्टवेयर का एक टुकड़ा एक बदलाव करेगा जो कंप्यूटर के उपयोग के दौरान प्रभावी नहीं हो सकता है। कुछ कारण हो सकते हैं - एक फ़ाइल उपयोग में है, परिवर्तन केवल कंप्यूटर के बूट के दौरान हो सकता है, एक सुरक्षा समस्या हो सकती है जो केवल कंप्यूटर के सक्रिय होने से पहले ही हो सकती है, शायद वायरस स्कैनर इसमें हस्तक्षेप करेगा इंस्टॉल करें।
कभी-कभी, यह डेवलपर्स द्वारा केवल मैला प्रोग्रामिंग है।
मुझे यकीन है कि कई और भी हैं।
अक्सर जब आप नए सॉफ़्टवेयर को स्थापित करते हैं तो एक dll (फ़ाइल) जिसका उपयोग बहुत सारे अन्य सॉफ़्टवेयर पैकेजों द्वारा किया जाता है, को नए संस्करण में अपग्रेड करने की आवश्यकता होती है। (आपके द्वारा पहले से इंस्टॉल किए गए एप्लिकेशन को अपग्रेड करते समय ऐसा होने की अधिक संभावना है।)
यदि dll का उपयोग किसी रनिंग एप्लिकेशन द्वारा किया जा रहा है, तो इसका कुछ भाग मेमोरी में लोड हो जाएगा और शेष को डिस्क से तब पढ़ा जाएगा, जब इसकी आवश्यकता होगी। इसलिए dll डिस्क पर लॉक हो जाएगा। (समस्याओं के बारे में सोचो अगर इसे बंद नहीं किया गया था!)
एक DLL जिसे लॉक किया गया है उसे अपडेट नहीं किया जा सकता है, इसलिए अगली बार मशीन के पुनः आरंभ होने पर इंस्टॉलर विंडोज़ को DLL को नए संस्करण से बदलने के लिए कहेगा। इसलिए पुनः आरंभ करने की आवश्यकता है।
कुछ बेहतर इंस्टॉलर आपको उन अनुप्रयोगों को बताएंगे जिन्हें इंस्टॉलर चलाने से पहले बंद कर दिया जाना चाहिए, ताकि DLL को बिना पुनरारंभ किए अपडेट किया जा सके। हालाँकि जो इंस्टॉलर के UI को अधिक जटिल बनाता है और अधिक समर्थन कॉल की ओर ले जाता है।
किसी एप्लिकेशन के लिए एक इंस्टॉलर अपने राज्य को बचाने के लिए एप्लिकेशन प्राप्त कर सकता है, इसे स्वयं बंद कर सकता है, फिर DLL अपडेट होने के बाद पुनः आरंभ कर सकता है। यह केवल तभी किया जा सकता है जब DLL का उपयोग किसी एक अनुप्रयोग द्वारा किया जाता है। अधिकांश आत्म अद्यतन करने वाले अनुप्रयोग ऐसा करते हैं - जब बहुत सारे उपयोगकर्ता होते हैं तो यह बड़े पैमाने पर बाज़ार अनुप्रयोगों के लिए आदर्श होना चाहिए।
उपरोक्त सभी जटिल तर्क को जन्म दे सकते हैं जो परीक्षण करना कठिन है। परीक्षण इंस्टॉलर को एक लंबा समय लगता है, जैसा कि आपको लगता है कि उपयोगकर्ता की मशीन हर राज्य में हो सकती है। इसलिए यह अक्सर इंस्टॉलर के लिए सरल और हमेशा काम करने के लिए सबसे अच्छा होता है, भले ही यह उपयोगकर्ता के लिए कुछ और पुनरारंभ करता हो। ।
यह अक्सर नहीं होता है कि इंस्टॉलर रीस्टार्ट होने के कारण कोई उपयोगकर्ता एक अलग एप्लिकेशन खरीदने का फैसला करता है, इसलिए वेंडर अपना एप्लिकेशन खरीदने के लिए उपयोगकर्ता को प्राप्त करने के लिए आवश्यक समय (पैसा) खर्च करता है।
जब आप एक रिबूट किया था खुद को हल किया एक आवेदन स्थापित करने के बाद आपको कितनी बार समस्या हुई है? बहुत से उपयोगकर्ताओं की समर्थन लागतों के बारे में सोचें जो एक रिबूट के साथ हल की गई समस्याओं के साथ हैं। यह एक डेवलपर के रूप में बहुत जल्दी टेम्परिंग बन सकता है, हमेशा उपयोगकर्ता को अपना सॉफ़्टवेयर इंस्टॉल करने के बाद भी रिबूट करने के लिए मिलता है, जब आपको लगता है कि इसकी आवश्यकता नहीं है।
अधिकांश ऑपरेटिंग सिस्टम और सॉफ़्टवेयर उन दिनों में लिखे गए थे जब डिस्कस्पेस और मेमोरी में बहुत पैसा खर्च होता था। अब अनुप्रयोगों के लिए एक चाल है कि वे उपयोग करने वाले सभी dll की एक निजी प्रतिलिपि रखें, इसलिए इरेज़र को अपग्रेड करना, लेकिन अधिक संग्रहण स्थान का उपयोग करना।
सर्वरों पर यह "कंटेनरों" के साथ किया जा रहा है, हालांकि "कंटेनर" डेस्कटॉप सॉफ़्टवेयर के लिए अच्छी तरह से काम नहीं करते हैं, जैसा कि आप एथेर एप्लिकेशन के साथ एक एप्लिकेशन द्वारा सहेजे गए डेटा तक पहुंचने में सक्षम होना चाहते हैं। (अन्यथा सिर्फ एक iPhone का उपयोग करें।)
यदि आप नहीं करते हैं तो इसका कारण है: आप दुर्घटनाग्रस्त हो जाएंगे। से रेमंड चेन :
यहां तक कि अगर आप ऐसी फ़ाइल को प्रतिस्थापित करते हैं जो उपयोग में है, तब भी उस सिस्टम में कोड हो सकता है जो पुराने संस्करण का उपयोग करना चाहता है। उदाहरण के लिए, मान लीजिए कि आपके पास दो फाइलें हैं जो एक साथ काम करती हैं:
- A.dll
- B.dll
आप एक पैच जारी करते हैं जो दोनों फ़ाइलों को अपडेट करता है, लेकिन
A.dll
उपयोग में है। कोई बात नहीं। आप बस उन दोनों को प्रतिस्थापित करें। नतीजतन, जो प्रोग्राम अभी भीA.dll
पुराने संस्करण का उपयोग कर रहे थे , लेकिन नए प्रोग्राम नए का उपयोग करेंगे। और सभी कार्यक्रमों को नया संस्करण मिलता हैB.dll
।अब एक प्रोग्राम जो पुराने
A.dll
का उपयोग कर रहा था, एक फ़ंक्शन को कॉल करने का निर्णय लेता है। यह स्वाभाविक रूप से पुराने संस्करण की अपेक्षा करता हैB.dll
, लेकिन इसके बजाय इसे नया संस्करण मिलता है। आपके द्वारा किए गए परिवर्तन के आधार परB.dll
, यह कॉल काम कर सकती है - या यह दुर्घटनाग्रस्त हो सकती है। दोनों DLL यह मानते हैं कि इसका भागीदार समान मिलान वाले सेट से आता है।
पूरी तरह से ईमानदार होने के लिए, सॉफ़्टवेयर डेवलपर्स की ओर से यह कम काम (और इसलिए $ $ कम है) यह मानने के लिए कि अपडेट हमेशा पुनरारंभ होगा। यह शायद सेम काउंटरों का उतना ही निर्णय है जितना कि डेवलपर्स का।
अंततः, बहुत कम अपडेट हैं जो एक आदर्श दुनिया में, बिना पुनरारंभ किए नहीं किए जा सकते हैं, लेकिन इसमें बहुत सारी पूर्व-योजना होती है, और कुछ जोखिम भी होते हैं, जिसे देखते हुए एक सिस्टम में विभिन्न प्रकार के संभावित कॉन्फ़िगरेशन हो सकते हैं।
यह इस तथ्य के साथ करना है कि कोड को बदलना बहुत कठिन है क्योंकि यह कुछ बड़ी समस्याओं को पैदा किए बिना चल रहा है। समाधान: कोड बदलने से पहले सब कुछ रोक दें, इस तरह से आप सुनिश्चित कर सकते हैं कि कुछ भी नहीं चल रहा है। यह एक ब्रूट फोर्स हैक है जो काफी हद तक अनावश्यक रूप से अनावश्यक है जिसे माना जाता है कि यह आवश्यक है, लेकिन यह पूरी तरह से आवश्यक हो सकता है, खासकर यदि आप विशेष रूप से महत्वपूर्ण कोड को अपडेट करने के लिए होते हैं। वास्तव में एक पूरी कंपनी है जो अपडेट करने में माहिर है कि DON'T को इस विशेष रूप से महत्वपूर्ण कोड के लिए रिबूट की आवश्यकता नहीं है। जिस तरह से वे करते हैं वह इस पेपर में है http://www.ksplice.com/paper ।
Windows के लिए महत्वपूर्ण सिस्टम फ़ाइलों को संशोधित किए जाने पर आपको पुनरारंभ करना आवश्यक है, क्योंकि Windows इन फ़ाइलों को उपयोग में होने के दौरान संशोधित करने की अनुमति नहीं देता है। इसलिए विंडोज अपडेट से अधिकांश अपडेट के लिए एक रिबूट की आवश्यकता होती है, जैसे कि वे प्रोग्राम जो खुद को विंडोज (जैसे एंटीवायरस) में एकीकृत करते हैं। जब तक आप रीबूट नहीं करते हैं, तब तक विंडोज प्रोग्राम को "इंस्टॉल" करने के लिए आवश्यक कुछ अंतिम चरण नहीं कर सकता है।
आप इसकी तुलना लिनक्स से कर सकते हैं, जिसके लिए शायद ही आपको रिबूट करना पड़े। यहां तक कि जब आपको रिबूट करने के लिए कहा जाता है, तो आपको आमतौर पर केवल लॉग आउट करने और वापस अंदर जाने की आवश्यकता होती है। इसका कारण यह है कि एक विशिष्ट लिनक्स वातावरण में कई अलग-अलग प्रोग्राम शामिल होते हैं जो एक पूर्ण ओएस बनाने के लिए एक साथ काम करते हैं। यदि किसी इंस्टॉलेशन के दौरान एक महत्वपूर्ण फ़ाइल को संशोधित किया जाता है, तो आप आमतौर पर केवल एक विशिष्ट प्रोग्राम को पुनरारंभ करते हैं जो फ़ाइल का उपयोग करता है।