कंप्यूटर खुद को कैसे पुनः आरंभ कर सकता है? यह बंद होने के बाद, यह खुद को फिर से वापस आने के लिए कैसे कहता है? यह किस तरह का सॉफ्टवेयर है जो ऐसा कर सकता है?
कंप्यूटर खुद को कैसे पुनः आरंभ कर सकता है? यह बंद होने के बाद, यह खुद को फिर से वापस आने के लिए कैसे कहता है? यह किस तरह का सॉफ्टवेयर है जो ऐसा कर सकता है?
जवाबों:
tl; dr: आपके कंप्यूटर में पावर स्टेट्स ACPI (एडवांस कॉन्फ़िगरेशन और पावर इंटरफेस) के कार्यान्वयन द्वारा नियंत्रित होते हैं। शटडाउन प्रक्रिया के अंत में, आपका ऑपरेटिंग सिस्टम एक एसीपीआई कमांड सेट करता है जो दर्शाता है कि कंप्यूटर को रिबूट करना चाहिए। जवाब में, मदरबोर्ड अपने संबंधित रीसेट कमांड या लाइनों का उपयोग करके सभी घटकों को रीसेट करता है, और फिर बूटस्ट्रैप प्रक्रिया का अनुसरण करता है। मदरबोर्ड वास्तव में कभी भी बंद नहीं होता है, यह केवल विभिन्न घटकों को रीसेट करता है और फिर ऐसा व्यवहार करता है जैसे कि पावर बटन को सिर्फ दबाया गया है।
लंबा और जुआ लेकिन (मेरी राय में) अधिक दिलचस्प जवाब:
पुराने दिनों में (ठीक है, मेरे जैसे कॉलेज के छात्र के लिए 90 के दशक से बहुत पहले), हमारे पास एटी (उन्नत प्रौद्योगिकी) एटी पावर के साथ मदरबोर्ड थे।प्रबंधन। एटी पावर सिस्टम बहुत सरल था। आपके कंप्यूटर पर पावर बटन एक हार्डवेयर टॉगल था (शायद मामले के पीछे) और आपका 120vac इनपुट इसके माध्यम से सही गया। इसने शारीरिक रूप से आपकी बिजली की आपूर्ति को चालू और बंद कर दिया, और जब यह स्विच ऑफ स्थिति में था, तो आपके कंप्यूटर में सब कुछ पूरी तरह से मृत हो गया था (यह CMOS बैटरी को बहुत महत्वपूर्ण बना दिया, क्योंकि इसके बिना हार्डवेयर रखने के लिए कोई बिजली की आपूर्ति नहीं थी। घड़ी की टिक टिक)। क्योंकि पावर स्विच एक भौतिक तंत्र था, इसलिए पावर को चालू और बंद करने का कोई सॉफ्टवेयर तरीका नहीं था। विंडोज प्रसिद्ध दिखाएगा "अपने कंप्यूटर को बंद करना अब सुरक्षित है" संदेश क्योंकि, हालांकि सब कुछ पार्क किया गया था और बंद करने के लिए तैयार था, ओएस के लिए वास्तव में पावर स्विच को फ्लिप करना संभव नहीं था। इस विन्यास को कभी-कभी कहा जाता थाहार्ड पावर , क्योंकि यह सब हार्डवेयर है।
आजकल चीजें अलग-अलग हैं, क्योंकि एटीएक्स मदरबोर्ड और एटीएक्स पावर के चमत्कार के कारण (यदि आप ट्रैक कर रहे हैं तो एडवांस्ड टेक्नोलॉजी एक्सटेन्डेड है)। कई अन्य अग्रिमों के साथ (मिनी-डीआईएन पीएस / 2, कोई भी?), एटीएक्स नरम शक्ति लाया । सॉफ्ट पावर का मतलब है कि कंप्यूटर की शक्ति को सॉफ्टवेयर द्वारा नियंत्रित किया जा सकता है। इससे कुछ आयात परिवर्तन हुए:
इसलिए, आपका पावर स्विच कंप्यूटर पर "चालू नहीं होता है"। इसके बजाय, यह आपके मदरबोर्ड के बेसिक कंट्रोलर से जुड़ा है, जो यह पता लगाता है कि बटन दबाया गया है और सिस्टम को तैयार करने के लिए कई चरणों को क्रियान्वित करता है, जिसमें PS_ON को भी शामिल किया गया है ताकि बिजली उपलब्ध हो सके। स्टार्टअप प्रक्रिया को ट्रिगर करने के लिए पावर बटन एकमात्र तरीका नहीं है, आपके विस्तार बस पर डिवाइस भी ऐसा कर सकते हैं। यह महत्वपूर्ण है क्योंकि आपका ईथरनेट नेटवर्क एडेप्टर वास्तव में तब रहता है जब आपका कंप्यूटर बंद होता है और बहुत विशिष्ट पैकेट की तलाश होती है जिसे अक्सर "मैजिक पैकेट" कहा जाता है। यदि वे अपने मैक पते पर संबोधित इस पैकेट का पता लगाते हैं, तो वे स्टार्टअप प्रक्रिया को ट्रिगर करेंगे। इस तरह "वेक-ऑन-लैन" (WoL) काम करता है। घड़ी बूट भी शुरू कर सकती है (अधिकांश BIOS आपको एक समय निर्धारित करने की अनुमति देता है कि कंप्यूटर को प्रत्येक दिन बूट करना चाहिए),
खैर, मैं सॉफ्ट पावर की बात दोनों को समझाता हूं क्योंकि मुझे लगता है कि यह दिलचस्प है (हमेशा एक महत्वपूर्ण कारण है कि मैं चीजों को समझाता हूं) और क्योंकि यह आपको यह समझने की अनुमति देता है कि आपके कंप्यूटर की शक्ति और दौड़ / बंद स्थिति सभी सॉफ्टवेयर द्वारा कैसे नियंत्रित होती है। अधिकांश वर्तमान कंप्यूटरों में, यह सॉफ़्टवेयर सिस्टम उन्नत कॉन्फ़िगरेशन और पॉवर इंटरफ़ेस या ACPI का कार्यान्वयन है । ACPI एक मानकीकृत, एकीकृत प्रणाली है जो सॉफ्टवेयर को आपके कंप्यूटर की शक्ति प्रणाली को नियंत्रित करने की अनुमति देती है। आपने एसीपीआई बिजली राज्यों के बारे में सुना होगा। पावर कंट्रोल का मूल तंत्र ये "पावर स्टेट्स" हैं, आपका ऑपरेटिंग सिस्टम स्विच की तैयारी करके पावर मोड के माध्यम से स्विच करता है (शटडाउन / हाइबरनेट प्रक्रियाएं जो पावर से पहले वास्तव में फ़्लिप हो जाती हैं), और फिर पावर राज्यों को स्विच करने के लिए मदरबोर्ड को कमांड करना । बिजली राज्य इस तरह दिखते हैं:
आप देखेंगे कि रिबूट इन राज्यों में से एक नहीं है। जब रिबूट होता है तो आपका कंप्यूटर वास्तव में क्या होता है जवाब आश्चर्यजनक हो सकता है, क्योंकि एक शक्ति प्रबंधन के दृष्टिकोण से यह लगभग कुछ भी नहीं है । नहीं है एक ACPI रीसेट आदेश। जब आप अपने ऑपरेटिंग सिस्टम को रिबूट करने के लिए कहते हैं, तो यह अपनी सामान्य शटडाउन प्रक्रिया का अनुसरण करता है (आपकी सभी प्रक्रियाओं को रोक देता है, थोड़ा सा रखरखाव करता है, आपकी फाइल सिस्टम आदि को बंद कर देता है), और फिर अंतिम चरण के रूप में, मशीन को पावर स्टेट में भेजने के बजाय G2 (जैसा कि अगर आप इसे केवल शट डाउन करने के लिए कहा था) तो यह रीसेट कमांड सेट करता है। इसे आम तौर पर "रीसेट रजिस्टर" के रूप में जाना जाता है, क्योंकि अधिकांश एसीपीआई इंटरफ़ेस की तरह यह केवल एक पता है जिसे रीसेट करने के लिए एक विशिष्ट मूल्य लिखा जाना चाहिए। मैं 2.0 विनिर्देश को उद्धृत करता हूँ कि यह क्या करता है:
वैकल्पिक ACPI रीसेट तंत्र एक मानक तंत्र निर्दिष्ट करता है जो संपूर्ण सिस्टम रीसेट प्रदान करता है। लागू होने पर, इस तंत्र को पूरी प्रणाली को रीसेट करना होगा। इसमें प्रोसेसर, कोर लॉजिक, सभी बसें और सभी परिधीय शामिल हैं। OSPM के नजरिए से, रीसेट तंत्र को स्वीकार करना मशीन को साइकिल चलाने के बराबर तार्किक है। रीसेट के बाद नियंत्रण प्राप्त करने पर, OSPM एक ठंडे बूट के समान तरीके से कार्य करेगा।
इसलिए, जब रीसेट रजिस्टर सेट किया जाता है, तो कुछ चीजें अनुक्रम में होती हैं।
इन दो चरणों का अंतिम प्रभाव (जो वास्तव में बहुत अधिक चरणों में टूट जाता है) यह है कि यह सब कुछ ठीक वैसे ही दिखता है जैसे कंप्यूटर सिर्फ बूट होता है, लेकिन शक्ति वास्तव में पूरे समय पर थी। इसका मतलब है कि कम समय के लिए शट डाउन और स्टार्ट अप की आवश्यकता होती है (क्योंकि आपको तैयार होने के लिए बिजली की आपूर्ति का इंतजार नहीं करना पड़ता है), और महत्वपूर्ण रूप से ऑपरेटिंग सिस्टम को बंद करके बूटअप को शुरू करने की अनुमति देता है। इसका मतलब है कि एक और स्टार्टअप ट्रिगर का उपयोग करने की आवश्यकता नहीं है (WoL etc), और आप रिबूट को सिस्टम को दूरस्थ रूप से रीसेट करने के लिए एक प्रभावी तरीके के रूप में उपयोग करने की अनुमति देते हैं, जब आपके पास बूट ट्रिगर करने का कोई तरीका नहीं होता है।
यह एक लंबा जवाब था। लेकिन हे, उम्मीद है कि अब आप कंप्यूटर पावर प्रबंधन के बारे में अधिक जानते हैं। मैंने निश्चित रूप से इस पर शोध करने वाली कुछ चीजें सीखीं।
यहाँ एक प्रारंभिक बिंदु है:
चिप्स आमतौर पर बंद नहीं करते हैं और फिर चालू करते हैं। इसके बजाय, एक रीसेट लाइन है जो प्रोसेसर को तथाकथित रीसेट स्थिति में लाएगी जब आमतौर पर सभी मेमोरी को साफ किया जाता है और प्रोसेसर ऐसा दिखता है कि यह अभी चालू है। जबकि उस पिन को प्रोसेसर के आधार पर उच्च (या कम) रखा गया है, प्रोसेसर रीसेट में है। एक बार पिन जारी होने के बाद, यह सामान्य रूप से बूट करना जारी रखेगा, जैसे कि यह पहली बार चालू किया गया था। इसका मुद्दा यह है कि कोई बिजली कटौती खुद नहीं है।
तो आधुनिक पीसी जैसे बड़े सिस्टम के लिए यह पैमाना कैसे है? अच्छी तरह से आधुनिक कंप्यूटर कंप्यूटर से बने होते हैं जो कभी-कभी कंप्यूटर से बाहर हो जाते हैं। इसलिए जब आप कंप्यूटर को रीसेट करने के लिए सेट करते हैं, तो "कंप्यूटर" जो कंप्यूटर बनाते हैं, वे अपने राज्यों (यदि रीसेट को नियंत्रित किया जाता है) को सहेजना शुरू कर देंगे, या बस उनके रीसेट पिन को खींच लिया जाएगा।
कुछ प्रोसेसर और माइक्रोकंट्रोलर (जो लघु स्व-निहित कंप्यूटर हैं, आमतौर पर आधुनिक डेस्कटॉप कंप्यूटर से 20 साल पीछे हैं) आंतरिक स्विच का उपयोग करके खुद को रीसेट कर सकते हैं। जैसा कि मैंने कहा, एक बार जो सिग्नल रीसेट करता है वह चला जाता है, कंप्यूटर शुरू हो जाएगा। इसलिए प्रश्न में आधार पूरी तरह से सही नहीं है। कंप्यूटर को पता नहीं है कि कब चालू करना है। यह जानने के लिए कि इसे "बंद" या रीसेट करने की आवश्यकता है और जब संकेत जो इसे वहां रखता है, तो यह चालू हो जाएगा।
यह व्यवहार आधुनिक कंप्यूटर पर अजीब लग सकता है जिसे विशिष्ट समय पर या नेटवर्क पर चालू करने के लिए सेट किया जा सकता है और इसी तरह। जैसा कि मैंने कहा कि कंप्यूटर कंप्यूटर से बने होते हैं। इसलिए जब मुख्य प्रोसेसर बंद हो सकता है, तो कई अन्य चिप्स और माइक्रोकंट्रोलर हो सकते हैं जो अंदर हैं। सबसे स्पष्ट मामला वास्तविक समय की घड़ी है जो अक्सर बैटरी चालित होती है। यह तब अन्य चिप्स को चालू कर सकता है जो अन्य चिप्स को चालू करेगा और पूरे कंप्यूटर पर चेन रिएक्शन तब तक चलेगा। आज के कंप्यूटरों पर, एक पीएसयू लाइन है जिसे +5 वीडीसी स्टैंडबाय वोल्टेज कहा जाता है। यह विभिन्न उपकरणों के लिए लगभग 50 mW की शक्ति प्रदान करता है जो कंप्यूटर "बंद" होने पर होते हैं।
थोड़ा सा सामान्य ज्ञान: इंटेल 386 EX प्रोसेसर पर पिन पिन नंबर 110 है।
इंटेल i7-900 पर यह भूमि संख्या AL39 है।
मुझे उम्मीद है कि कोई व्यक्ति एक उत्तर देने में सक्षम होगा जो यह बताएगा कि उच्च स्तर के दृष्टिकोण से चीजें कैसे काम करती हैं, क्योंकि यह काफी जटिल प्रणाली है।
यह ब्लॉग पोस्ट बताता है कि लिनक्स रिबूट कैसे चलाता है।
अंश:
X86 को रीसेट करने के लिए लिनक्स में विभिन्न तरीकों का एक समूह है। उनमें से कुछ केवल 32-बिट हैं और इसलिए मैं बस उन्हें अनदेखा करने जा रहा हूं क्योंकि ईमानदारी से बस आप अपने जीवन के साथ क्या कर रहे हैं। इसके अलावा, वे भयानक हैं। इसलिए, यह हमें उनमें से पांच के साथ छोड़ देता है।
केडीबी - कीबोर्ड नियंत्रक के माध्यम से रिबूट। मूल आईबीएम पीसी में कीबोर्ड नियंत्रक से बंधी सीपीयू रीसेट लाइन थी। उपयुक्त जादू मूल्य लिखना लाइन और मशीन को रीसेट करता है। यह सब बहुत सीधा है, इस तथ्य को छोड़कर कि आधुनिक मशीनों में कीबोर्ड नियंत्रक नहीं हैं (वे वास्तव में एम्बेडेड नियंत्रक का हिस्सा हैं) और यहां तक कि अधिक आधुनिक मशीनें भी कीबोर्ड नियंत्रक होने का दिखावा नहीं करती हैं। अब, एम्बेडेड नियंत्रक सॉफ्टवेयर चलाते हैं। और, जैसा कि हम सभी जानते हैं, सॉफ्टवेयर खतरनाक है। लेकिन, इससे भी बदतर, एम्बेडेड नियंत्रक पर सॉफ्टवेयर BIOS लेखकों द्वारा लिखा गया है। तो स्पष्ट रूप से यह दिखावा कि यह कभी काम करता है किसी प्रकार का विस्तृत उपन्यास है। कुछ मशीनें हार्डवेयर के बारे में बहुत सटीक हैं जो सटीक स्थिति में है कि विंडोज प्रोग्राम करेगा। कुछ मशीनें 10 में से 9 बार काम करती हैं और फिर कुछ विषम समय के कारण बंद हो जाती हैं। और दूसरों को बस काम नहीं करते। हुर्रे!
ट्रिपल - एक ट्रिपल गलती उत्पन्न करने का प्रयास। यह एक खाली इंटरप्ट डिस्क्रिप्टर टेबल को लोड करके और फिर इंट (3) को कॉल करके किया जाता है। व्यवधान विफल रहता है (कोई आईडीटी नहीं है), गलती हैंडलर विफल रहता है (कोई आईडीटी नहीं है) और सीपीयू एक ऐसी स्थिति में प्रवेश करता है जिसे सिद्धांत रूप में, रीसेट करना चाहिए। सिवाय इसके कि ऐसा होने की आवश्यकता नहीं लगती है और यह सिर्फ मशीनों के एक समूह पर काम नहीं करता है।
pci - वास्तव में pci नहीं। बस, डिवाइस, फ़ंक्शन और कॉन्फिगर रजिस्टर की पहचान करने के लिए io port 0xcf8 पर 32 बिट मान लिखकर पारंपरिक PCI कॉन्फिगर स्पेस एक्सेस प्राप्त किया जाता है। पोर्ट 0xcfc में तब प्रश्न में रजिस्टर होता है। लेकिन अगर आप उपयुक्त मानों को जादुई मानों को 0xcf9 पर लिखते हैं, तो मशीन रिबूट हो जाएगी। बहुत शानदार! और किसी भी तरह से मानकीकृत नहीं (निश्चित रूप से पीसीआई युक्ति का हिस्सा नहीं), इसलिए विभिन्न चिपसेट की अलग-अलग आवश्यकताएं हो सकती हैं। Booo।
ईएफआई - ईएफआई रनटाइम सेवाएं मशीन को रिबूट करने के लिए एक प्रवेश बिंदु प्रदान करती हैं। यह आमतौर पर भी काम करता है! जब तक ईएफआई रनटाइम सेवाएं बिल्कुल काम कर रही हैं, जो एक खिंचाव हो सकता है।
एसीपीआई - एसीपीआई कल्पना के हाल के संस्करण आपको एक पता (आमतौर पर मेमोरी या सिस्टम आईओ स्पेस) और एक मान प्रदान करते हैं। विचार यह है कि पते पर मूल्य लिखना सिस्टम को रीसेट करता है। यह पता चला है कि ऐसा करना अक्सर विफल होता है। पीसीआई रिबूट विधि का एसीपीआई के माध्यम से प्रतिनिधित्व करना भी असंभव है, क्योंकि पीसीआई रिबूट विधि में मूल्यों की एक जोड़ी की आवश्यकता होती है और एसीपीआई आपको केवल एक देता है।
यह एक I / O स्थान को फ्रॉड करता है जो एक डेटा लाइन को कम खींचता है जो CPU को बताता है कि उसे जो कुछ भी करना है उसे रोकना चाहिए और BIOS में एक निश्चित स्थान से कोड चलाना शुरू करना चाहिए।
पावर प्रबंधन से पहले पुराने दिनों में, कंप्यूटर अभी भी खुद को पुनरारंभ कर सकते हैं, बिल्कुल। (किसी को भी याद है जब एक जमे हुए कार्यक्रम का मतलब था कि आपको कंप्यूटर को रिबूट करने के लिए Ctrl + Alt + Delete का उपयोग करना है?)
मेरे पुराने 486 पर, असेंबली लैंग्वेज कमांड JMP FFFF:0000
(यानी, सीपीयू के इंस्ट्रक्शन पॉइंटर को उक्त पते पर सेट करें) पूरे कंप्यूटर को पुनः आरंभ करेगा। दूसरे शब्दों में, FFFF: 0000 BIOS में एक स्थान को संबोधित करता है जिसमें कंप्यूटर के लिए यह निर्देश है कि यह पहली बार शुरू होने पर क्या करना चाहिए। मुझे आंद्रेजाको के उत्तर द्वारा वर्णित रीसेट पिन पर संदेह है, या पूर्व-शक्ति-प्रबंधन दिनों में बटन रीसेट करने के लिए, निर्देश सूचक को भी उसी पते पर मजबूर करना होगा।
JMP FFFF: 0000 के लिए एक Google खोज से इस बारे में कई दिलचस्प पेजों का पता चलता है।
वॉचडॉग नाम की एक चीज भी है। यह उपकरण एक मृत व्यक्ति के स्विच के रूप में कार्य करता है। कंप्यूटर को हर एक मिनट में वॉचडॉग को संकेत देना पड़ता है कि यह अभी भी जीवित है। जब कंप्यूटर दुर्घटनाग्रस्त हो जाता है, जैसे कि अंतहीन लूप में चलने से, यह वॉचडॉग को संकेत देने में विफल हो जाएगा, यह अभी भी इरादा के अनुसार चल रहा है, जिस पर वॉचडॉग एक हार्डवेयर रीसेट करेगा। यह टर्मिनेटर की लोकप्रिय टीवी श्रृंखला में प्रदर्शित किया गया था, जहां एक रोबोट को उच्च वोल्टेज बिजली की वृद्धि से खटखटाया गया था। यह 2 मिनट में खुद को रीसेट कर देगा।
पुराने आईबीएम पीसी -1 पर कीबोर्ड कंट्रोलर, अजीब तरह से पर्याप्त, रिबूट को संभाला। IBM ने कीबोर्ड को संभालने के लिए एक छोटे माइक्रोप्रोसेसर को एम्बेड किया, और इसमें कुछ I / O लाइनें थीं, इसलिए उन्होंने मुख्य CPU की रीसेट लाइन को चलाने के लिए लाइनों में से एक का उपयोग किया। कीबोर्ड कंट्रोलर को भेजे गए कमांड के परिणामस्वरूप सीपीयू को रीसेट किया जाएगा जैसे कि पावर को अभी स्विच किया गया था।
मुझे लगता है कि यह परंपरा "एटी" युग में अच्छी तरह से जारी रही है, और आज एसीपीआई में इसके बाकी हिस्से भी हो सकते हैं।
जोड़ा गया: उपरोक्त रीसेट योजना के बारे में एक दिलचस्प विवरण है। प्रारंभिक बूट अनुक्रम के दौरान कोड रैम में एक विशेष पैटर्न की तलाश करता था जो कि शायद पहले निष्पादित कोड द्वारा निर्धारित किया गया था। यदि यह कोड कुछ POST (पावर-ऑन सेल्फ-टेस्ट) डायग्नोस्टिक्स में मौजूद था। पैटर्न केवल "गर्म" बूट पर मौजूद होगा।