لینوکس بالاخره باگ قدیمی فریز شدن سیستم هنگام Boot را حل کرد!

بییندید، راستش را بخواهید هیچچیز به اندازه این که سیستمعاملتان وسط کار یا موقع بالا آمدن فریز شود، روی اعصاب نیست! خبر خوب این است که توسعهدهندههای لینوکس در آخرین لحظات قبل از انتشار نسخه پایدار Kernel جدید، بالاخره یک باگ عجیب و غریب که از سال ۲۰۲۴ تا الان دستبهگریبان سیستمهای SMP بود را شناسایی و حل کردند. ماجرا از این قرار است که خیلی از بچهها در کامپیوترهای مختلف گزارش داده بودند سیستم موقع Boot گیر میکند و بالا نمیآید؛ انگار که سیستمعامل وسط راه خوابش ببرد!
بعد از کلی بررسی و زیرورو کردن کدهای سیستم، مطلع شدیم که ریشه این مشکل به کدهای مربوط به console غیرمسدودکننده یا همان NBCON برمیگردد که دو سال پیش به سیستم اضافه شده بود. این KThreads های مربوط به چاپ کنسول، خیلی زود و در همان مراحل اولیه Boot با استفاده از دستور early_initcall استارت میخوردند. همین باعث میشد روی بعضی از سختافزارها تداخل ایجاد شود و سیستم قفل کند.
راهحل تیم توسعه چی بود؟ خیلی ساده! تصمیم گرفتند استارت زدن این KThreadها را بیندازند عقبتر؛ یعنی بگذارند تا تمام مراحل اولیه سیستم طی شود و بعد کارشان را شروع کنند. اینطوری دیگر هیچ تداخلی با بخشهای حیاتی سختافزار پیش نمیآید و سیستم مثل ساعت بالا میآید.
این باگ عجیب که از سپتامبر ۲۰۲۴ و با معرفی کدهای جدید چاپگر در printk() وارد سیستم شده بود، حالا با این Fix جدید برطرف شده و به زودی برای بقیه نسخههای فعال Kernel هم عرضه میشود.



