Core dump
কম্পিউটিং-এ, একটি কোর ডাম্প, মেমরি ডাম্প, ক্র্যাশ ডাম্প, স্টোরেজ ডাম্প, সিস্টেম ডাম্প বা এবিইএনডি ডাম্প একটি নির্দিষ্ট সময়ে একটি কম্পিউটার প্রোগ্রামের ওয়ার্কিং মেমরির রেকর্ডকৃত অবস্থা নিয়ে গঠিত, সাধারণত যখন প্রোগ্রামটি ক্র্যাশ হয়ে যায় বা অন্যথায় অস্বাভাবিকভাবে শেষ হয়ে যায়। বাস্তবে, প্রসেসর রেজিস্টার সহ প্রোগ্রাম অবস্থার অন্যান্য মূল অংশগুলি সাধারণত একই সময়ে ফেলে দেওয়া হয়, যার মধ্যে প্রোগ্রাম কাউন্টার এবং স্ট্যাক পয়েন্টার, মেমরি পরিচালনার তথ্য এবং অন্যান্য প্রসেসর এবং অপারেটিং সিস্টেমের পতাকা এবং তথ্য অন্তর্ভুক্ত থাকতে পারে। একটি স্ন্যাপশট ডাম্প (বা স্ন্যাপ ডাম্প) হল কম্পিউটার অপারেটর বা চলমান প্রোগ্রাম দ্বারা অনুরোধ করা একটি মেমরি ডাম্প, যার পরে প্রোগ্রামটি চালিয়ে যেতে সক্ষম হয়। কোর ডাম্পগুলি প্রায়শই কম্পিউটার প্রোগ্রামগুলিতে ত্রুটি নির্ণয় এবং ডিবাগিংয়ে সহায়তা করতে ব্যবহৃত হয়। অনেক অপারেটিং সিস্টেমে, একটি প্রোগ্রামে একটি মারাত্মক ব্যতিক্রম স্বয়ংক্রিয়ভাবে একটি মূল ডাম্পকে ট্রিগার করে। এক্সটেনশন দ্বারা, "কোর ডাম্প করা" বাক্যাংশটির অর্থ অনেক ক্ষেত্রে, যে কোনও মারাত্মক ত্রুটি, প্রোগ্রাম মেমরির রেকর্ড বিদ্যমান কিনা তা নির্বিশেষে। "কোর ডাম্প", "মেমোরি ডাম্প" বা কেবল "ডাম্প" শব্দটিও আরও পরীক্ষা বা অন্যান্য উদ্দেশ্যে প্রচুর পরিমাণে কাঁচা তথ্যের যে কোনও আউটপুট নির্দেশ করার জন্য জার্গন হয়ে উঠেছে। পটভূমি নামটি চৌম্বকীয়-কোর মেমরি থেকে এসেছে, যা 1950 থেকে 1970-এর দশক পর্যন্ত র্যান্ডম-অ্যাক্সেস মেমরির প্রধান রূপ। ম্যাগনেটিক-কোর প্রযুক্তি অপ্রচলিত হওয়ার পরেও নামটি দীর্ঘকাল ধরে রয়ে গেছে। প্রাচীনতম মূল ডাম্পগুলি ছিল স্মৃতির বিষয়বস্তুর কাগজের প্রিন্টআউট, সাধারণত অষ্টক বা হেক্সাডেসিমেল সংখ্যার কলামে সাজানো (একটি "হেক্স ডাম্প"), কখনও কখনও যান্ত্রিক ভাষার নির্দেশাবলী, পাঠ্য স্ট্রিং বা দশমিক বা ভাসমান-বিন্দু সংখ্যা (সিএফ। বিচ্ছিন্নকারী)। স্মৃতির আকার বাড়ার সাথে সাথে এবং ময়নাতদন্ত বিশ্লেষণের উপযোগিতাগুলি বিকশিত হওয়ার সাথে সাথে টেপ বা ডিস্কের মতো চৌম্বকীয় মাধ্যমগুলিতে ডাম্পগুলি লেখা হত। শুধুমাত্র প্রযোজ্য মেমরির বিষয়বস্তু প্রদর্শন করার পরিবর্তে, আধুনিক অপারেটিং সিস্টেমগুলি সাধারণত একটি ফাইল তৈরি করে যা ক্র্যাশ হওয়া প্রক্রিয়াটির সাথে সম্পর্কিত মেমরির একটি চিত্র বা সেই প্রক্রিয়াটির সাথে সম্পর্কিত ঠিকানা স্থানের অংশগুলির মেমরি চিত্র সহ অন্যান্য তথ্য যেমন প্রসেসর রেজিস্টার, প্রোগ্রাম কাউন্টার, সিস্টেম ফ্ল্যাগ এবং ক্র্যাশের মূল কারণ নির্ধারণে দরকারী অন্যান্য তথ্য। এই ফাইলগুলি ইউনিক্স এবং ইউনিক্স-সদৃশ সিস্টেমে এলফডাম্প, লিনাক্সে ওবজডাম্প এবং কেডাম্প, আইবিএম জেড/ওএস-এ আইপিসিএস (ইন্টারেক্টিভ প্রবলেম কন্ট্রোল সিস্টেম), আইবিএম জেড/ভিএম-এ ডিভিএফ (ডাম্প ভিউইং ফেসিলিটি), মাইক্রোসফ্ট উইন্ডোজে উইনডিবিজি, ভালগ্রিন্ড বা অন্যান্য ডিবাগারের মতো বিশেষ সরঞ্জামগুলি দিয়ে লেখা, মুদ্রিত বা বিশ্লেষণ করা যেতে পারে। কিছু অপারেটিং সিস্টেমে কোনও অ্যাপ্লিকেশন বা অপারেটর অ্যাপ্লিকেশন বা অপারেটিং সিস্টেম দ্বারা ব্যবহৃত সমস্ত স্টোরেজের পরিবর্তে নির্বাচিত স্টোরেজ ব্লকের একটি স্ন্যাপশটের অনুরোধ করতে পারে। ব্যবহার কোর ডাম্পগুলি বিভিন্ন পরিস্থিতিতে দরকারী ডিবাগিং সহায়ক হিসাবে কাজ করতে পারে। প্রাথমিক স্বতন্ত্র বা ব্যাচ-প্রসেসিং সিস্টেমে, কোর ডাম্পগুলি ব্যবহারকারীকে ডিবাগিংয়ের জন্য (অত্যন্ত ব্যয়বহুল) কম্পিউটিং সুবিধার একচেটিয়া অধিকার ছাড়াই একটি প্রোগ্রাম ডিবাগ করার অনুমতি দেয়; ফ্রন্ট প্যানেল সুইচ এবং লাইট ব্যবহার করে ডিবাগ করার চেয়ে একটি প্রিন্টআউট আরও সুবিধাজনক হতে পারে। ভাগ করা কম্পিউটারে, সময় ভাগ করে নেওয়া, ব্যাচ প্রসেসিং বা সার্ভার সিস্টেম যাই হোক না কেন, কোর ডাম্পগুলি অপারেটিং সিস্টেমের অফ-লাইন ডিবাগিংয়ের অনুমতি দেয়, যাতে সিস্টেমটি অবিলম্বে কাজে ফিরে যেতে পারে। কোর ডাম্পগুলি ব্যবহারকারীকে পরে বা অফ-সাইট বিশ্লেষণের জন্য বা অন্যান্য ক্র্যাশের সাথে তুলনার জন্য একটি ক্র্যাশ সংরক্ষণ করার অনুমতি দেয়। এমবেডেড কম্পিউটারের জন্য, কম্পিউটারে ডিবাগিং সমর্থন করা অবাস্তব হতে পারে, তাই একটি ডাম্পের বিশ্লেষণ অন্য কম্পিউটারে হতে পারে। কিছু অপারেটিং সিস্টেম যেমন ইউনিক্সের প্রাথমিক সংস্করণগুলি চলমান প্রক্রিয়াগুলিতে ডিবাগারগুলিকে সংযুক্ত করতে সহায়তা করে না, তাই কোনও প্রক্রিয়ার মেমরি সামগ্রীতে ডিবাগার চালানোর জন্য মূল ডাম্পগুলি প্রয়োজনীয় ছিল। কোর ডাম্পগুলি গতিশীল মেমরি বরাদ্দের সময় মুক্ত ডেটা ক্যাপচার করতে ব্যবহার করা যেতে পারে এবং এইভাবে একটি প্রোগ্রাম থেকে তথ্য পুনরুদ্ধার করতে ব্যবহার করা যেতে পারে যা আর চলছে না। ইন্টারেক্টিভ ডিবাগারের অনুপস্থিতিতে, সরাসরি পরীক্ষা থেকে ত্রুটি নির্ধারণের জন্য একজন পরিশ্রমী প্রোগ্রামার দ্বারা মূল ডাম্প ব্যবহার করা যেতে পারে। স্ন্যাপ ডাম্পগুলি কখনও কখনও অ্যাপ্লিকেশনগুলির জন্য দ্রুত এবং নোংরা ডিবাগিং আউটপুট রেকর্ড করার একটি সুবিধাজনক উপায়। বিশ্লেষণ একটি মূল ডাম্প সাধারণত ডাম্পিং প্রক্রিয়ার ঠিকানা স্থানের ডাম্পিং অঞ্চলের সম্পূর্ণ সামগ্রীর প্রতিনিধিত্ব করে। অপারেটিং সিস্টেমের উপর নির্ভর করে, মেমরি অঞ্চলের ব্যাখ্যায় সহায়তা করার জন্য ডাম্পে কয়েকটি বা কোনও ডেটা স্ট্রাকচার থাকতে পারে না। এই ব্যবস্থাগুলিতে, সফল ব্যাখ্যার জন্য প্রয়োজন যে প্রোগ্রাম বা ব্যবহারকারী ডাম্পকে ব্যাখ্যা করার চেষ্টা করছেন প্রোগ্রামের মেমরি ব্যবহারের কাঠামো বুঝতে পারেন। একজন ডিবাগার একটি প্রতীক টেবিল ব্যবহার করতে পারে, যদি একটি বিদ্যমান থাকে, প্রোগ্রামারকে ডাম্পগুলি ব্যাখ্যা করতে, ভেরিয়েবলগুলি প্রতীকীভাবে সনাক্ত করতে এবং সোর্স কোড প্রদর্শন করতে সহায়তা করতে; যদি প্রতীক টেবিলটি উপলব্ধ না হয়, তবে ডাম্পের কম ব্যাখ্যা সম্ভব, তবে সমস্যার কারণ নির্ধারণ করার জন্য এখনও যথেষ্ট সম্ভব হতে পারে। ডাম্প বিশ্লেষণের জন্য ডাম্প বিশ্লেষক নামে বিশেষ উদ্দেশ্যমূলক সরঞ্জামও রয়েছে। একটি জনপ্রিয় সরঞ্জাম, যা অনেক অপারেটিং সিস্টেমে পাওয়া যায়, তা হল জি. এন. ইউ. বাইনুটিলস ও. বি. জে. ডাম্প। আধুনিক ইউনিক্স-সদৃশ অপারেটিং সিস্টেমে, প্রশাসক এবং প্রোগ্রামাররা জিএনইউ বিনুটিলস বাইনারি ফাইল ডিস্ক্রিপ্টর লাইব্রেরি (বিএফডি) এবং জিএনইউ ডিবাগার (জিডিবি) এবং এই লাইব্রেরি ব্যবহার করে মূল ডাম্প ফাইলগুলি পড়তে পারেন। এই লাইব্রেরি একটি মূল ডাম্প থেকে একটি মেমরি অঞ্চলে প্রদত্ত ঠিকানার জন্য কাঁচা ডেটা সরবরাহ করবে; এটি সেই মেমরি অঞ্চলের ভেরিয়েবল বা ডেটা স্ট্রাকচার সম্পর্কে কিছুই জানে না, তাই মূল ডাম্পটি পড়ার জন্য লাইব্রেরি ব্যবহার করে অ্যাপ্লিকেশনটিকে ভেরিয়েবলের ঠিকানা নির্ধারণ করতে হবে এবং ডেটা স্ট্রাকচারের বিন্যাস নিজেই নির্ধারণ করতে হবে, উদাহরণস্বরূপ ডিবাগিংয়ের মধ্য দিয়ে যাওয়া প্রোগ্রামের জন্য প্রতীক টেবিল ব্যবহার করে। লিনাক্স সিস্টেম থেকে ক্র্যাশ ডাম্পের বিশ্লেষকরা কেডাম্প বা লিনাক্স কার্নেল ক্র্যাশ ডাম্প (এলকেসিডি) ব্যবহার করতে পারেন। কোর ডাম্পগুলি একটি নির্দিষ্ট অবস্থায় কোনও প্রক্রিয়ার প্রসঙ্গ (অবস্থা) পরে ফিরে আসার জন্য সংরক্ষণ করতে পারে। প্রসেসরগুলির মধ্যে কোর স্থানান্তর করে, কখনও কখনও কোর ডাম্প ফাইলগুলির মাধ্যমে সিস্টেমগুলি অত্যন্ত উপলব্ধ করা যেতে পারে। একটি নেটওয়ার্কের মাধ্যমে দূরবর্তী হোস্টেও কোর নিক্ষেপ করা যেতে পারে (যা একটি নিরাপত্তা ঝুঁকি)। কোর-ডাম্প ফাইল ফরম্যাট পুরোনো এবং সহজ অপারেটিং সিস্টেমে, প্রতিটি প্রক্রিয়ার একটি সংলগ্ন ঠিকানা-স্থান ছিল, তাই একটি ডাম্প ফাইল কখনও কখনও কেবল একটি ফাইল ছিল যার ক্রম ছিল বাইট, সংখ্যা, অক্ষর বা শব্দের। অন্যান্য প্রাথমিক মেশিনে একটি ডাম্প ফাইলে পৃথক রেকর্ড থাকে, যার প্রত্যেকটিতে একটি স্টোরেজ ঠিকানা এবং সংশ্লিষ্ট বিষয়বস্তু থাকে। প্রাথমিক মেশিনে, ডাম্প প্রায়শই অ্যাপ্লিকেশন বা অপারেটিং সিস্টেমের পরিবর্তে একটি স্বতন্ত্র ডাম্প প্রোগ্রাম দ্বারা লেখা হত। আইবিএম সিস্টেম/360-এ, স্ট্যান্ডার্ড অপারেটিং সিস্টেমগুলি ঠিকানা, রেজিস্টার, স্টোরেজ বিষয়বস্তু ইত্যাদি সহ ফরম্যাট করা এবিইএনডি এবং এসএনএপি ডাম্প লিখেছিল, সবগুলিই মুদ্রণযোগ্য আকারে রূপান্তরিত হয়েছিল। পরবর্তী প্রকাশগুলি বিন্যাসহীন ডাম্প লেখার ক্ষমতা যুক্ত করেছিল, যা সেই সময়ে মূল চিত্র ডাম্প নামে পরিচিত ছিল। আধুনিক অপারেটিং সিস্টেমে, একটি প্রসেস অ্যাড্রেস স্পেসে ফাঁক থাকতে পারে এবং এটি অন্যান্য প্রক্রিয়া বা ফাইলের সাথে পৃষ্ঠাগুলি ভাগ করে নিতে পারে, তাই আরও বিস্তৃত উপস্থাপনা ব্যবহার করা হয়; এগুলিতে ডাম্পের সময় প্রোগ্রামের অবস্থা সম্পর্কে অন্যান্য তথ্যও অন্তর্ভুক্ত থাকতে পারে। ইউনিক্স-সদৃশ সিস্টেমে, কোর ডাম্পগুলি সাধারণত স্ট্যান্ডার্ড এক্সিকিউটেবল ইমেজ-ফরম্যাট ব্যবহার করেঃ ইউনিক্সের পুরানো সংস্করণগুলিতে a.out, আধুনিক লিনাক্সে ইএলএফ, সিস্টেম ভি, সোলারিস এবং বিএসডি সিস্টেমগুলিতে, ম্যাকোস ইত্যাদিতে ম্যাক-ও। ওএস/360 এবং উত্তরসূরিদের নামকরণ ওএস/360 এবং উত্তরসূরিদের মধ্যে, একটি কাজ ফর্ম্যাট করা এবিইএনডি ডাম্পের জন্য সিএসএবিইএনডি এবং সিএসইউডিইউএমপি এবং এসএনএপি ডাম্পের জন্য নির্বিচারে ডিডিনামগুলিতে নির্বিচারে ডেটা সেট নাম (ডিএসএন) বরাদ্দ করতে পারে, অথবা সেই ডিডিনামগুলিকে সিএসওইউটি হিসাবে সংজ্ঞায়িত করতে পারে। ড্যামেজ অ্যাসেসমেন্ট অ্যান্ড রিপেয়ার (ডিএআর) সুবিধাটি ব্যর্থতার সময় ডেটাসেট SYS1.DUMP-এ একটি স্বয়ংক্রিয় আনফরম্যাটেড স্টোরেজ ডাম্প যোগ করার পাশাপাশি অপারেটর দ্বারা অনুরোধ করা একটি কনসোল ডাম্প যোগ করে। নতুন লেনদেনের ডাম্পটি পুরানো ধরণের ডাম্পের সাথে খুব মিল। ইন্টারেক্টিভ প্রবলেম কন্ট্রোল সিস্টেম (আইপিসিএস), সিলেক্টেবল ইউনিট (এসইউ) 57 দ্বারা ওএস/ভিএস2-এ যোগ করা হয়েছে এবং পরবর্তী প্রতিটি এমভিএস রিলিজের অংশ, ডিএএসডি-তে স্টোরেজ ডাম্পগুলি ইন্টারেক্টিভভাবে বিশ্লেষণ করতে ব্যবহার করা যেতে পারে। আইপিসিএস সিস্টেম কন্ট্রোল ব্লকের বিন্যাস এবং সম্পর্কগুলি বোঝে এবং বিশ্লেষণের জন্য একটি বিন্যাসিত প্রদর্শন তৈরি করতে পারে। আই. পি. সি. এস-এর বর্তমান সংস্করণগুলি প্রথমে স্টোরেজ ডাম্প না নিয়ে সক্রিয় অ্যাড্রেস স্পেসগুলির পরিদর্শনের অনুমতি দেয়। ইউনিক্সের মতো সোলারিস 8 থেকে, সিস্টেম ইউটিলিটি কোরএডিএম মূল ফাইলগুলির নাম এবং অবস্থান কনফিগার করার অনুমতি দেয়। ব্যবহারকারী প্রক্রিয়াগুলির ডাম্পগুলি ঐতিহ্যগতভাবে মূল হিসাবে তৈরি করা হয়। লিনাক্সে (লিনাক্স কার্নেল মেইনলাইনের সংস্করণ 2.4.21 এবং 2.6 থেকে),/প্রোক/সিস/কার্নেল/কোর _ প্যাটার্ন কনফিগারেশন ফাইল ব্যবহার করে প্রোকফসের মাধ্যমে একটি ভিন্ন নাম নির্দিষ্ট করা যেতে পারে; নির্দিষ্ট নামটি এমন একটি টেমপ্লেটও হতে পারে যাতে ট্যাগগুলি প্রতিস্থাপিত থাকে, উদাহরণস্বরূপ, এক্সিকিউটেবল ফাইলের নাম, প্রসেস আইডি বা ডাম্পের কারণ। আধুনিক ইউনিক্স-সদৃশ সিস্টেমে সিস্টেম-ওয়াইড ডাম্পগুলি প্রায়শই ভি. এম. কোর বা vmcore.incomplete হিসাবে প্রদর্শিত হয়। অন্যান্য সিস্টেম যেমন মাইক্রোসফ্ট উইন্ডোজ, যা ফাইলের নাম এক্সটেনশন ব্যবহার করে, এক্সটেনশন. ডি. এম. পি ব্যবহার করতে পারে; উদাহরণস্বরূপ, মূল ডাম্পগুলির নাম memory.dmp বা \মিনিডাম্প\ Mini051509-01.dmp হতে পারে। উইন্ডোজ মেমরি ডাম্প মাইক্রোসফ্ট উইন্ডোজ দুটি মেমরি ডাম্প ফরম্যাট সমর্থন করে, যা নীচে বর্ণনা করা হয়েছে। কার্নেল-মোড ডাম্প পাঁচ ধরনের কার্নেল-মোড ডাম্প রয়েছেঃ সম্পূর্ণ মেমরি ডাম্পে টার্গেট সিস্টেমের জন্য সম্পূর্ণ শারীরিক মেমরি থাকে। কার্নেল মেমরি ডাম্পে ক্র্যাশের সময় কার্নেল দ্বারা ব্যবহৃত সমস্ত মেমরি থাকে। ছোট মেমরি ডাম্পে বিভিন্ন তথ্য থাকে যেমন স্টপ কোড, প্যারামিটার, লোড করা ডিভাইস ড্রাইভারের তালিকা ইত্যাদি। স্বয়ংক্রিয় মেমরি ডাম্প (উইন্ডোজ 8 এবং পরবর্তী) কার্নেল মেমরি ডাম্পের মতোই, তবে পেজিং ফাইলটি যদি সিস্টেম পরিচালিত হয় এবং কার্নেল মেমরি ডাম্প ক্যাপচার করার জন্য খুব ছোট হয়, তবে এটি স্বয়ংক্রিয়ভাবে পেজিং ফাইলটিকে কমপক্ষে চার সপ্তাহের জন্য র্যামের আকারে বাড়িয়ে দেবে, তারপরে এটিকে ছোট আকারে কমিয়ে আনবে। সক্রিয় মেমরি ডাম্পে (উইন্ডোজ 10 এবং পরবর্তী) কার্নেল এবং ব্যবহারকারী মোড অ্যাপ্লিকেশন দ্বারা ব্যবহৃত বেশিরভাগ মেমরি থাকে। উইন্ডোজ কার্নেল-মোড ডাম্প বিশ্লেষণ করতে উইন্ডোজের জন্য ডিবাগিং টুল ব্যবহার করা হয়। ব্যবহারকারী-মোড মেমরি ডাম্প ব্যবহারকারী-মোড মেমরি ডাম্প, যা মিনিডাম্প নামেও পরিচিত, একটি একক প্রক্রিয়ার মেমরি ডাম্প। এতে নির্বাচিত ডেটা রেকর্ড রয়েছেঃ পূর্ণ বা আংশিক (ফিল্টার করা) প্রসেস মেমরি; তাদের কল স্ট্যাক এবং স্টেট সহ থ্রেডগুলির তালিকা (যেমন রেজিস্টার বা টিইবি); কার্নেল অবজেক্টগুলিতে হ্যান্ডেল সম্পর্কে তথ্য; লোড করা এবং আনলোড করা লাইব্রেরির তালিকা। MINIDUMP _ TYPE enum-এ উপলব্ধ বিকল্পগুলির সম্পূর্ণ তালিকা। নাসা ভয়েজার প্রোগ্রাম সম্ভবত প্রথম নৈপুণ্য যা ডিপ স্পেস সেগমেন্টে নিয়মিতভাবে মূল ডাম্প বৈশিষ্ট্যটি ব্যবহার করে। ডিপ স্পেস বিভাগের জন্য মূল ডাম্প বৈশিষ্ট্যটি একটি বাধ্যতামূলক টেলিমেট্রি বৈশিষ্ট্য কারণ এটি সিস্টেম ডায়াগনস্টিক খরচ হ্রাস করতে প্রমাণিত হয়েছে। ভয়েজার ক্রাফ্ট মহাজাগতিক রশ্মির ঘটনা থেকে স্মৃতির ক্ষতি সনাক্ত করতে রুটিন কোর ডাম্প ব্যবহার করে। স্পেস মিশন কোর ডাম্প সিস্টেমগুলি বেশিরভাগই টার্গেট সিপিইউ বা সাবসিস্টেমের জন্য বিদ্যমান টুলকিটের উপর ভিত্তি করে তৈরি। যাইহোক, একটি মিশনের সময়কালে মূল ডাম্প সাবসিস্টেমটি মিশনের নির্দিষ্ট প্রয়োজনের জন্য যথেষ্ট পরিমাণে সংশোধন বা উন্নত করা যেতে পারে। আরও দেখুন ডাটাবেস ডাম্প হেক্স ডাম্প ফাইল অনুলিপি রেফারেন্স নোট বাহ্যিক লিঙ্ক মিনিডাম্প ফাইলের বিন্যাসের বিবরণ কার্নেল কোর ডাম্পঃ অ্যাপল টেকনিক্যাল নোট টিএন2118: কার্নেল কোর ডাম্পস ডিবাগিং কম্পিউটার ত্রুটি