stringtranslate.com

Сбой (вычисления)

На iMac отображается паника ядра . Это наиболее распространенная форма сбоя операционной системы в Unix-подобных системах.

В вычислительной технике сбой или сбой системы происходит, когда компьютерная программа, такая как программное обеспечение или операционная система, перестает работать должным образом и завершает работу . В некоторых операционных системах или отдельных приложениях служба отчетов о сбоях сообщает о сбое и любых деталях, связанных с ним (или дает пользователю возможность сделать это), обычно разработчику (ам) приложения. Если программа является важной частью операционной системы, вся система может выйти из строя или зависнуть, что часто приводит к панике ядра или фатальной системной ошибке .

Большинство сбоев являются результатом программной ошибки . Типичные причины включают доступ к недействительным адресам памяти, [a] неверные значения адреса в счетчике программ , переполнение буфера , перезапись части затронутого программного кода из-за более ранней ошибки, выполнение недопустимых машинных инструкций ( незаконный или несанкционированный код операции) или срабатывание необработанное исключение . Причиной сбоя обычно считается исходная программная ошибка, вызвавшая эту цепочку событий, которая обнаруживается в процессе отладки . Исходная ошибка может быть далека от кода , который фактически вызвал сбой.

В ранних персональных компьютерах попытка записи данных на аппаратные адреса за пределами основной памяти системы могла привести к повреждению оборудования. Некоторые сбои могут быть использованы и позволяют вредоносной программе или хакеру выполнить произвольный код , что позволяет копировать вирусы или получать данные, которые обычно были бы недоступны.

Приложение выходит из строя

Дисплей в аэропорту Франкфурта, на котором запущена программа под Windows XP , которая вышла из строя из-за нарушения доступа к чтению памяти.

Приложение обычно выходит из строя , когда оно выполняет операцию, не разрешенную операционной системой. Затем операционная система запускает исключение или сигнал в приложении. Приложения Unix традиционно реагировали на сигнал сбросом ядра . Большинство приложений с графическим интерфейсом Windows и Unix в ответ отображают диалоговое окно (например, показанное справа) с возможностью подключения отладчика, если он установлен. Некоторые приложения пытаются восстановиться после ошибки и продолжают работу, а не завершают работу .

Приложение также может содержать код , вызывающий сбой [b] после обнаружения серьезной ошибки.

К типичным ошибкам, приводящим к сбою приложения, относятся:

Вылет на рабочий стол

Говорят, что «вылет на рабочий стол» происходит, когда программа (обычно видеоигра ) неожиданно завершает работу, резко возвращая пользователя обратно на рабочий стол . Обычно этот термин применяется только к сбоям, при которых ошибки не отображаются, поэтому все, что пользователь видит в результате сбоя, — это рабочий стол. Во многих случаях нет видимых действий, которые вызывают сбой на рабочем столе. Во время нормальной работы программа может зависнуть на более короткий период времени, а затем закрыться сама. Кроме того, во время нормальной работы программа может отображать черный экран и неоднократно воспроизводить последние несколько секунд звука (в зависимости от размера аудиобуфера ) , который воспроизводился до того, как она вылетела на рабочий стол. В других случаях может показаться, что это вызвано определенным действием, например загрузкой области.

Ошибки, связанные с выходом на рабочий стол, считаются особенно проблематичными для пользователей. Поскольку они часто не отображают никаких сообщений об ошибках, может быть очень сложно отследить источник проблемы, особенно если время их возникновения и действия, происходящие непосредственно перед сбоем, не имеют какой-либо закономерности или общей точки зрения. Один из способов выявить источник проблемы игр — запустить их в оконном режиме. В Windows Vista есть функция, которая может помочь отследить причину проблемы CTD, когда она возникает в любой программе. [ нужны разъяснения ] Windows XP также включает аналогичную функцию. [ нужны разъяснения ]

Некоторые компьютерные программы, такие как StepMania и Bamzooki от BBC , также вылетают на рабочий стол в полноэкранном режиме, но отображают ошибку в отдельном окне, когда пользователь возвращается на рабочий стол.

Веб-сервер выходит из строя

Программное обеспечение, на котором работает веб-сервер веб -сайта, может выйти из строя, что сделает его полностью недоступным или выдаст только сообщение об ошибке вместо обычного контента.

Например: если сайт использует базу данных SQL (например, MySQL ) для сценария (например, PHP ) и этот сервер базы данных SQL выходит из строя, то PHP отобразит ошибку соединения.

Сбой операционной системы

Синий экран смерти , отображаемый в Windows XP, Vista и 7
Паника ядра, отображаемая в OS X Mountain Lion

Сбой операционной системы обычно происходит, когда возникает аппаратное исключение , которое невозможно обработать . Сбои операционной системы также могут произойти, когда внутренняя логика проверки работоспособности операционной системы обнаруживает, что операционная система потеряла свою внутреннюю самосогласованность.

Современные многозадачные операционные системы, такие как Linux и macOS , обычно остаются невредимыми при сбое прикладной программы.

Некоторые операционные системы, например z/OS , имеют средства обеспечения надежности, доступности и удобства обслуживания (RAS), и ОС может восстанавливаться после сбоя критического компонента, будь то из-за сбоя оборудования, например, неисправимой ошибки ECC, или сбоя программного обеспечения. , например, ссылка на неназначенную страницу.

Ненормальный конец

Ненормальное завершение или ABEND — это ненормальное завершение работы программного обеспечения или сбой программы. Ошибки или сбои в сетевой операционной системе Novell NetWare обычно называются ABEND. В Интернете возникли сообщества администраторов NetWare , такие как abend.org.

Такое использование происходит от макроса ABEND в операционных системах IBM OS/360 , ..., z/OS . Обычно пишется с заглавной буквы, но может означать «abend». Некоторыми распространенными кодами ABEND являются системные ABEND 0C7 (исключение данных) и системные ABEND 0CB ( деление на ноль ). [1] [2] [3] Прерывания могут быть «мягкими» (с возможностью автоматического восстановления) или «жесткими» (прекращение действия). [4] В шутку утверждается, что этот термин произошел от немецкого слова «abend», означающего «вечер». [5]

Последствия сбоев для безопасности и конфиденциальности

В зависимости от приложения сбой может содержать конфиденциальную и личную информацию пользователя . [6] Более того, многие программные ошибки, вызывающие сбои, также могут быть использованы для выполнения произвольного кода и других типов повышения привилегий . [7] [8] Например, переполнение буфера стека может перезаписать адрес возврата подпрограммы недопустимым значением, что приведет, например, к ошибке сегментации , когда подпрограмма вернется. Однако если эксплойт перезапишет адрес возврата допустимым значением, код по этому адресу будет выполнен.

Воспроизведение сбоя

Когда сбои собираются в полевых условиях с помощью средства отчетов о сбоях , следующим шагом для разработчиков является возможность воспроизвести их локально. Для этого существует несколько методов: STAR использует символьное выполнение, [9] EvoCrash выполняет эволюционный поиск. [10]

Смотрите также

Примечания

  1. ^ Типы недействительных адресов включают:
  2. ^ В OS/360 и последующих версиях приложение обычно использует макрос ABEND с пользовательским кодом завершения.

Рекомендации

  1. ^ "АБЕНД" (PDF) . Выпуск ОС 21 — Операционная система System/360 — Службы Supervisor и инструкции по макросам (PDF) (Восьмое изд.). ИБМ . Сентябрь 1974 г., стр. 97–99. GC28-6646-7 . Проверено 8 июля 2023 г.
  2. ^ «0Cx — системные коды z/OS MVS» . ИБМ.
  3. ^ Список кодов ABEND. Архивировано 16 сентября 2018 г. на Wayback Machine на сайте madisoncollege.edu.
  4. ^ Парциале, Лидия (2008). Операции с z/VM и Linux для системных программистов z/OS. Красные книги IBM. ISBN 9780738431598.страница 352
  5. «Abend». Архивировано 29 сентября 2011 г., в Wayback Machine на словаре.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. ^ Чен, Нин; Ким, Сонхун (2015). «STAR: автоматическое воспроизведение сбоев на основе трассировки стека посредством символического выполнения». Транзакции IEEE по разработке программного обеспечения . 41 (2): 198–220. дои : 10.1109/TSE.2014.2363469. ISSN  0098-5589. S2CID  6299263.
  10. ^ Солтани, Можан; Паничелла, Аннибале; ван Дёрсен, Ари (2017). «Управляемый генетический алгоритм для автоматического воспроизведения сбоев». 2017 IEEE/ACM 39-я Международная конференция по программной инженерии (ICSE). стр. 209–220. дои : 10.1109/ICSE.2017.27. ISBN 978-1-5386-3868-2. S2CID  199514177. Архивировано из оригинала 25 января 2022 года . Проверено 21 декабря 2020 г. .

Внешние ссылки