कोर निपात
संगणनीयता में, कोर डंप, मेमोरी डंप, क्रैश डंप, स्टोरेज डंप, सिस्टम डंप या एबेंड डंप किसी ऐसे निश्चित समय पर कंप्यूटर प्रोग्राम की कार्य करने वाली मेमोरी की अभिलिखित स्थिति से मिलकर बना होता है, जब सामान्यतः प्रोग्राम अनुपयुक्त रूप से बंद होता है या क्रैश हो जाता है।[1][2] व्यवहार में, संदर्भ स्विच के साथ-साथ प्रोसेसर रजिस्टर के अन्य प्रमुख भाग सामान्यतः एक ही समय में डंप कर दिए जाते हैं, जिसमें प्रोग्राम गणक और स्टेक सूचक, मेमोरी प्रबंधन जानकारी और अन्य प्रोसेसर और ऑपरेटिंग सिस्टम फ़्लैग और जानकारीया सम्मिलित हो सकती है।स्नैपशॉट डंप या स्नैप डंप एक मेमोरी डंप है जिसे कंप्यूटर ऑपरेटर या चल रहे प्रोग्राम द्वारा अनुरोध किया जाता है, जिसके बाद प्रोग्राम जारी रखने में सक्षम होता है। कंप्यूटर प्रोग्राम में त्रुटियों के निदान और डिबगिंग में सहायता के लिए प्रायः कोर डंप का उपयोग किया जाता है।
कई ऑपरेटिंग सिस्टम पर, प्रोग्राम में घातक अपवाद स्वचालित रूप से कोर डंप को प्रवर्धित करता है। विस्तृत रूप, बहुत से स्तिथियों में, अब शब्दावली "कोर-डम्प" का उपयोग किसी भी घातक त्रुटि के लिए किया जाना प्रारंभ हो गया है। आगे की परीक्षा या अन्य उद्देश्यों के लिए बड़ी मात्रा में कच्चे डेटा के किसी भी आउटपुट को इंगित करने के लिए कोर डंप, मेमोरी डंप, या सिर्फ डंप शब्द का प्रयोग होता है।[3][4]
पृष्ठभूमि
यह नाम चुंबकीय-कोर मेमोरी से आता है,[5] जो 1950 से 1970 के दशक तक रैंडम एक्सेस मेमोरी का प्रमुख रूप था। चुंबकीय-कोर तकनीक के अप्रचलित होने के उपरांत यह नाम लंबे समय तक प्रयोग में बना रहा।
प्रारम्भिक कोर डंप, पेपर प्रिंटआउट थे[6] जो मेमोरी की सामग्री को सामान्यतः अष्टभुजाकार या हेक्साडेसिमल संख्या के कॉलम में व्यवस्थित होती थी, कभी-कभी यंत्र भाषा निर्देश, टेक्स्ट स्ट्रिंग्स, या दशमलव या फ़्लोटिंग-पॉइंट नंबर के रूप में उनकी व्याख्या की जाती है।
चूंकि मेमोरी आकार में वृद्धि हुई और पोस्ट-मॉर्टम विश्लेषण उपयोगिताओं का विकास हुआ, टेप या डिस्क जैसे चुंबकीय मीडिया को डंप लिखा गया था।
केवल लागू मेमोरी की सामग्री को प्रदर्शित करने के अतिरिक्त, आधुनिक ऑपरेटिंग सिस्टम सामान्यतः क्रैश प्रक्रिया से संबंधित मेमोरी की छवि वाली फ़ाइल या उस प्रक्रिया से संबंधित पता स्थान के भागों की मेमोरी छवियों के साथ-साथ अन्य जानकारी उत्पन्न करते हैं। क्रैश के मूल कारण को निर्धारित करने में उपयोगी प्रोसेसर रजिस्टरों, प्रोग्राम काउंटर, सिस्टम फ्लैग और अन्य जानकारी के मूल्यों के रूप में इन्हे संदर्भित किया जाता है। इन फ़ाइलों को पाठ के रूप में या यूनिक्स पर एल्फडम्प और यूनिक्स जैसी प्रणालियों, लिनक्स पर और केडम्प (लिनक्स), आईबीएम जेड/ओएस पर आईपीसीएस जैसे विशेष उपकरणों के साथ विश्लेषित किया जा सकता है।[7]
कुछ ऑपरेटिंग सिस्टम में[lower-alpha 1] एक एप्लिकेशन या ऑपरेटर एप्लिकेशन या ऑपरेटिंग सिस्टम द्वारा उपयोग किए जाने वाले सभी स्टोरेज के अतिरिक्त चयनित स्टोरेज ब्लॉक के स्नैपशॉट का अनुरोध किया जा सकता है।
उपयोग
कोर डंप कई स्थितियों में उपयोगी डिबगिंग एड्स के रूप में काम कर सकता है। शुरुआती स्टैंडअलोन या प्रचय संसाधन |बैच-प्रोसेसिंग सिस्टम पर, कोर डंप ने उपयोगकर्ता को डिबगिंग के लिए (बहुत महंगी) कंप्यूटिंग सुविधा पर एकाधिकार किए बिना एक प्रोग्राम को डीबग करने की अनुमति दी; सामने का हिस्सा स्विच और लाइट का उपयोग करके डिबगिंग की तुलना में एक प्रिंटआउट अधिक सुविधाजनक हो सकता है।
साझा किए गए कंप्यूटरों पर, चाहे टाइम-शेयरिंग, बैच प्रोसेसिंग, या सर्वर सिस्टम, कोर डंप ऑपरेटिंग सिस्टम की ऑफ-लाइन डिबगिंग की अनुमति देते हैं, ताकि सिस्टम तुरंत ऑपरेशन में वापस जा सके।
कोर डंप एक उपयोगकर्ता को बाद में या ऑफ-साइट विश्लेषण या अन्य क्रैश के साथ तुलना के लिए क्रैश को बचाने की अनुमति देता है। अंतः स्थापित प्रणाली के लिए, कंप्यूटर पर ही डिबगिंग का समर्थन करना अव्यावहारिक हो सकता है, इसलिए डंप का विश्लेषण एक अलग कंप्यूटर पर हो सकता है। कुछ ऑपरेटिंग सिस्टम जैसे कि यूनिक्स के शुरुआती संस्करण चल रही प्रक्रियाओं में डिबगर को जोड़ने का समर्थन नहीं करते थे, इसलिए प्रक्रिया की मेमोरी सामग्री पर डीबगर चलाने के लिए कोर डंप आवश्यक थे।
कोर डंप का उपयोग डायनेमिक मेमोरी आवंटन के दौरान मुक्त किए गए डेटा को कैप्चर करने के लिए किया जा सकता है और इस प्रकार इसका उपयोग उस प्रोग्राम से जानकारी प्राप्त करने के लिए किया जा सकता है जो अब नहीं चल रहा है। एक इंटरैक्टिव डीबगर की अनुपस्थिति में, कोर डंप का उपयोग एक मेहनती प्रोग्रामर द्वारा सीधे परीक्षा से त्रुटि निर्धारित करने के लिए किया जा सकता है।
स्नैप डंप कभी-कभी अनुप्रयोगों के लिए त्वरित और गंदे डिबगिंग आउटपुट रिकॉर्ड करने का एक सुविधाजनक तरीका होता है।
विश्लेषण
एक कोर डंप सामान्यतः डंप की गई प्रक्रिया के पता स्थान के डंप किए गए क्षेत्रों की पूरी सामग्री का प्रतिनिधित्व करता है। ऑपरेटिंग सिस्टम के आधार पर, मेमोरी क्षेत्रों की व्याख्या में सहायता के लिए डंप में कुछ या कोई डेटा संरचना नहीं हो सकती है। इन प्रणालियों में, सफल व्याख्या के लिए आवश्यक है कि डंप की व्याख्या करने का प्रयास करने वाला प्रोग्राम या उपयोगकर्ता प्रोग्राम की मेमोरी उपयोग की संरचना को समझे।
एक डिबगर प्रतीक तालिका का उपयोग कर सकता है, यदि कोई मौजूद है, प्रोग्रामर को डंप की व्याख्या करने में मदद करने के लिए, प्रतीकात्मक रूप से चर की पहचान करने और स्रोत कोड प्रदर्शित करने के लिए; यदि प्रतीक तालिका उपलब्ध नहीं है, तो डंप की कम व्याख्या संभव है, लेकिन समस्या का कारण निर्धारित करने के लिए अभी भी पर्याप्त संभव हो सकता है। डंप का विश्लेषण करने के लिए डंप विश्लेषक नामक विशेष प्रयोजन के उपकरण भी हैं। एक लोकप्रिय उपकरण, जो कई ऑपरेटिंग सिस्टम पर उपलब्ध है, GNU बिनुटिल्स का ओब्जडम्प है।
आधुनिक यूनिक्स-जैसे ऑपरेटिंग सिस्टम पर, प्रशासक और प्रोग्रामर जीएनयू बिनुटिल्स बाइनरी फाइल डिस्क्रिप्टर लाइब्रेरी (बीएफडी), और जीएनयू डीबगर (जीडीबी) और ओब्जडम्प का उपयोग करके कोर डंप फाइलों को पढ़ सकते हैं जो इस लाइब्रेरी का उपयोग करते हैं। यह पुस्तकालय कोर डंप से स्मृति क्षेत्र में दिए गए पते के लिए अपरिष्कृत डेटा की आपूर्ति करेगा; यह उस मेमोरी क्षेत्र में चर या डेटा संरचनाओं के बारे में कुछ भी नहीं जानता है, इसलिए कोर डंप को पढ़ने के लिए लाइब्रेरी का उपयोग करने वाले एप्लिकेशन को चर के पते निर्धारित करने होंगे और डेटा संरचनाओं के लेआउट को स्वयं निर्धारित करना होगा, उदाहरण के लिए प्रतीक तालिका का उपयोग करके डिबगिंग के दौर से गुजर रहे कार्यक्रम के लिए।
लिनक्स सिस्टम से क्रैश डंप के विश्लेषक kdump (Linux) या Linux कर्नेल क्रैश डंप (LKCD) का उपयोग कर सकते हैं।[8] कोर डंप किसी प्रक्रिया के संदर्भ (स्थिति) को बाद में लौटने के लिए किसी दिए गए राज्य में सहेज सकता है। प्रोसेसर के बीच कोर को स्थानांतरित करके सिस्टम को अत्यधिक उपलब्ध कराया जा सकता है, कभी-कभी स्वयं कोर डंप फ़ाइलों के माध्यम से।
कोर को एक नेटवर्क (जो एक सुरक्षा जोखिम है) पर रिमोट होस्ट पर भी डंप किया जा सकता है।[9]
कोर-डंप फ़ाइलें
प्रारूप
पुराने और सरल ऑपरेटिंग सिस्टम में, प्रत्येक प्रक्रिया में एक सन्निहित पता-स्थान होता था, इसलिए डंप फ़ाइल कभी-कभी बाइट्स, अंकों, अंकों के अनुक्रम वाली एक फ़ाइल होती थी।[lower-alpha 2] पात्र[lower-alpha 2] या शब्द। अन्य शुरुआती मशीनों पर एक डंप फ़ाइल में असतत रिकॉर्ड होते थे, प्रत्येक में भंडारण का पता और संबंधित सामग्री होती थी। शुरुआती मशीनों पर, डंप अक्सर एप्लिकेशन या ऑपरेटिंग सिस्टम के बजाय स्टैंड-अलोन डंप प्रोग्राम द्वारा लिखा जाता था।
IBM सिस्टम/360 पर, मानक ऑपरेटिंग सिस्टम ने स्वरूपित ABEND और SNAP डंप लिखे, पते, रजिस्टर, भंडारण सामग्री आदि के साथ, सभी प्रिंट करने योग्य रूपों में परिवर्तित हो गए। बाद में रिलीज ने बिना प्रारूपित लिखने की क्षमता को जोड़ा[lower-alpha 3] डंप, जिसे उस समय कोर इमेज डंप कहा जाता था।
आधुनिक ऑपरेटिंग सिस्टम में, एक प्रोसेस एड्रेस स्पेस में अंतराल हो सकते हैं, और यह अन्य प्रक्रियाओं या फाइलों के साथ पेज साझा कर सकता है, इसलिए अधिक विस्तृत प्रतिनिधित्व का उपयोग किया जाता है; वे डंप के समय कार्यक्रम की स्थिति के बारे में अन्य जानकारी भी सम्मिलित कर सकते हैं।
यूनिक्स जैसी प्रणालियों में, कोर डंप आम तौर पर मानक निष्पादन योग्य छवि-फ़ाइल प्रारूप का उपयोग करते हैं:
- a.out यूनिक्स के पुराने संस्करणों में,
- आधुनिक लिनक्स, यूनिक्स प्रणाली वी ी, सोलारिस (ऑपरेटिंग सिस्टम), और बीएसडी सिस्टम में निष्पादन योग्य और लिंक करने योग्य प्रारूप,
- MacOS में Mach-O, आदि।
हम
OS/360 और उत्तराधिकारी
- OS/360 और उत्तराधिकारियों में, एक कार्य मनमाना डेटा सेट नाम (DSNs) ddnames को असाइन कर सकता है
SYSABEND
औरSYSUDUMP
स्वरूपित ABEND डंप के लिए और SNAP डंप के लिए स्वैच्छिक ddnames के लिए, या उन ddnames को SYSOUT के रूप में परिभाषित करें।[lower-alpha 4] - डैमेज असेसमेंट एंड रिपेयर (DAR) सुविधा ने एक स्वचालित असंरूपित जोड़ा[lower-alpha 6] डेटासेट में डंप करें
SYS1.DUMP
[lower-alpha 7] विफलता के साथ-साथ ऑपरेटर द्वारा अनुरोधित कंसोल डंप के समय। - नया लेन-देन डंप पुराने प्रकार के डंप के समान है।
यूनिक्स की तरह
- सोलारिस 8 के बाद से, सिस्टम उपयोगिता
coreadm
कोर फाइलों के नाम और स्थान को कॉन्फ़िगर करने की अनुमति देता है। - उपयोगकर्ता प्रक्रियाओं के डंप पारंपरिक रूप से बनाए जाते हैं
core
. लिनक्स पर (लिनक्स कर्नेल मेनलाइन के संस्करण 2.4.21 और 2.6 के बाद से), procfs के माध्यम से एक अलग नाम निर्दिष्ट किया जा सकता है/proc/sys/kernel/core_pattern
विन्यास फाइल; निर्दिष्ट नाम एक टेम्प्लेट भी हो सकता है जिसमें टैग्स को प्रतिस्थापित किया जाता है, उदाहरण के लिए, निष्पादन योग्य फ़ाइल नाम, प्रक्रिया आईडी, या डंप का कारण।[11] - आधुनिक यूनिक्स जैसी प्रणालियों पर सिस्टम-वाइड डंप अक्सर दिखाई देते हैं
vmcore
याvmcore.incomplete
.
अन्य
- Microsoft Windows जैसे सिस्टम, जो फ़ाइल नाम एक्सटेंशन का उपयोग करते हैं, एक्सटेंशन का उपयोग कर सकते हैं
.dmp
; उदाहरण के लिए, कोर डंप का नाम दिया जा सकता हैmemory.dmp
या\Minidump\Mini051509-01.dmp
.
विंडोज मेमोरी डंप
Microsoft Windows नीचे वर्णित दो मेमोरी डंप स्वरूपों का समर्थन करता है।
कर्नेल-मोड डंप
पाँच प्रकार के कर्नेल-मोड डंप हैं:[12]
- पूरी मेमोरी डंप – लक्ष्य प्रणाली के लिए पूर्ण भौतिक मेमोरी समाहित करता है।
- कर्नेल मेमोरी डंप – क्रैश के समय कर्नेल द्वारा उपयोग की जाने वाली सभी मेमोरी समाहित करता है।
- छोटी मेमोरी डंप – में स्टॉप कोड, पैरामीटर्स, लोडेड डिवाइस ड्राइवरों की सूची आदि जैसी विभिन्न जानकारी होती है।
- स्वचालित मेमोरी डंप (विंडोज 8 और बाद में) – कर्नेल मेमोरी डंप के समान, लेकिन यदि पेजिंग #PAGEFILE-SYS सिस्टम प्रबंधित और कर्नेल मेमोरी डंप को कैप्चर करने के लिए बहुत छोटा है, तो यह स्वचालित रूप से पेजिंग फ़ाइल को कम से कम चार सप्ताह के लिए रैम के आकार में बढ़ा देगा, फिर इसे कम करें छोटे आकार के लिए।[13]
- सक्रिय मेमोरी डंप (Windows 10 और बाद में) – कर्नेल और उपयोगकर्ता मोड अनुप्रयोगों द्वारा उपयोग की जाने वाली अधिकांश मेमोरी सम्मिलित है।
विंडोज कर्नेल-मोड डंप का विश्लेषण करने के लिए WinDbg का उपयोग किया जाता है।[14]
उपयोगकर्ता-मोड मेमोरी डंप
उपयोगकर्ता-मोड मेमोरी डंप, जिसे मिनीडम्प भी कहा जाता है,[15] एकल प्रक्रिया का मेमोरी डंप है। इसमें चयनित डेटा रिकॉर्ड सम्मिलित हैं: पूर्ण या आंशिक (फ़िल्टर्ड) प्रक्रिया मेमोरी; उनके कॉल स्टैक और स्थिति के साथ थ्रेड (कंप्यूटिंग) की सूची (जैसे प्रोसेसर रजिस्टर या Win32 थ्रेड सूचना ब्लॉक); कर्नेल ऑब्जेक्ट्स को हैंडल (कंप्यूटिंग) के बारे में जानकारी; लोडेड और अनलोडेड डायनामिक-लिंक लाइब्रेरी की सूची। में उपलब्ध विकल्पों की पूरी सूची MINIDUMP_TYPE
एनुम।[16]
अंतरिक्ष मिशन
डीप स्पेस सेगमेंट में नियमित रूप से कोर डंप सुविधा का उपयोग करने के लिए नासा वोयाजर कार्यक्रम संभवतः पहला शिल्प था। डीप स्पेस सेगमेंट के लिए कोर डंप फीचर एक अनिवार्य टेलीमेट्री फीचर है क्योंकि यह सिस्टम डायग्नोस्टिक कॉस्ट को कम करने के लिए सिद्ध हो चुका है[citation needed]. वायेजर शिल्प ब्रह्मांडीय किरण घटनाओं से स्मृति क्षति का पता लगाने के लिए नियमित कोर डंप का उपयोग करता है।
स्पेस मिशन कोर डंप सिस्टम ज्यादातर लक्षित सीपीयू या सबसिस्टम के लिए मौजूदा टूलकिट पर आधारित होते हैं। हालांकि, किसी मिशन की अवधि के दौरान कोर डंप सबसिस्टम को मिशन की विशिष्ट आवश्यकताओं के लिए पर्याप्त रूप से संशोधित या बढ़ाया जा सकता है।
यह भी देखें
- डाटाबेस डंप
- हेक्स डंप
- फाइल कॉपी करना
संदर्भ
- ↑ "AIX 7.1 information".[permanent dead link]
- ↑ Solaris 10 File Formats Reference Manual : Process core file –
- ↑ Cory Janssen. "What is a Database Dump? - Definition from Techopedia". Techopedia.com. Archived from the original on 20 August 2015. Retrieved 29 June 2015.
- ↑ "पूर्ण मेमोरी डंप कैप्चर करने के लिए कंप्यूटर को कैसे कॉन्फ़िगर करें". sophos.com. 12 July 2010. Archived from the original on 1 July 2015. Retrieved 29 June 2015.
- ↑ Oxford English Dictionary, s.v. 'core'
- ↑ "भंडारण डंप परिभाषा". Archived from the original on 2013-05-11. Retrieved 2013-04-03.
- ↑ Rogers, Paul; Carey, David (August 2005). z/OS Diagnostic Data Collection and Analysis (PDF). IBM Corporation. pp. 77–93. ISBN 0738493996. Archived (PDF) from the original on December 21, 2018. Retrieved Jan 29, 2021.
- ↑ Venkateswaran, Sreekrishnan (2008). Essential Linux device drivers. Prentice Hall open source software development series. Prentice Hall. p. 623. ISBN 978-0-13-239655-4. Archived from the original on 2014-06-26. Retrieved 2010-07-15.
Until the advent of kdump, Linux Kernel Crash Dump (LKCD) was the popular mechanism to obtain and analyze dumps.
- ↑ Fedora Documentation Project (2010). Fedora 13 Security Guide. Fultus Corporation. p. 63. ISBN 978-1-59682-214-6. Archived from the original on 2014-06-26. Retrieved 2010-09-29.
Remote memory dump services, like
netdump
, transmit the contents of memory over the network unencrypted. - ↑ "Setting the name-pattern for dump data sets" (PDF). z/OS 2.5 MVS System Commands (PDF). March 25, 2022. pp. 474–475. SA38-0666-50. Retrieved April 6, 2022.
- ↑ "core(5) – Linux manual page". man7.org. 2015-12-05. Archived from the original on 2013-09-20. Retrieved 2016-04-17.
- ↑ "कर्नेल-मोड डंप फ़ाइलों की किस्में". Microsoft. Archived from the original on 22 February 2018. Retrieved 22 February 2018.
- ↑ "स्वचालित मेमोरी डंप" (in English). Microsoft. 28 November 2017. Archived from the original on 17 March 2018. Retrieved 16 March 2018.
- ↑ "WinDbg (कर्नेल-मोड) के साथ प्रारंभ करना". Archived from the original on 14 March 2016. Retrieved 30 September 2014.
- ↑ "मिनीडम्प फ़ाइलें". Archived from the original on 27 October 2014. Retrieved 30 September 2014.
- ↑ "MINIDUMP_TYPE enumeration". Archived from the original on 11 January 2015. Retrieved 30 September 2014.
टिप्पणियाँ
- ↑ E.g., z/OS
- ↑ 2.0 2.1 Some older machines were decimal.
- ↑ In the sense that the records were binary rather than formatted for printing.
- ↑ SYStem OUTput files (SYSOUT) files are temporary files owned by the SPOOL software.
- ↑ Initially the batch utility IMDPRDMP; currently the TSO command and ISPF panel repertoire for Interactive Problem Control System (IPCS).
- ↑ IBM provided tools for extracting and formatting data from an unformatted dump; those tools[lower-alpha 5] often made it easier to deal with an unformatted dump than even a small formatted dump.
- ↑ Since then, IBM added the ability to have up to a hundred dump datasets named
SYS1.DUMPnn
(nn from 00 to 99). z/OS supports multiple system dump data sets with arbitrary dsname patterns under installation and operator[10] control.
बाहरी संबंध
Descriptions of the file format
- Linux Programmer's Manual – File Formats –
- Solaris 10 File Formats Reference Manual –
- HP-UX 11i File Formats Manual –
- FreeBSD File Formats Manual –
- OpenBSD File Formats Manual –
- NetBSD File Formats Manual –
- Darwin and macOS File Formats Manual –
- Minidump files
Kernel core dumps:
- Solaris 10 System Administration Commands Reference Manual –
- Apple Technical Note TN2118: Kernel Core Dumps