ذعر النواة



يُعرف خطأ النواة (Kernel panic ) (ويُختصر أحيانًا إلى KP [ 1 ] ) بأنه إجراء وقائي تتخذه نواة نظام التشغيل عند اكتشاف خطأ داخلي فادح ، إما لعدم قدرتها على التعافي منه بأمان، أو لأن استمرار تشغيل النظام ينطوي على مخاطر عالية لفقدان البيانات بشكل كبير. يُستخدم هذا المصطلح بشكل خاص في أنظمة يونكس والأنظمة الشبيهة بيونكس . أما في أنظمة تشغيل مايكروسوفت ويندوز، فيُطلق على ما يُعادله خطأ التوقف ، والذي يُعرف غالبًا باسم "شاشة الموت الزرقاء (BSOD)".
تُصمَّم إجراءات النواة المسؤولة عن معالجة حالات الذعر، والمعروفة panic()في أنظمة يونكس المشتقة من AT&T و BSD ، عادةً لإخراج رسالة خطأ إلى وحدة التحكم ، وتفريغ صورة لذاكرة النواة إلى القرص لتصحيح الأخطاء بعد وقوعها ، ثم انتظار إعادة تشغيل النظام يدويًا أو بدء إعادة تشغيل تلقائية . [ 2 ] المعلومات المقدمة ذات طبيعة تقنية للغاية، وتهدف إلى مساعدة مسؤول النظام أو مطور البرامج في تشخيص المشكلة. يمكن أن تحدث حالات ذعر النواة أيضًا بسبب أخطاء تنشأ خارج مساحة النواة . على سبيل المثال، تُصاب العديد من أنظمة تشغيل يونكس بالذعر إذا انتهت عملية init ، التي تعمل في مساحة المستخدم . [ 3 ] [ 4 ]
تاريخ
تحافظ نواة يونكس على الاتساق الداخلي وصحة وقت التشغيل باستخدام التأكيدات كآلية لاكتشاف الأخطاء . الافتراض الأساسي هو أن الأجهزة والبرامج يجب أن تعمل بشكل صحيح، وأن فشل أي تأكيد يؤدي إلى حالة ذعر ، أي توقف طوعي لجميع أنشطة النظام. [ 5 ] تم تقديم حالة الذعر في النواة في إصدار مبكر من يونكس، وأظهرت فرقًا جوهريًا بين فلسفات تصميم يونكس وسلفها مولتيكس . يتذكر مطور مولتيكس، توم فان فليك، نقاشًا حول هذا التغيير مع مطور يونكس، دينيس ريتشي :
أشرتُ إلى دينيس بأن نصف الكود الذي كنت أكتبه في Multics تقريبًا كان كودًا لاستعادة البيانات بعد حدوث خطأ. فقال: "لقد حذفنا كل ذلك. إذا حدث خطأ، لدينا روتين يُسمى panic، وعند استدعائه، يتعطل الجهاز، وتصرخ في الممر قائلًا: "أعد تشغيله ! " [ 6 ]

لم يطرأ تغيير جوهري على الوظيفة الأصلية panic()بين نظام يونكس الإصدار الخامس ونظام يونكس 32V المبني على معالج VAX ، حيث كانت تُخرج رسالة خطأ فقط دون أي معلومات أخرى، ثم تُدخل النظام في حلقة خمول لا نهائية. ومع تحسين قاعدة بياناتpanic() يونكس، تم تحسين الوظيفة أيضًا لعرض أنواع مختلفة من معلومات تصحيح الأخطاء على وحدة التحكم.
الأسباب
قد يحدث عطل مفاجئ نتيجةً لعطل في أحد مكونات الجهاز أو خلل برمجي في نظام التشغيل. في كثير من الحالات، يكون نظام التشغيل قادرًا على مواصلة العمل بعد حدوث الخطأ. إذا كان النظام في حالة غير مستقرة، فبدلًا من المخاطرة بحدوث اختراقات أمنية وتلف البيانات، يتوقف نظام التشغيل لمنع المزيد من الضرر، مما يُسهّل تشخيص الخطأ، وقد يُعاد تشغيله تلقائيًا. [ 7 ] بعد إعادة تجميع صورة ثنائية لنواة النظام من الكود المصدري ، يُعدّ حدوث عطل مفاجئ أثناء تشغيل النواة الناتجة مشكلة شائعة إذا لم يتم تكوين النواة أو تجميعها أو تثبيتها بشكل صحيح. [ 8 ] قد تكون المكونات الإضافية أو ذاكرة الوصول العشوائي (RAM) المعيبة أيضًا مصادر لأخطاء النواة الخطيرة أثناء بدء التشغيل، بسبب عدم التوافق مع نظام التشغيل أو فقدان برنامج تشغيل الجهاز . [ 9 ] قد تدخل النواة أيضًا في حالة تعطل panic()إذا لم تتمكن من تحديد موقع نظام الملفات الجذر . [ 10 ] خلال المراحل النهائية من تهيئة مساحة مستخدم النواة ، عادةً ما يحدث عطل مفاجئ إذا فشل إنشاء عملية التهيئة (init) . قد يحدث ذعر أيضًا إذا انتهت عملية التهيئة، حيث سيصبح النظام غير قابل للاستخدام حينها. [ 11 ]
فيما يلي تطبيق لعملية التهيئة النهائية لنواة لينكس في kernel_init(): [ 12 ]
static int __ref kernel_init ( void * unused ) {.../* * نجرب كل هذه الخيارات حتى ينجح أحدها. * * يمكن استخدام Bourne shell بدلاً من init إذا كنا * نحاول استعادة جهاز معطل تمامًا. */ إذا ( تم تنفيذ الأمر ) { إذا ( ! تشغيل عملية التهيئة ( تنفيذ الأمر )) إرجاع 0 ؛ pr_err ( "فشل تنفيذ %s. جارٍ محاولة الإعدادات الافتراضية... \n " , تنفيذ الأمر ); } إذا ( ! تشغيل عملية التهيئة ( "/sbin/init" ) || ! تشغيل عملية التهيئة ( "/etc/init" ) || ! تشغيل عملية التهيئة ( "/bin/init" ) || ! تشغيل عملية التهيئة ( "/bin/sh" )) إرجاع 0 ؛panic ( "لم يتم العثور على ملف init. حاول تمرير الخيار init= إلى النواة." "راجع ملف init.txt في وثائق لينكس للحصول على إرشادات." ); }تفاصيل أنظمة التشغيل
لينكس

قامت نواة لينكس بتنفيذ panic()وظيفة بدائية منذ البداية، وكان التنفيذ الأصلي للإصدار 0.01 هو ببساطة: [ 13 ]
volatile void panic ( const char * s ) { printk ( "Kernel panic: %s \n\r " , s ); for (;;); }لكن منذ ذلك الحين، أصبح روتين الذعر أكثر تعقيداً مع تطور النواة نفسها.
ابتداءً من إصدار لينكس 6.10، تم دمج ميزة جديدة تُسمى drm_panic ، مما يسمح لبرامج تشغيل إدارة الحقوق الرقمية (DRM) بدعم عرض شاشة تحذيرية على غرار شاشة الموت الزرقاء (BSOD) لإعلام المستخدم بحدوث خطأ فادح. وهذا يسمح بظهور شاشة التحذير حتى عندما كان خادم العرض قيد التشغيل وقت حدوث الخطأ. [ 14 ]
ابتداءً من إصدار لينكس 6.12، تم توسيع وظيفة drm_panic بحيث يمكن ترميز تتبع المكدس كرمز QR . [ 15 ]
حالياً، البدائل الثلاثة هي المستخدم (الافتراضي)، و kmesg (النمط القديم)، ورمز الاستجابة السريعة (QR code ). [ 16 ]
حالة ذعر في النواة مع تمكين drm_panic
ذعر النواة كما يظهر على وحدة تحكم iKVM
تعطل نظام التشغيل مع تمكين drm_panic ودعم تسجيل الأحداث في رموز QR
تظهر حالات الذعر في نواة نظام لينكس كما هو الحال في أنظمة يونكس الأخرى ؛ إلا أن الأخطاء الجسيمة، وإن لم تكن قاتلة، قد تُولّد نوعًا آخر من حالات الخطأ، يُعرف باسم " خطأ النواة" (Kernel oops ). [ 17 ] في هذه الحالة، تستمر النواة عادةً في العمل بعد إنهاء العملية المُسببة للمشكلة . ونظرًا لأن خطأ النواة قد يُؤدي إلى عدم توفر بعض الأنظمة الفرعية أو الموارد، فقد يُؤدي لاحقًا إلى ذعر كامل في نواة النظام.
في نظام لينكس، يتسبب عطل النواة في وميض مصابيح LED في لوحة المفاتيح كمؤشر مرئي على وجود حالة حرجة. [ 18 ]
نظام التشغيل macOS
عند حدوث خطأ في نواة نظام التشغيل Mac OS X 10.2 إلى 10.7، يعرض الحاسوب رسالة متعددة اللغات تُعلم المستخدم بضرورة إعادة تشغيل النظام. [ 19 ] قبل الإصدار 10.2، كانت تُعرض رسالة خطأ تقليدية على غرار أنظمة يونكس؛ أما في الإصدار 10.8 والإصدارات اللاحقة، فيُعاد تشغيل الحاسوب تلقائيًا، ولا تُعرض الرسالة إلا كتحذير يمكن تخطيه بعد ذلك. يختلف تنسيق الرسالة من إصدار لآخر: [ 20 ]
- 10.0 – 10.1: يعرض النظام نصًا على الشاشة، يقدم تفاصيل حول الخطأ، ويصبح غير مستجيب.
- 10.2: يقوم الجهاز بإنزال ستارة سوداء شفافة ثم يعرض رسالة على خلفية بيضاء تُعلم المستخدم بضرورة إعادة تشغيل الكمبيوتر. تظهر الرسالة باللغات الإنجليزية والفرنسية والألمانية واليابانية .
- 10.3 – 10.5: مشابه لـ 10.2، ولكن خلفية رسالة الخطأ رمادية داكنة.
- 10.6 – 10.7: تم تنقيح النص ويتضمن الآن ترجمة إسبانية .
- في الإصدار 10.8 والإصدارات الأحدث: يتوقف الكمبيوتر عن الاستجابة قبل إعادة تشغيله تلقائيًا. بعد إعادة التشغيل، تظهر رسالة لبضع ثوانٍ تُعلم المستخدم بوجود مشكلة تسببت في إعادة تشغيل الكمبيوتر، قبل استكمال عملية الإقلاع. تتضمن الرسالة الآن ترجمة صينية .
في نظام macOS 10.8، إذا حدثت خمس حالات ذعر جديدة في النواة خلال ثلاث دقائق من حدوث الحالة الأولى، فإن جهاز Mac سيعرض علامة تحذير لمدة ثلاثين ثانية، ثم يتم إيقاف تشغيله؛ وهذا ما يُعرف باسم "الذعر المتكرر في النواة". [ 21 ]
في جميع الإصدارات الأحدث من 10.2، يظهر النص فوق رمز الاستعداد ولا يملأ الشاشة بالكامل. تُحفظ معلومات تصحيح الأخطاء في ذاكرة NVRAM وتُكتب في ملف سجل عند إعادة التشغيل. في الإصدار 10.7، توجد ميزة لإعادة التشغيل التلقائي بعد حدوث خطأ فادح في نواة النظام. في بعض الحالات، في الإصدار 10.2 والإصدارات الأحدث، قد يظهر نص أبيض يوضح تفاصيل الخطأ بالإضافة إلى رمز الاستعداد.
نظام التشغيل Mac OS X 10.0 – 10.1 kernel panic(INTERAL BUILD)
عطل في نواة نظام التشغيل Mac OS X 10.2
عطل في نواة نظام التشغيل Mac OS X 10.3 – 10.5
تظهر هذه الرسالة بعد إعادة تشغيل النظام بسبب عطل في نواة النظام في نظام التشغيل OS X 10.8 والإصدارات الأحدث
انظر أيضاً
مراجع
- ↑ "KP - Kernel Panic (Linux) | AcronymFinder" . www.acronymfinder.com . مؤرشف من الأصل بتاريخ 26 أكتوبر 2015. تم الاطلاع عليه بتاريخ 6 يناير 2016 .
- ↑ "FreeBSD 11.0 - صفحة دليل الأمر panic (القسم 9 من FreeBSD) - أوامر يونكس ولينكس" . www.unix.com . مؤرشف من الأصل في 1 أبريل 2024. تم الاطلاع عليه في 26 أكتوبر 2010 .
- ↑ "فشل الإقلاع - توقف نظام التشغيل - منتديات يونكس لينكس - HP-UX" . www.unix.com . مؤرشف من الأصل في 1 أبريل 2024. تم الاطلاع عليه في 12 يونيو 2013 .
- ↑ راندولف ج. هيربر (1 سبتمبر 1999). "ردًا على: PANIC: init died" . مجموعة الأخبار : comp.sys.sgi.admin . مؤرشف من الأصل في 22 يناير 2011. تم الاطلاع عليه في 9 ديسمبر 2017 .
- ↑ دانيال ب. سيوريك؛ روبرت س. شوارتز (1998). أنظمة حاسوب موثوقة: التصميم والتقييم . إيه كيه بيترز المحدودة. ص 622. ISBN 978-1-56881-092-8تم الاطلاع عليه بتاريخ 6 مايو 2011 .
- ↑ "Unix and Multics" . www.multicians.org . مؤرشف من الأصل في 5 أغسطس 2012. تم الاطلاع عليه في 25 مايو 2005 .
- ↑ ستيفن م. هانكوك (22 نوفمبر 2002). استكشاف أخطاء Tru64 UNIX وإصلاحها: تشخيص مشاكل النظام وتصحيحها . دار النشر الرقمية. الصفحات 119-126 . ISBN 978-1-55558-274-6تم الاطلاع عليه بتاريخ 3 مايو 2011 .
- ↑ مايكل جانغ (2006). مضايقات لينكس للمهوسين . دار نشر أورايلي ميديا، الصفحات 267-274 . ISBN 978-0-596-00801-7تم الاطلاع عليه بتاريخ 29 أبريل 2011 .
- ↑ ديفيد بوغ (17 ديسمبر 2009). الانتقال إلى نظام ماك: الدليل المفقود، إصدار سنو ليوبارد . دار نشر أورايلي ميديا، ص 589. ISBN 978-0-596-80425-1تم الاطلاع عليه بتاريخ 4 مايو 2011 .
- ↑ غريغ كروه-هارتمان (2007). نواة لينكس باختصار . دار نشر أورايلي ميديا، ص 59. ISBN 978-0-596-10079-7تم الاطلاع عليه بتاريخ 3 مايو 2011 .
- ^ وولفجانج ماورر (26 سبتمبر 2008). بنية نواة لينكس الاحترافية . جون وايلي وأولاده. ص 1238 – 1239. ISBN 978-0-470-34343-2أُرشف من الأصل في 1 أبريل 2024. تم الاطلاع عليه في 3 مايو 2011 .
- ↑ "linux/init/main.c" . مرجع LXR المتقاطع . مؤرشف من الأصل في 6 أكتوبر 2022.
- ↑ "panic.c" . إصدار نواة لينكس 0.01 .
- ↑ "التغييرات/تمكين DrmPanic" . ويكي مشروع فيدورا .
- ↑ توماس زيمرمان (29 أغسطس 2024). " [ سحب ] drm-misc-next" . dri-devel (قائمة بريدية).
- ↑ جوسلين فاليمبي (2025). "ذعر إدارة الحقوق الرقمية: شاشة الموت الزرقاء قادمة إلى لينكس" (ملف PDF) .
- ↑ " برامج تشغيل أجهزة لينكس ، الفصل 4" (ملف PDF) . مؤرشف (ملف PDF) من الأصل بتاريخ 14 نوفمبر 2014. تم الاطلاع عليه بتاريخ 21 يوليو 2016 .
- ↑ جيمس كيركلاند؛ ديفيد كارمايكل؛ كريستوفر ل. تينكر؛ غريغوري ل. تينكر (مايو 2006). استكشاف أخطاء لينكس وإصلاحها لمسؤولي النظام والمستخدمين المتقدمين . برنتيس هول . ص 62. ISBN 9780132797399أُرشف من الأصل في 1 أبريل 2024. تم الاطلاع عليه في 5 فبراير 2016 .
- ↑ "نظام التشغيل OS X: حول حالات الذعر في النواة - دعم Apple" . support.apple.com . مؤرشف من الأصل في 21 مايو 2013.
- ↑ "شاشة موت جديدة لنظام التشغيل ماك أو إس إكس" . OSXBook.com . مؤرشف من الأصل في 1 مايو 2012. تم الاطلاع عليه في 30 أبريل 2011 .
- ↑ "نظام التشغيل OS X: حول حالات الذعر في النواة" . دعم Apple . Apple. مؤرشف من الأصل في 24 مايو 2018.
- أخطاء الحاسوب
- نواة نظام التشغيل
- شاشات الموت
