خداحافظی با KGDB؟ توسعهدهندگان لینوکس به فکر حذف ابزار قدیمی دیباگ هستند

خبر مهم برای دنیای لینوکس و کسانی که با Kernel سر و کار دارند! توسعهدهندگان لینوکس دارن جدی فکر میکنن که ابزار قدیمی KGDB رو کلاً از ساختار لینوکس حذف کنن. اگر نمیدونید KGDB چیه، باید بگیم یه ابزار خیلی قدیمی بود که از سال ۲۰۰۸ توی نسخه ۲.۶.۲۶ لینوکس قرار گرفت تا به توسعهدهندگان کمک کنه بتەن Kernel رو با کمک GDB دیباگ کنن. اما حالا بعد از سالها، این ابزار عملاً به تاریخ پیوسته و دلیلش هم اومدن تکنولوژیهای خفنتر و مدرنتر مثل مجازیسازی و Qemu هست که کار رو هزار برابر راحتتر کردن.
ماجرا از این قراره که Peter Zijlstra، یکی از توسعهدهندگان قدیمی اینتل، یه پچ جدید فرستاده که پیشنهاد میده KGDB کلاً بوسیده بشه و بره کنار. دلیلش هم خیلی سادهست: توی دورانی که همه به راحتی به Virtualization دسترسی دارن و میتونن از Qemu gdb-server استفاده کنن، دیگه هیچ دلیل منطقیای برای دردسرهای استفاده از KGDB باقی نموندہ. قدیمها باید دو تا کامپیوتر رو با کابل سریال به هم وصل میکردی تا بتونی Kernel رو دیباگ کنی، ولی الان همهچیز خیلی تمیزتر توی یک VM انجام میشه!
Peter Zijlstra درباره این تصمیم حرفهای جالبی زده و گفته:
“KGDB کارهای واقعاً عجیبی توی سیستم میکنه و با وجود همهگیر شدن Virtualization، هیچ دلیل منطقیای وجود نداره که کسی بخواد اونو به Qemu gdb-server ترجیح بده.”
اگه براتون سوال پیش اومده که اگه یه وقت به هاردور خاصی نیاز داشته باشیم چی، پیتر جواب میده که میتونید از device pass-through استفاده کنید، اون رو emulate کنید یا خیلی ساده با printk() کار دیباگ رو پیش ببرید. استفاده از KGDB کلی مشکل درست میکنه؛ مثلا سیستم رو توی NMI context گیر میاندازه، کدهای مربوط به زمانسنجی رو به هم میریزه و کلی دردسر دیگه برای breakpointها درست میکنه.
خلاصه که نگهداری از این کدهای قدیمی دیگه ارزش سردرد1 گرفتن نداره و منطقیترین کار همون پاک کردنش از کدهای منبع هست. حالا باید دید این پچ دقیقاً چه زمانی نهایی میشه و آیا اول توی Kconfig غیرفعال میشه یا کلاً یکجا حذفش میکنن.




