Oops

Выснова на экран пры ўзнікненні oops у Fedora Linux.

Oops — функцыя ядра аперацыйнай сістэмы Linux, якая выклікаецца пры адхіленні ад звычайнай працы Linux. Пры oops’е ядро стварае запіс у логу з апісаннем памылкі. Нярэдка за выклікам oops выклікаецца kernel panic з наступным прыпынкам або перазапускам сістэмы.

Механізм працы

Калі ядро заўважае праблему, на экран выводзіцца паведамленне аб памылцы. Гэтае паведамленне выкарыстоўваецца распрацоўшчыкамі для выпраўлення праграмнага кода ядра.

Linux kernel oops у SPARC.

Пасля oops’а некаторыя рэсурсы сістэмы могуць быць недаступныя. Такім чынам, нават калі здаецца, што сістэма працуе правільна, непажаданыя пабочныя эфекты могуць быць вынікам ліквідацыі актыўнай задачы. Памылка ядра часцей за ўсё прыводзіць да панікі ядра, калі сістэма спрабуе выкарыстаць неіснуючыя рэсурсы. Некаторыя ядры настроены на паніку, калі адбываецца шмат праблем (па змоўчанні 10 000)[1][2]. Гэты ліміт oops’а прадугледжаны, напрыклад, з-за таго, што зламыснікі могуць паўторна выклікаць oops і звязаную з ім уцечку рэсурсаў, якая ў канчатковым выніку перавышае максімальнае значэнне integer  (англ.) і дазваляе далейшае зламыснае выкарыстанне сістэмы[3][4].

Афіцыйная дакументацыя ядра Linux, якая тычыцца паведамленняў oops, знаходзіцца ў файле Documentation/admin-guide/bug-hunting.rst[5] у зыходных кодах ядра. Пры высвятленні прычын узнікнення oops таксама можа дапамагчы вывучэнне змесціва файла System.map.

Для чалавека, не знаёмага з тэхнічнымі дэталямі камп’ютараў і аперацыйных сістэм, паведамленне "oops" можа выглядаць незразумелым. У адрозненне ад іншых аперацыйных сістэм, такіх як Windows або macOS, Linux абірае дэталі, якія тлумачаць збой ядра, а не спрошчанае, зручнае паведамленне, як, напрыклад, BSoD у Windows. Некалькі разоў прапаноўваўся спрошчаны экран збояў, аднак зараз ні адзін з іх не распрацоўваецца.

Аўтаматызаваны збор інфармацыі

Для аўтаматычнай адпраўкі інфармацыі існуе праграма kerneloops-daemon, якая рэгіструе ўзнікненні oops і дасылае іх на сайт kerneloops.org. Гэтая праграма ўяўляе сабой праграму-дэман, якая правярае сістэмны лог на прадмет адпаведнай інфармацыі. У выпадку яе выяўлення яна аўтаматычна перадае яе на сайт kerneloops.org.

Зноскі

  1. Horn, Jann. [PATCH exit: Put an upper limit on how often we can oops]. lore.kernel.org (7 лістапада 2022). Праверана 31 January 2023.
  2. Documentation for /proc/sys/kernel/. docs.kernel.org. Праверана 31 January 2023.
  3. Corbet, Jonathan. Averting excessive oopses. LWN.net (18 лістапада 2022).
  4. Jenkins, Seth. Exploiting null-dereferences in the Linux kernel. Google Project Zero (19 студзеня 2023).
  5. bug-hunting. kernel.org.

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.