क्रैश (कंप्यूटिंग)

कम्प्यूटिंग में, क्रैश या सिस्टम क्रैश तब होता है जब कोई कंप्यूटर प्रोग्राम जैसे सॉफ़्टवेयर एप्लिकेशन या ऑपरेटिंग सिस्टम ठीक से काम करना बंद कर देता है और बाहर निकल जाता है (सिस्टम कॉल)। कुछ ऑपरेटिंग सिस्टम या व्यक्तिगत अनुप्रयोगों पर, एक क्रैश रिपोर्टर क्रैश और उससे संबंधित किसी भी विवरण की रिपोर्ट करेगा (या उपयोगकर्ता को ऐसा करने का विकल्प देगा), आमतौर पर एप्लिकेशन के डेवलपर (सॉफ़्टवेयर)|डेवलपर(रों) को। यदि प्रोग्राम ऑपरेटिंग सिस्टम का एक महत्वपूर्ण हिस्सा है, तो पूरा सिस्टम क्रैश या हैंग हो सकता है, जिसके परिणामस्वरूप अक्सर कर्नेल पैनिक या घातक सिस्टम त्रुटि होती है।

अधिकांश क्रैश सॉफ्टवेयर बग का परिणाम होते हैं। विशिष्ट कारणों में विखंडन दोष, कार्यक्रम गणक में गलत पता स्थान वैल्यू, बफ़र अधिकता, पहले की बग के कारण प्रभावित प्रोग्राम कोड के एक हिस्से को ओवरराइट करना, अमान्य मशीन निर्देशों को निष्पादित करना (एक अवैध ऑपकोड), या एक अनहेल्ड एक्सेप्शन हेंडलिंग को ट्रिगर करना शामिल है। घटनाओं की इस श्रृंखला को शुरू करने वाले मूल सॉफ़्टवेयर बग को आमतौर पर क्रैश का कारण माना जाता है, जिसे डिबगिंग की प्रक्रिया के माध्यम से खोजा जाता है। मूल बग को उस स्रोत कोड से दूर किया जा सकता है जिसने वास्तव में क्रैश को ट्रिगर किया था।

प्रारंभिक व्यक्तिगत कंप्यूटरों में, सिस्टम की मुख्य मेमोरी के बाहर हार्डवेयर पतों पर डेटा लिखने का प्रयास करने से हार्डवेयर क्षति हो सकती है। कुछ क्रैश एक्सप्लॉइट (कंप्यूटर सुरक्षा) हैं और एक दुर्भावनापूर्ण प्रोग्राम या हैकर को कंप्यूटर वायरस की प्रतिकृति या डेटा के अधिग्रहण की अनुमति देने वाले मनमाना कोड निष्पादन को निष्पादित करते हैं जो सामान्य रूप से दुर्गम होगा।

एप्लिकेशन क्रैश
एक अनुप्रयोग प्रक्रिया सामग्री आमतौर पर क्रैश हो जाता है जब यह एक ऑपरेशन करता है जो ऑपरेटिंग सिस्टम द्वारा अनुमत नहीं है। ऑपरेटिंग सिस्टम तब एप्लिकेशन में एक अपवाद हैंडलिंग या सिग्नल (IPC) को ट्रिगर करता है। यूनिक्स अनुप्रयोगों ने परंपरागत रूप से कोर निपात द्वारा सिग्नल का जवाब दिया। अधिकांश विंडोज और यूनिक्स ग्राफिकल यूज़र इंटरफ़ेस एप्लिकेशन एक डायलॉग बॉक्स (जैसे कि दाईं ओर दिखाया गया है) प्रदर्शित करके प्रतिक्रिया देते हैं, यदि कोई डिबगर स्थापित है तो उसे संलग्न करने का विकल्प होता है। कुछ एप्लिकेशन त्रुटि से पुनर्प्राप्त करने का प्रयास करते हैं और बाहर निकलने (सिस्टम कॉल) के बजाय चलना जारी रखते हैं।

किसी एप्लिकेशन में क्रैश करने के लिए कोड भी हो सकता है एक गंभीर त्रुटि का पता लगाने के बाद।

एप्लिकेशन क्रैश होने वाली विशिष्ट त्रुटियों में शामिल हैं:
 * उस मेमोरी को पढ़ने या लिखने का प्रयास करना जो उस एप्लिकेशन द्वारा पढ़ने या लिखने के लिए आवंटित नहीं की गई है (उदाहरण के लिए, सेगमेंटेशन गलती, x86-विशिष्ट सामान्य सुरक्षा गलती)
 * विशेषाधिकार प्राप्त या अमान्य निर्देशों को निष्पादित करने का प्रयास
 * कम्पुटर के वो भाग जिसे छूकर मेहसूस किया जा सके उपकरणों पर I/O संचालन करने का प्रयास करना जिसके लिए इसे एक्सेस करने की अनुमति नहीं है
 * सिस्टम कॉल में अमान्य तर्क पास करना
 * ऐसे अन्य सिस्टम संसाधनों तक पहुँचने का प्रयास करना जिनके लिए एप्लिकेशन को एक्सेस करने की अनुमति नहीं है
 * खराब तर्कों के साथ मशीन निर्देशों को निष्पादित करने का प्रयास (सीपीयू आर्किटेक्चर के आधार पर): शून्य से विभाजन, असामान्य संख्या या NaN (संख्या नहीं) मानों पर संचालन, बस त्रुटि तक स्मृति पहुंच इत्यादि।

डेस्कटॉप पर क्रैश
डेस्कटॉप क्रैश तब होता है जब एक कंप्यूटर प्रोग्राम (आमतौर पर एक वीडियो गेम) अप्रत्याशित रूप से बंद हो जाता है, अचानक उपयोगकर्ता को डेस्कटॉप रूपक पर वापस ले जाता है। आमतौर पर, यह शब्द केवल क्रैश के लिए लागू होता है जहां कोई त्रुटि प्रदर्शित नहीं होती है, इसलिए क्रैश के परिणामस्वरूप सभी उपयोगकर्ता डेस्कटॉप को देखते हैं। कई बार कोई स्पष्ट कार्रवाई नहीं होती है जिससे डेस्कटॉप क्रैश हो जाता है। सामान्य कार्य के दौरान, प्रोग्राम कम समय के लिए हैंग (कंप्यूटिंग) हो सकता है, और फिर अपने आप बंद हो सकता है। इसके अलावा सामान्य कार्य के दौरान, प्रोग्राम मौत की काली स्क्रीन बन सकता है और बार-बार ध्वनि के अंतिम कुछ सेकंड (ऑडियो डेटा बफर के आकार के आधार पर) चला सकता है जो कि डेस्कटॉप पर क्रैश होने से पहले चलाया जा रहा था। दूसरी बार ऐसा प्रतीत हो सकता है कि किसी क्षेत्र को लोड करने जैसे किसी निश्चित क्रिया द्वारा घटना-संचालित प्रोग्रामिंग किया गया हो।

क्रैश टू डेस्कटॉप बग उपयोगकर्ताओं के लिए विशेष रूप से समस्याग्रस्त माने जाते हैं। चूंकि वे अक्सर कोई त्रुटि संदेश प्रदर्शित नहीं करते हैं, इसलिए समस्या के स्रोत को ट्रैक करना बहुत मुश्किल हो सकता है, खासकर यदि वे बार-बार होते हैं और दुर्घटना से ठीक पहले होने वाली कार्रवाइयों में कोई पैटर्न या सामान्य आधार नहीं दिखता है। खेलों के लिए समस्या के स्रोत को ट्रैक करने का एक तरीका उन्हें विंडो-मोड में चलाना है। Windows Vista में एक सुविधा है जो किसी CTD समस्या के कारण को ट्रैक करने में मदद कर सकती है जब यह किसी प्रोग्राम पर होती है। विंडोज एक्सपी में भी इसी तरह की सुविधा शामिल थी। कुछ कंप्यूटर प्रोग्राम, जैसे कि स्टेपमेनिया और बीबीसी के बामज़ूकी, फ़ुल-स्क्रीन में होने पर डेस्कटॉप पर भी क्रैश हो जाते हैं, लेकिन उपयोगकर्ता के डेस्कटॉप पर वापस आने पर त्रुटि को एक अलग विंडो में प्रदर्शित करते हैं।

वेब सर्वर क्रैश
किसी वेबसाइट के पीछे वेब सर्वर चलाने वाला सॉफ़्टवेयर क्रैश हो सकता है, इसे पूरी तरह से दुर्गम बना सकता है या सामान्य सामग्री के बजाय केवल एक त्रुटि संदेश प्रदान कर सकता है।

उदाहरण के लिए: यदि कोई साइट किसी स्क्रिप्ट (जैसे PHP) के लिए SQL डेटाबेस (जैसे MySQL) का उपयोग कर रही है और SQL डेटाबेस सर्वर क्रैश हो जाता है, तो PHP एक कनेक्शन त्रुटि प्रदर्शित करेगा।

ऑपरेटिंग सिस्टम क्रैश
एक ऑपरेटिंग सिस्टम क्रैश आमतौर पर तब होता है जब हार्डवेयर में अपवाद हैंडलिंग # अपवाद हैंडलिंग होती है जो अपवाद हैंडलिंग नहीं हो सकती है। ऑपरेटिंग सिस्टम क्रैश तब भी हो सकता है जब आंतरिक विवेक जांच | ऑपरेटिंग सिस्टम के भीतर विवेक-जांच तर्क यह पता लगाता है कि ऑपरेटिंग सिस्टम ने अपनी आंतरिक आत्म-स्थिरता खो दी है।

आधुनिक मल्टी-टास्किंग ऑपरेटिंग सिस्टम, जैसे कि लिनक्स, और मैकओएस, आमतौर पर किसी एप्लिकेशन प्रोग्राम के क्रैश होने पर अप्रभावित रहते हैं।

कुछ ऑपरेटिंग सिस्टम, जैसे, z/OS, में विश्वसनीयता, उपलब्धता और सेवाक्षमता (RAS) के लिए सुविधाएं हैं और OS एक महत्वपूर्ण घटक के क्रैश से उबर सकता है, चाहे वह हार्डवेयर विफलता के कारण हो, उदाहरण के लिए, अचूक ECC त्रुटि, या सॉफ़्टवेयर विफलता के कारण, उदाहरण के लिए, असाइन न किए गए पेज का संदर्भ.

दुर्घटनाओं की सुरक्षा और गोपनीयता निहितार्थ
एप्लिकेशन के आधार पर, क्रैश में उपयोगकर्ता की संवेदनशील और निजी जानकारी हो सकती है। इसके अलावा, कई सॉफ़्टवेयर बग जो क्रैश का कारण बनते हैं, मनमाना कोड निष्पादन और अन्य प्रकार के विशेषाधिकार वृद्धि के लिए एक्सप्लॉइट (कंप्यूटर सुरक्षा) भी हैं। उदाहरण के लिए, एक ढेर बफर अतिप्रवाह एक सबरूटीन के वापसी पते को एक अमान्य मान के साथ अधिलेखित कर सकता है, जो उपनेमका के वापस आने पर, उदाहरण के लिए, एक विभाजन दोष का कारण होगा। हालाँकि, यदि कोई शोषण वैध मान के साथ वापसी पते को अधिलेखित कर देता है, तो उस पते का कोड निष्पादित हो जाएगा।

क्रैश प्रजनन
जब क्रैश रिपोर्टर का उपयोग करके फ़ील्ड में क्रैश एकत्र किए जाते हैं, तो डेवलपर्स के लिए अगला कदम उन्हें स्थानीय रूप से पुन: उत्पन्न करने में सक्षम होना है। इसके लिए कई तकनीकें मौजूद हैं: स्टार प्रतीकात्मक निष्पादन का उपयोग करता है, MuCrash दुर्घटनाग्रस्त होने वाले एप्लिकेशन के परीक्षण कोड को बदल देता है, और EvoCrash विकासवादी खोज करता है।

यह भी देखें

 * मौत के नीले स्क्रीन
 * क्रैश-ओनली सॉफ्टवेयर
 * डेटा हानि
 * गुरु ध्यान
 * स्मृति भ्रष्टाचार
 * रीबूट
 * सुरक्षित मोड
 * सिस्टम रेस्क्यू सीडी
 * अपरिभाषित व्यवहार

इस पेज में लापता आंतरिक लिंक की सूची

 * बाहर निकलें (सिस्टम कॉल)
 * शोषण (कंप्यूटर सुरक्षा)
 * सोर्स कोड
 * अवैध ओपकोड
 * घातक प्रणाली त्रुटि
 * डेवलपर (सॉफ्टवेयर)
 * फ्रैंकफर्ट हवाई अड्डा
 * सिग्नल (आईपीसी)
 * सामान्य संरक्षण त्रुटि
 * आवाज़
 * मौत के नीले स्क्रीन
 * मैक ओ एस
 * मानसिक स्वास्थ्य की जांच
 * मेमोरी भ्रष्टाचार
 * गुरु जोड़ जोड़

बाहरी कड़ियाँ

 * Picking Up The Pieces After A Computer Crash