کی دامپ (لینوکس)

**کی دامپ (به [[زبان انگلیسی|انگلیسی]]: kdump)** یکی از ویژگی‌های هسته لینوکس است که در صورت توقف عملکرد کرنل، فایلی شامل توضیح خرابی‌ها ایجاد می‌کند. هنگامی که kdump فعال می‌شود، یک ایمیج از حافظه (همچنین به عنوان vmcore شناخته می‌شود) می‌سازد که می‌تواند برای اهداف اشکال زدایی و تعیین علت خرابی تجزیه و تحلیل شود. ایمیج ساخته شده از حافظه اصلی به عنوان یک فایل با فرمت اجرایی و مرتبط (ELF) ساخته می‌شود و می‌توان مستقیماً از طریق در هنگام مدیریت خرابی هسته به آن دسترسی داشت، یا می‌توان آن را به‌طور خودکار در یک فایل، در یک دستگاه خام یا یک سیستم دیگر با قابلیت دسترسی از طریق شبکه ذخیره کرد.

## عملکرد داخلی
چپ|بندانگشتی|در طرح‌بندی «هسته دوگانه»، kdump از kexec برای راه‌اندازی یک هسته دیگر و به دست آوردن یک حافظه خالی استفاده می‌کند.
در صورت خرابی هسته، kdump با راه‌اندازی یک هسته لینوکس دیگر، که به عنوان *هسته dump-capture* شناخته می‌شود، سازگاری سیستم را حفظ می‌کند و از آن برای ساختن فایل خروجی و ذخیره حافظه dump استفاده می‌کند. در نتیجه، سیستم به‌جای تکیه بر هسته‌ای که قبلاً دچار مشکل شده است، در یک محیط جدید و قابل اعتماد راه‌اندازی می‌شود که ممکن است باعث مشکلات مختلفی شود، مانند ایجاد خرابی فایل سیستم در حین نوشتن فایل ایمیج حافظه. برای پیاده‌سازی این سیستم «هسته دوگانه»، kdump از kexec برای راه‌اندازی «گرم» در هسته dump-capture بلافاصله پس از خرابی هسته استفاده می‌کند، با استفاده از توانایی kexec برای راه‌اندازی «از روی» هستهٔ در حال اجرا در می‌توان از اجرای بوت‌لودر و سخت‌افزار برای استفاده از کرنل جدید جلوگیری کرد. یک هسته dump-capture می‌تواند یا یک ایمیج هسته لینوکس جداگانه باشد که به‌طور خاص برای این منظور ساخته شده است، یا می‌توان از ایمیج هسته اولیه در معماری‌هایی استفاده کرد که از هسته‌های قابل جابجایی پشتیبانی می‌کنند.

محتویات حافظه اصلی (RAM) هنگام بوت شدن و اجرای هسته dump-capture با رزرو مقدار کمی از RAM از قبل، که هسته dump-capture در آن از قبل بارگذاری شده است، حفظ می‌شود، بنابراین هیچ میزان از RAM مورد استفاده توسط هسته اولیه در هنگام ساخت ایمیج بازنویسی نمی‌شود. این مقدار ذخیره شده RAM صرفاً توسط هسته dump-capture استفاده می‌شود و در طول عملکرد عادی سیستم استفاده نمی‌شود. برخی از معماری‌ها، از جمله x86 و ppc64، صرف نظر از اینکه سیستم در بوت اولیه به چه صورت بارگذاری شده است نیاز به بخش کوچکی از RAM با موقعیت ثابت برای بوت کردن هسته دارند، در این مورد، kexec یک کپی از آن بخش از RAM ایجاد می‌کند که باعث می‌شود این قسمت نیز برای هسته dump-capture قابل دسترسی باشد. اندازه و موقعیت بخش رزرو شده RAM از طریق پارامتر بوت هسته مشخص می‌شود.

علاوه بر هسته لینوکس، ابزارهای فضای کاربری اضافی از مکانیسم kdump پشتیبانی می‌کنند، از جمله ابزار . علاوه بر ابزارهای رسمی، که صورت پچ برای kexec ارائه می‌شوند، برخی از توزیع‌های لینوکس ابزارهای دیگری را ارائه می‌کنند که پیکربندی عملیات kdump را ساده می‌کند، از جمله تنظیم ذخیره خودکار فایل‌های ایمیج حافظه. فایل‌های ایمیج حافظه ایجاد شده را می‌توان با استفاده از گنو دیباگر() یا با استفاده از ابزار **** ارائه شده توسط Red Hat تجزیه و تحلیل کرد،

## تاریخچه
Kdump جایگزین ابزار قدیمی Linux Kernel Crash Dumps (LKCD) شد. این ابزار نسبت به LKCD بسیار کارآمدتر و مقیاس پذیرتر است.

عملکرد kdump به همراه kexec در هسته اصلی لینوکس در نسخه ۲٫۶٫۱۳ ادغام شد که در ۲۹ اوت ۲۰۰۵ منتشر شد.

## منابع

## پیوند به بیرون
* 
* Kdump, a Kexec-based Kernel Crash Dumping Mechanism, IBM, 2005, by Vivek Goyal, Eric W. Biederman, and Hariprasad Nellitheertha
* Using Kdump for examining Linux kernel crashes, June 21, 2017, by Pratyush Anand
* Kdump: Usage and internals, Red Hat, June 2017, by Pratyush Anand and Dave Young

رده:نرم‌افزارهای آزاد نوشته‌شده با سی
رده:ویژگی‌های کرنل لینوکس
رده:ابزارهای برنامه‌نویسی یونیکس