عطل (في مجال الحوسبة)

حدث خطأ في نواة النظام على جهاز iMac . هذا هو الشكل الأكثر شيوعًا لفشل نظام التشغيل في الأنظمة الشبيهة بنظام Unix.

في مجال الحوسبة ، يحدث عطل النظام عندما يتوقف برنامج حاسوبي، كتطبيق برمجي أو نظام تشغيل، عن العمل بشكل صحيح ويخرج من النظام. في بعض أنظمة التشغيل أو التطبيقات، تُرسل خدمة الإبلاغ عن الأعطال تقريرًا بالعطل وأي تفاصيل متعلقة به (أو تُتيح للمستخدم خيار القيام بذلك)، عادةً إلى مطوري التطبيق. إذا كان البرنامج جزءًا أساسيًا من نظام التشغيل، فقد يتعطل النظام بأكمله أو يتوقف عن العمل، مما يؤدي غالبًا إلى ذعر في نواة النظام أو خطأ نظام فادح .

معظم حالات التعطل ناتجة عن خلل برمجي . تشمل الأسباب الشائعة الوصول إلى عناوين ذاكرة غير صالحة، أو قيم عناوين غير صحيحة في عداد البرنامج ، أو تجاوز سعة المخزن المؤقت ، أو الكتابة فوق جزء من كود البرنامج المتأثر بسبب خلل سابق، أو تنفيذ تعليمات آلة غير صالحة ( رمز عملية غير قانوني أو غير مصرح به )، أو حدوث استثناء غير معالج . يُعتبر الخلل البرمجي الأصلي الذي بدأ سلسلة الأحداث هذه هو سبب التعطل، والذي يتم اكتشافه من خلال عملية تصحيح الأخطاء . قد يكون الخلل الأصلي بعيدًا عن الكود الذي تسبب فعليًا في التعطل.

في أجهزة الحاسوب الشخصية القديمة، كانت محاولة كتابة البيانات إلى عناوين الأجهزة خارج الذاكرة الرئيسية للنظام قد تتسبب في تلف الأجهزة. بعض هذه الأعطال قابلة للاستغلال ، مما يسمح لبرنامج خبيث أو مخترق بتنفيذ تعليمات برمجية عشوائية ، وبالتالي السماح بتكاثر الفيروسات أو الحصول على بيانات يصعب الوصول إليها عادةً.

تعطل التطبيق

شاشة عرض في مطار فرانكفورت تعرض برنامجًا يعمل بنظام ويندوز إكس بي، وقد تعطل البرنامج بسبب خطأ في الوصول إلى الذاكرة.

عادةً ما يتعطل التطبيق عند تنفيذه عمليةً غير مسموح بها من قِبل نظام التشغيل. عندئذٍ، يُطلق نظام التشغيل استثناءً أو إشارةً في التطبيق . تقليديًا، كانت تطبيقات يونكس تستجيب لهذه الإشارة بتفريغ الذاكرة الأساسية . أما معظم تطبيقات واجهة المستخدم الرسومية في ويندوز ويونكس، فتستجيب بعرض مربع حوار (كما هو موضح في الصورة المرفقة على اليمين) مع خيار إرفاق مصحح الأخطاء إذا كان مُثبّتًا. تحاول بعض التطبيقات التعافي من الخطأ ومواصلة العمل بدلًا من الخروج .

يمكن أن يحتوي التطبيق أيضًا على رمز برمجي للتعطل [ ب ] بعد اكتشاف خطأ جسيم.

تشمل الأخطاء الشائعة التي تؤدي إلى تعطل التطبيق ما يلي:

حدث عطل قسري على https://dimava.github.io/shapez/modZ/
  • محاولة قراءة أو كتابة ذاكرة غير مخصصة للقراءة أو الكتابة بواسطة هذا التطبيق (على سبيل المثال، خطأ تجزئة الذاكرة ، خطأ الحماية العامة الخاص بمعالجات x86 )
  • محاولة تنفيذ تعليمات ذات امتيازات أو غير صالحة
  • محاولة إجراء عمليات إدخال/إخراج على أجهزة لا يملك إذنًا بالوصول إليها
  • تمرير وسائط غير صالحة إلى استدعاءات النظام
  • محاولة الوصول إلى موارد النظام الأخرى التي لا يملك التطبيق إذنًا بالوصول إليها
  • محاولة تنفيذ تعليمات الآلة بمعاملات خاطئة (اعتمادًا على بنية وحدة المعالجة المركزية): القسمة على صفر ، العمليات على أرقام غير طبيعية أو قيم NaN (ليست رقمًا)، الوصول إلى الذاكرة لعناوين غير محاذية ، إلخ.

تعطل النظام وعودة إلى سطح المكتب

رسالة خطأ قياسية على نظام التشغيل iOS

يُقال إن "الانهيار المفاجئ" (CTD) يحدث عندما يتوقف برنامج (عادةً لعبة فيديو ) فجأةً، مُعيدًا المستخدم إلى سطح المكتب . عادةً، يُستخدم هذا المصطلح فقط في حالات الانهيار التي لا يظهر فيها أي خطأ، وبالتالي لا يرى المستخدم سوى سطح المكتب. في كثير من الأحيان، لا يوجد إجراء واضح يُسبب هذا الانهيار. أثناء التشغيل العادي، قد يتجمد البرنامج لفترة قصيرة ثم يُغلق تلقائيًا. كذلك، أثناء التشغيل العادي، قد تتحول شاشة البرنامج إلى شاشة سوداء ويُعيد تشغيل الثواني الأخيرة من الصوت (بحسب حجم مخزن الصوت المؤقت ) التي كانت تُشغل قبل الانهيار. في أحيان أخرى، قد يبدو أن إجراءً معينًا، مثل تحميل منطقة، هو ما يُسبب الانهيار . مثال على خطأ الانهيار المفاجئ موجود في برنامج Blender 3D . عندما يكون المستخدم في وضع التحرير، يُمكنه استخدام Ctrl+B لشطف حافة. إذا استخدم المستخدم وظيفة التراجع من خلال ctrl+Z أثناء عملية شطف الماوس الحر، فإن البرنامج لديه فرصة كبيرة للإغلاق ببساطة بسبب خطأ CTD.

تُعتبر أخطاء التعطل المفاجئ (CTD) مشكلةً كبيرةً للمستخدمين. ولأنها غالبًا لا تُظهر أي رسالة خطأ، يصعب تحديد مصدر المشكلة، خاصةً إذا لم يكن هناك نمط أو قاسم مشترك بين أوقات حدوثها والإجراءات التي تسبق التعطل مباشرةً. إحدى طرق تحديد مصدر المشكلة في الألعاب هي تشغيلها في وضع النافذة . قد تتضمن بعض إصدارات أنظمة التشغيل أداةً أو أكثر للمساعدة في تحديد أسباب مشاكل التعطل المفاجئ.

بعض برامج الكمبيوتر مثل StepMania و Bamzooki من BBC تتعطل أيضًا وتعود إلى سطح المكتب إذا كانت في وضع ملء الشاشة، ولكنها تعرض الخطأ في نافذة منفصلة عندما يعود المستخدم إلى سطح المكتب.

تعطل خادم الويب

قد يتعطل البرنامج الذي يشغل خادم الويب خلف موقع الويب، مما يجعله غير قابل للوصول إليه تمامًا أو يوفر رسالة خطأ فقط بدلاً من المحتوى العادي.

على سبيل المثال، في حين أن خادم الويب نفسه قد يظل نشطًا، فإن حدوث عطل في قاعدة البيانات الخلفية (مثل MySQL) يؤدي إلى فشل في التبعية، مما يجبر الموقع على عرض خطأ 500 خطأ داخلي في الخادم بدلاً من الصفحة المطلوبة.

أعطال نظام التشغيل

شاشة الموت الزرقاء كما تظهر في نظامي التشغيل ويندوز 10 و 11
خطأ في نواة النظام كما يظهر في نظام التشغيل OS X Mountain Lion

يحدث تعطل نظام التشغيل عادةً عند حدوث استثناء في الأجهزة لا يمكن معالجته . كما يمكن أن يحدث تعطل نظام التشغيل عندما يكتشف منطق التحقق الداخلي من سلامة النظام أنه فقد اتساقه الداخلي.

عادةً ما تبقى أنظمة التشغيل الحديثة متعددة المهام ، مثل لينكس وماك أو إس ، سليمة عند تعطل أحد برامج التطبيقات.

تحتوي بعض أنظمة التشغيل، على سبيل المثال z/OS ، على مرافق للموثوقية والتوافر وقابلية الخدمة (RAS) ويمكن لنظام التشغيل التعافي من تعطل مكون حرج، سواء كان ذلك بسبب فشل في الأجهزة، على سبيل المثال خطأ ECC غير قابل للتصحيح، أو بسبب فشل في البرامج، على سبيل المثال مرجع إلى صفحة غير مخصصة.

نهاية غير طبيعية

يُطلق على الإنهاء غير الطبيعي أو ABEND اسم الإنهاء غير الطبيعي للبرنامج ، أو تعطل البرنامج. تُسمى الأخطاء أو الأعطال في نظام تشغيل الشبكة Novell NetWare عادةً بـ ABEND. وقد ظهرت مجتمعات لمديري NetWare على الإنترنت، مثل abend.org .

يُستمد هذا الاستخدام من ماكرو ABEND في أنظمة التشغيل IBM OS/360 و... و z/OS . يُكتب عادةً بحرف كبير، ولكن قد يظهر أيضًا "abend". من رموز ABEND الشائعة: System ABEND 0C7 (خطأ في البيانات) وSystem ABEND 0CB ( قسمة على صفر ). [ 1 ] [ 2 ] [ 3 ] يمكن أن تكون حالات الإنهاء "ناعمة" (تسمح بالاستعادة التلقائية) أو "صلبة" (تنهي العملية). [ 4 ] يُقال مازحًا أن المصطلح مشتق من الكلمة الألمانية " Abend " التي تعني "مساءً". [ 5 ]

الآثار الأمنية والخصوصية المترتبة على الحوادث

بحسب التطبيق، قد يحتوي العطل على معلومات حساسة وخاصة بالمستخدم . [ 6 ] علاوة على ذلك، فإن العديد من أخطاء البرمجيات التي تُسبب الأعطال قابلة للاستغلال لتنفيذ تعليمات برمجية عشوائية وأنواع أخرى من رفع مستوى الصلاحيات . [ 7 ] [ 8 ] على سبيل المثال، يمكن لثغرة تجاوز سعة مخزن البيانات أن تُستبدل عنوان الإرجاع لروتين فرعي بقيمة غير صالحة، مما سيؤدي إلى حدوث خطأ تجزئة الذاكرة عند عودة الروتين الفرعي. مع ذلك، إذا استغلت الثغرة عنوان الإرجاع بقيمة صالحة، فسيتم تنفيذ التعليمات البرمجية الموجودة في ذلك العنوان.

إعادة إنتاج التحطم

يُعدّ إعادة إنتاج الأعطال بشكل فعال أمرًا بالغ الأهمية لتصحيح الأخطاء لأنه يحوّل الفشل المتقطع أو المعقد إلى سيناريو يمكن التنبؤ به وتكراره، مما يتيح إجراء تحقيق مستهدف وحل السبب الجذري بدلاً من معالجة الأعراض.

عند جمع بيانات الأعطال ميدانيًا باستخدام أدوات مثل تفريغ الذاكرة ، أو التتبع ، أو مُبلغ الأعطال ، فإن الخطوة التالية للمطورين هي القدرة على إعادة إنتاج هذه الأعطال محليًا. تنقسم تقنيات إعادة إنتاج الأعطال الآلية عمومًا إلى فئتين: أساليب التسجيل وإعادة التشغيل، التي تسجل عملية التنفيذ بحيث يمكن غالبًا إعادة تشغيل العطل المسجل، ولكنها تُضيف عبئًا كبيرًا على أداء وقت التشغيل، وأساليب معالجة ما بعد الفشل، التي تُحلل العطل فقط بعد حدوثه، وبالتالي تتجنب هذا العبء. [ 9 ] ولتحقيق ذلك، توجد عدة تقنيات: يستخدم STAR التنفيذ الرمزي، [ 9 ] بينما يُجري EvoCrash بحثًا تطوريًا. [ 10 ]

انظر أيضاً

ملحوظات

  1. تشمل أنواع العناوين غير الصالحة ما يلي:
  2. في نظام التشغيل OS/360 والإصدارات اللاحقة، يستخدم التطبيق عادةً ماكرو ABEND مع رمز إكمال المستخدم.
  3. بعض الأعطال متقطعة بسبب، على سبيل المثال، مشاكل التوقيت.

مراجع

  1. "ABEND" (ملف PDF) . إصدار نظام التشغيل 21 - نظام التشغيل System/360 - خدمات المشرف وتعليمات الماكرو (ملف PDF) (الطبعة الثامنة  ). شركة IBM . سبتمبر 1974. الصفحات 97-99 . GC28-6646-7 . تاريخ الاسترجاع: 8 يوليو 2023 . 
  2. "0Cx – z/OS MVS System Codes" . IBM.
  3. قائمة رموز ABEND مؤرشفة بتاريخ 16-09-2018 على موقع Wayback Machine على madisoncollege.edu
  4. بارزيال، ليديا (2008). عمليات z/VM ولينكس لمبرمجي أنظمة z/OS . منشورات IBM Redbooks. ISBN 9780738431598.الصفحة 352
  5. "Abend" مؤرشف بتاريخ 29 سبتمبر 2011 في Wayback Machine على dictionary.die.net
  6. ساتفات، كيافاش؛ ساكسينا، نيتيش (2018). "انتهاك الخصوصية: تشريح لتقارير الأعطال المسربة لمتصفح ويب". arXiv : 1808.01718 [ cs.CR ].
  7. "تحليل الأعطال لاكتشاف الثغرات الأمنية في تطبيقاتك" . Msdn.microsoft.com. 26 أبريل 2007. مؤرشف من الأصل في 11 ديسمبر 2011. تم الاطلاع عليه في 26 يونيو 2014 .
  8. «جيسي رودرمان » أخطاء أمان الذاكرة في كود C++» . Squarefree.com. 1 نوفمبر 2006. مؤرشف من الأصل في 11 ديسمبر 2013. تم الاطلاع عليه في 26 يونيو 2014 . 
  9. 1 2 تشين، نينغ؛ كيم، سونغهون (2015). "STAR: إعادة إنتاج الأعطال التلقائية القائمة على تتبع المكدس عبر التنفيذ الرمزي". معاملات IEEE في هندسة البرمجيات . 41 (2): 198-220 . Bibcode : 2015ITSEn..41..198C . doi : 10.1109/TSE.2014.2363469 . ISSN 0098-5589 . S2CID 6299263 .  
  10. سلطاني، موزان؛ بانيتشيلا، أنيبال؛ فان ديورسن، آري (2017). "خوارزمية جينية موجهة لإعادة إنتاج الأعطال آليًا". المؤتمر الدولي التاسع والثلاثون لهندسة البرمجيات (ICSE) لعام 2017، IEEE/ACM . الصفحات 209-220 . doi : 10.1109/ICSE.2017.27 . ISBN  978-1-5386-3868-2S2CID 199514177. مؤرشف من الأصل بتاريخ 25 يناير 2022. تم الاطلاع عليه بتاريخ 21 ديسمبر 2020 .