कर्नेल पैनिक


कर्नेल पैनिक (कभी-कभी संक्षेप में केपी[1]) एक आंतरिक घातक प्रणाली त्रुटि का पता लगाने पर एक ऑपरेटिंग प्रणाली के कर्नेल (ऑपरेटिंग प्रणाली ) द्वारा लिया गया एक सुरक्षा उपाय है जिसमें या तो यह सुरक्षित रूप से पुनर्प्राप्त करने में असमर्थ है या प्रणाली को चलाने के लिए प्रमुख डेटा हानि का उच्च विपत्ति होगा। यह शब्द अधिक सीमा तक यूनिक्स और यूनिक्स जैसी प्रणालियों के लिए विशिष्ट है। माइक्रोसॉफ़्ट विंडोज़ ऑपरेटिंग प्रणाली पर समतुल्य एक स्टॉप एरर है जिसे अधिकांशतः "मौत की नीली स्क्रीन" कहा जाता है।।
AT&T-व्युत्पन्न और बीएसडी यूनिक्स स्रोत कोड में panic()
के रूप में जाना जाने वाला पैनिक हैंडल करने वाले कर्नेल रूटीन को सामान्यतः कंसोल में एक त्रुटि संदेश आउटपुट करने के लिए डिज़ाइन किया गया है, पोस्ट-मॉर्टम डीबगिंग के लिए डिस्क पर कर्नेल मेमोरी की एक छवि डंप करें और फिर या तो प्रणाली के मैन्युअल रूप से रीबूट होने की प्रतीक्षा करें या स्वचालित रिबूट आरंभ करें।[2] प्रदान की गई जानकारी अत्यधिक तकनीकी प्रकृति की है और इसका उद्देश्य समस्या के निदान में प्रणाली प्रशासक या सॉफ़्टवेयर डेवलपर की सहायता करना है। कर्नेल पैनिक कर्नेल स्थान के बाहर होने वाली त्रुटियों के कारण भी हो सकता है। उदाहरण के लिए कई यूनिक्स ऑपरेटिंग प्रणाली घबरा जाते हैं यदि उपयोगकर्ता स्थान में चलने वाली init प्रक्रिया समाप्त हो जाती है।[3][4]
इतिहास
यूनिक्स कर्नेल त्रुटि का पता लगाने और पहचान तंत्र के रूप में अभिकथन (सॉफ्टवेयर विकास) के साथ आंतरिक स्थिरता और रनटाइम (कार्यक्रम जीवनचक्र चरण) की शुद्धता को बनाए रखता है। मूल धारणा यह है कि हार्डवेयर और सॉफ्टवेयर को सही विधि से प्रदर्शन करना चाहिए और एक अभिकथन की विफलता के परिणामस्वरूप पेनिक होती है अर्थात सभी प्रणाली गतिविधि के लिए एक स्वैच्छिक रोक[5] कर्नेल पैनिक को यूनिक्स के प्रारंभिक संस्करण में प्रस्तुत किया गया था और इसने यूनिक्स और इसके पूर्ववर्ती मॉलटिक्स के डिजाइन दर्शन के बीच एक बड़ा अंतर प्रदर्शित किया। मल्टिक्स डेवलपर टॉम वानवेलेक यूनिक्स डेवलपर डेनिस रिची के साथ इस बदलाव की चर्चा को याद करते हैं:
मैंने डेनिस से टिप्पणी की कि मल्टिक्स में मैं द्वारा जो कोड लिख रहा था वह आसानी से त्रुटि पुनर्प्राप्ति कोड था। उन्होंने कहा हमने वह सब सामान बाहर छोड़ दिया। यदि कोई त्रुटि है तो हमारे पास यह दिनचर्या है जिसे पैनिक कहा जाता है और जब यह कहा जाता है तो मशीन क्रैश हो जाती है, और आप हॉल में चिल्लाते हैं, 'अरे, इसे रीबूट करें।'[6]
मूल
panic()
फलन अनिवार्य रूप से पांचवें संस्करण यूनिक्स से वैक्स- आधारित यूनिक्स 32V में अपरिवर्तित था और केवल एक त्रुटि संदेश आउटपुट करता था जिसमें कोई अन्य जानकारी नहीं थी फिर प्रणाली को एक अंतहीन निष्क्रिय लूप में गिरा दिया।V6 यूनिक्स में
panic()
फलन का स्रोत कोड:[7]/* * In case console is off, * panicstr contains argument to last * call to panic. */ char *panicstr; /* * Panic is called on unresolvable * fatal errors. * It syncs, prints "panic: mesg" and * then loops. */ panic(s) char *s; { panicstr = s; update(); printf("panic: %s\n", s); for(;;) idle(); }जैसा कि यूनिक्स कोडबेस बढ़ाया गया था,
panic()
डिबगिंग जानकारी के विभिन्न रूपों को कंसोल में डंप करने के लिए फलन को भी बढ़ाया गया था।कारण
हार्डवेयर विफलता या ऑपरेटिंग प्रणाली में सॉफ्टवेयर बग के परिणामस्वरूप पेनिक हो सकती है। कई स्थिति में त्रुटि होने के बाद ऑपरेटिंग प्रणाली निरंतर संचालन में सक्षम होता है। चूँकि प्रणाली एक अस्थिर स्थिति में है और सुरक्षा उल्लंघनों और डेटा भ्रष्टाचार को कठिन परिस्थिति में डालने के अतिरिक्त परेटिंग प्रणाली आगे की क्षति को रोकने और त्रुटि के निदान की सुविधा के लिए बंद हो जाता है और सामान्य स्थिति में पुनरारंभ होता है।[8]
स्रोत कोड से एक कर्नेल बाइनरी छवि को पुन: संकलित करने के बाद परिणामी कर्नेल को बूट करते समय एक कर्नेल पैनिक एक सामान्य समस्या है यदि कर्नेल को सही विधि से कॉन्फ़िगर संकलित या स्थापित नहीं किया गया था।[9] ओएस के साथ असंगति या उपकरण चालक की कमी के कारण एड-ऑन हार्डवेयर या खराब रैम स्टार्ट अप के समय घातक कर्नेल त्रुटियों के स्रोत भी हो सकते हैं।[10] एक कर्नेल
panic()
भी जा सकता है यदि यह रूट फाइल प्रणाली का पता लगाने में असमर्थ है।[11] कर्नेल उपयोक्ता स्थान इनिशियलाइज़ेशन के अंतिम चरणों के दौरान, यदि init का स्पॉइंग विफल हो जाता है, तो सामान्यतः एक पेनिक प्रारंभ हो जाती है। यदि init प्रक्रिया समाप्त हो जाती है तो पेनिक भी प्रारंभ हो सकती है, क्योंकि तब प्रणाली अनुपयोगी हो जाएगा।[12]निम्नलिखित
kernel_init()
में लिनक्स कर्नेल अंतिम आरंभीकरण का कार्यान्वयन है:static int __ref kernel_init(void *unused) { ... /* * We try each of these until one succeeds. * * The Bourne shell can be used instead of init if we are * trying to recover a really broken machine. */ if (execute_command) { if (!run_init_process(execute_command)) return 0; pr_err("Failed to execute %s. Attempting defaults...\n", execute_command); } if (!run_init_process("/sbin/init") || !run_init_process("/etc/init") || !run_init_process("/bin/init") || !run_init_process("/bin/sh")) return 0; panic("No init found. Try passing init= option to kernel. " "See Linux Documentation/init.txt for guidance."); }ऑपरेटिंग प्रणाली विशिष्टता
लिनक्स
लिनक्स में अन्य यूनिक्स जैसी प्रणालियों की तरह कर्नेल पैनिक दिखाई देते हैं किंतु वे एक अन्य प्रकार की त्रुटि स्थिति भी उत्पन्न कर सकते हैं जिसे लिनक्स कर्नेल ऊप्स के रूप में जाना जाता है।[13] इस स्थिति में कर्नेल सामान्य रूप से आपत्तिजनक प्रक्रिया (कंप्यूटिंग) को किलिंग (यूनिक्स) के बाद चलाना जारी रखता है। चूंकि ऊप्स के कारण कुछ उप प्रणाली या संसाधन अनुपलब्ध हो सकते हैं वे बाद में पूर्ण कर्नेल पैनिक का कारण बन सकते हैं।
लिनक्स पर एक कर्नेल पैनिक एक महत्वपूर्ण स्थिति के दृश्य संकेत के रूप में कीबोर्ड एलईडी को ब्लिंक करने का कारण बनता है।[14]
मैकओएस
जब मैक ओएस 10.2 से 10.7 में कर्नेल पैनिक होता है तो कंप्यूटर एक बहुभाषी संदेश प्रदर्शित करता है जो उपयोगकर्ता को सूचित करता है कि उन्हें प्रणाली को रिबूट करने की आवश्यकता है।[15] 10.2 से पहले एक अधिक पारंपरिक यूनिक्स-शैली पैनिक संदेश प्रदर्शित किया गया था; 10.8 और बाद में कंप्यूटर स्वचालित रूप से रीबूट हो जाता है और पुनरारंभ होने के बाद एक संदेश प्रदर्शित करता है। संदेश का प्रारूप संस्करण से संस्करण में भिन्न होता है:[16]
- 10.0-10.1: प्रणाली स्क्रीन पर पाठ प्रदर्शित करता है त्रुटि के बारे में विवरण देता है और अनुत्तरदायी हो जाता है।
- 10.2: एक काले पारदर्शी पर्दे को नीचे करता है फिर एक सफेद पृष्ठभूमि पर एक संदेश प्रदर्शित करता है जो उपयोगकर्ता को सूचित करता है कि उन्हें कंप्यूटर को पुनरारंभ करना चाहिए। संदेश अंग्रेजी भाषा, फ्रेंच भाषा, जर्मन भाषा और जापानी भाषा में दिखाया गया है।
- 10.3-10.5: कर्नेल पैनिक लगभग संस्करण 10.2 के समान है किंतु त्रुटि स्क्रीन की पृष्ठभूमि काली है।
- 10.6-10.7: पाठ को संशोधित किया गया है और अब इसमें स्पेनिश भाषा का अनुवाद सम्मिलित है।
- 10.8 और बाद में: कंप्यूटर तुरंत रीबूट होने से पहले अनुत्तरदायी हो जाता है। जब कंप्यूटर बैक अप प्रारंभ करता है तो यह कुछ सेकंड के लिए कर्नेल पैनिक के कारण कंप्यूटर के पुनरारंभ होने के बारे में एक चेतावनी संदेश दिखाता है और फिर कंप्यूटर बैक अप को पुनरारंभ करता है। संदेश में अब चीनी भाषा में अनुवाद सम्मिलित है।
कभी-कभी जब पहले एक के तीन मिनट के अंदर पांच या अधिक कर्नेल पैनिक होते हैं तो मैक 30 सेकंड के लिए कोई प्रतीक नहीं प्रदर्शित करेगा और फिर बंद हो जाएगा; इसे आवर्ती कर्नेल पैनिक के रूप में जाना जाता है।
10.2 से ऊपर के सभी संस्करणों में पाठ को पावर प्रतीक पर आरोपित किया गया है और यह पूर्ण स्क्रीन नहीं है। डिबगिंग जानकारी गैर-वाष्पशील रैंडम-एक्सेस मेमोरी में सहेजी जाती है और रीबूट पर लॉग फ़ाइल में लिखी जाती है। 10.7 में कर्नेल पैनिक के बाद स्वचालित रूप से पुनः आरंभ करने की सुविधा है। कुछ स्थिति में 10.2 और बाद में त्रुटि का विवरण देने वाला सफेद पाठ स्टैंडबाय प्रतीक के अतिरिक्त दिखाई दे सकता है।
यह भी देखें
Wikimedia Commons has media related to कर्नेल पैनिक.
- कोर निपात
- मौत के नीले स्क्रीन
- मौत का पर्दा
- मशीन-चेक अपवाद (एमसीई)
- विश्वसनीयता, उपलब्धता और सेवाक्षमता (आरएएस)
संदर्भ
- ↑ "KP - Kernel Panic (Linux) | AcronymFinder". www.acronymfinder.com. Retrieved 2016-01-06.
- ↑ "FreeBSD 11.0 - man page for panic (freebsd section 9) - Unix & Linux Commands". www.unix.com.
- ↑ "बूट विफलता-इनिट मर गया - यूनिक्स लिनक्स फ़ोरम - एचपी-यूएक्स". www.unix.com.
- ↑ Randolph J. Herber (September 1, 1999). "Re: PANIC: init died". Newsgroup: comp.sys.sgi.admin.
- ↑ Daniel P. Siewiorek; Robert S. Swarz (1998). Reliable computer systems: design and evaluation. A K Peters, Ltd. p. 622. ISBN 978-1-56881-092-8. Retrieved May 6, 2011.
- ↑ "यूनिक्स और मल्टिक्स". www.multicians.org.
- ↑ Source code /usr/sys/ken/prf.c from V6 UNIX
- ↑ Steven M. Hancock (November 22, 2002). Tru64 UNIX troubleshooting: diagnosing and correcting system problemsHP Technologies SeriesITPro collection. Digital Press. pp. 119–126. ISBN 978-1-55558-274-6. Retrieved May 3, 2011.
- ↑ Michael Jang (2006). गीक्स के लिए लिनक्स झुंझलाहट. O'Reilly Media, Inc. pp. 267–274. ISBN 978-0-596-00801-7. Retrieved April 29, 2011.
- ↑ David Pogue (December 17, 2009). Switching to the Mac: The Missing Manual, Snow Leopard Edition. O'Reilly Media, Inc. p. 589. ISBN 978-0-596-80425-1. Retrieved May 4, 2011.
- ↑ Greg Kroah-Hartman (2007). लिनक्स कर्नेल संक्षेप में. O'Reilly Media, Inc. p. 59. ISBN 978-0-596-10079-7. Retrieved May 3, 2011.
- ↑ Wolfgang Mauerer (September 26, 2008). पेशेवर लिनक्स कर्नेल आर्किटेक्चर. John Wiley and Sons. pp. 1238–1239. ISBN 978-0-470-34343-2. Retrieved May 3, 2011.
- ↑ "Linux Device Drivers, Chapter 4" (PDF).
- ↑ James Kirkland; David Carmichael; Christopher L. Tinker; Gregory L. Tinker (May 2006). Linux Troubleshooting for System Administrators and Power Users. Prentice Hall. p. 62. ISBN 9780132797399. Retrieved 2016-02-05.
- ↑ "OS X: About kernel panics - Apple Support". support.apple.com.
- ↑ "मैक ओएस एक्स के लिए मौत की एक नई स्क्रीन". OSXBook.com. Archived from the original on May 1, 2012. Retrieved April 30, 2011.