Kernel vahima - Kernel panic

Dan yadro vahima xabari Linux tizim
Yadro vahima ichida Ubuntu 13.04 (Linux 3.8) ichida Oracle VM VirtualBox

A yadro vahima (ba'zan qisqartiriladi KP[1]) an tomonidan qabul qilingan xavfsizlik chorasi operatsion tizim "s yadro ichki aniqlanganda jiddiy xato unda u xavfsiz ravishda tiklana olmaydi yoki tizim ma'lumotlarini katta yo'qotish xavfi bo'lmagan holda ishlashni davom ettira olmaydi. Bu atama asosan o'ziga xosdir Unix va Unixga o'xshash tizimlar. Uchun Microsoft Windows operatsion tizimlarning ekvivalenti "Xato to'xtating ", natijada xato tekshirildi[2] Windows-ning dastlabki versiyalarida ko'k fonda xatolarni tekshirish kodini taqdim etuvchi ekran (so'zma-so'z "" deb tanilganO'limning ko'k ekrani "yoki BSoD), yoki Xbox One platformasidagi yashil fonda, shuningdek Windows 10 oldindan ko'rish tuzilmalarida.[3]

The yadro deb nomlanuvchi vahima qo'zg'atadigan tartib-qoidalar vahima() yilda AT & T - olingan va BSD Unix manba kodi odatda an ni chiqarish uchun mo'ljallangan xato xabari uchun konsol, yadro xotirasi tasvirini diskka tushirish o'limdan keyin disk raskadrovka, so'ngra tizim qo'lda qayta yuklanishini kuting yoki avtomatik ravishda ishga tushiring qayta yoqing.[4] Taqdim etilgan ma'lumotlar yuqori texnik xususiyatga ega va yordam berishga qaratilgan tizim ma'muri yoki dasturiy ta'minot ishlab chiqaruvchisi muammoni aniqlashda. Yadro vahima qo'zg'ashiga yadro tashqarisidagi xatolar ham sabab bo'lishi mumkin. Masalan, ko'pgina Unix operatsion tizimlari, agar init ishlaydigan jarayon foydalanuvchi maydoni, tugaydi.[5][6]

Tarix

The Unix yadro ichki barqarorlikni saqlaydi va ish vaqti bilan to'g'ri tasdiqlar sifatida xatolarni aniqlash mexanizm. Asosiy taxmin shundan iboratki, apparat va dasturiy ta'minot to'g'ri ishlashi kerak va tasdiqlashning muvaffaqiyatsizligi a ga olib keladi vahima, ya'ni tizimning barcha faoliyatini ixtiyoriy ravishda to'xtatish.[7] Yadro vahimasi Unix-ning dastlabki versiyasida paydo bo'ldi va Unix-ning dizayn falsafalari va uning salafiysi o'rtasidagi katta farqni namoyish etdi. Multics. Multics dasturchisi Tom van Vlek Unix ishlab chiqaruvchisi bilan ushbu o'zgarish haqida munozarani eslaydi Dennis Ritchi:

Men Dennisga Multics-da yozgan kodimning yarmi osongina xatolarni tiklash kodi ekanligini aytdim. U shunday dedi: "Biz bularning barchasini qoldirdik. Agar xato bo'lsa, bizda vahima degan odat bor va u chaqirilganda, mashina qulab tushadi va siz zalda" Hey, uni qayta ishga tushiring ".[8]

Asl nusxa vahima() funktsiya asosan UNIX-ning Beshinchi Edition-dan to-ga o'zgartirilmagan VAX UNIX 32V-ga asoslangan va boshqa hech qanday ma'lumotga ega bo'lmagan xato xabari chiqargan, so'ngra tizimni tugallanmagan bo'sh aylanaga tushirgan.

Ning manba kodi vahima() funktsiyasi V6 UNIX:[9]

/* * Agar konsol o'chirilgan bo'lsa, * panicstr argumentni oxirigacha o'z ichiga oladi * vahima chaqirish. */char    *panicstr;/* * Vahima hal qilinmaydi * o'limga olib keladigan xatolar. * Sinxronizatsiya qiladi, "vahima: mesg" va * keyin ko'chadan. */vahima(s)char *s;{        panicstr = s;        yangilash();        printf("vahima:% s n", s);        uchun(;;)                bo'sh();}

Unix sifatida kod bazasi yaxshilandi, vahima() funktsiyani konsolga disk raskadrovka qilishning turli shakllarini tashlab yuborish uchun ham kuchaytirildi.

Sabablari

Uskunaning ishlamay qolishi natijasida vahima paydo bo'lishi mumkin yoki a dasturiy ta'minotdagi xato operatsion tizimda. Ko'pgina hollarda, operatsion tizim xatolik yuz bergandan keyin ishlashni davom ettirishga qodir. Biroq, tizim beqaror holatidadir va xavfsizlik buzilishi va ma'lumotlar buzilishining xavfini tug'dirish o'rniga, operatsion tizim qo'shimcha zararni oldini olish va xato diagnostikasini osonlashtirish uchun to'xtaydi va odatiy hollarda qayta ishga tushiradi.[10]

Dan yadro ikkilik rasmini qayta kompilyatsiya qilgandan so'ng manba kodi, yadro vahima paytida yuklash olingan yadro, agar yadro to'g'ri tuzilmagan, kompilyatsiya qilinmagan yoki o'rnatilmagan bo'lsa, bu keng tarqalgan muammo.[11] Qo'shimcha qurilmalar yoki noto'g'ri ishlash Ram operatsion tizimga mos kelmasligi yoki etishmayotganligi sababli, ishga tushirish paytida yadro xatolarining manbai bo'lishi mumkin qurilma drayveri.[12] Yadro ham kirishi mumkin vahima() agar uni topa olmasa root fayl tizimi.[13] Yadroning so'nggi bosqichlarida foydalanuvchilar maydoni boshlash, agar vujudga kelsa, vahima qo'zg'atiladi init muvaffaqiyatsiz. Agar init jarayoni tugasa, vahima qo'zg'ashi mumkin, chunki tizim undan foydalanishga yaroqsiz bo'ladi.[14]

Quyida Linux yadrosining yakuniy initsializatsiyasi amalga oshiriladi kernel_init ():[15]

statik int __ref kernel_init(bekor *foydalanilmagan){         ...        /*         * Biz ularning har birini muvaffaqiyatga erishguncha sinab ko'ramiz.         *         * Agar biz bo'lsa, Bourne qobig'i init o'rniga ishlatilishi mumkin         * chindan ham buzilgan mashinani tiklashga harakat qilmoqda.         */        agar (buyruqni bajarish) {                agar (!run_init_process(buyruqni bajarish))                        qaytish 0;                pr_err("% S bajarilmadi. Birlamchi parametrlarni bajarishga urinish ... n",                        buyruqni bajarish);        }        agar (!run_init_process("/ sbin / init") ||            !run_init_process("/ etc / init") ||            !run_init_process("/ bin / init") ||            !run_init_process("/ bin / sh"))                qaytish 0;        vahima("Init topilmadi. Init = parametrni yadroga o'tkazib ko'ring."              "Yo'riqnoma uchun Linux Documentation / init.txt-ga qarang.");}

Operatsion tizimning o'ziga xos xususiyatlari

Linux

IKVM konsolida ko'rinib turganidek, yadro vahimasi

Yadro vahima paydo bo'ladi Linux boshqalar kabi Unixga o'xshash tizimlari, ammo ular yana bir xil xato holatini keltirib chiqarishi mumkin, a yadro xafa.[16] Bunday holda, yadro odatda ishlashni davom ettiradi o'ldirish huquqbuzarlik jarayon. Kutilmaganda ba'zi quyi tizimlar yoki manbalar mavjud bo'lmasligi mumkin, chunki ular keyinchalik yadro vahimasiga olib kelishi mumkin.

Linuxda yadro vahimasi kritik holatning ingl.[17]

macOS

Yadro vahima paydo bo'lganda Mac OS X 10.2 dan 10.7 gacha, kompyuterda foydalanuvchiga tizimni qayta yoqish kerakligi to'g'risida ko'p tilli xabar ko'rsatiladi.[18] 10.2 dan oldin an'anaviy Unix uslubidagi vahima xabari namoyish etildi; 10.8 va undan keyingi versiyalarda kompyuter avtomatik ravishda qayta yoqiladi va qayta ishga tushirilgandan so'ng xabar paydo bo'ladi. Xabarning shakli har versiyada turlicha:[19]

  • 10.0-10.1: Tizim ekranda matnni aks ettiradi, xato haqida batafsil ma'lumot beradi va javob bermaydi.
  • 10.2: qora shaffof pardani pastga siljitib, keyin oq fonda foydalanuvchiga kompyuterni qayta yoqish kerakligi to'g'risida xabar beradi. Xabar ko'rsatilgan Ingliz tili, Frantsuz, Nemis va Yapon.
  • 10.3-10.5: yadro vahima 10.2 versiyasi bilan deyarli bir xil, ammo xato ekranining fonida qora rang mavjud.
  • 10.6-10.7-10.8: Matn qayta ko'rib chiqilgan va hozirda a Ispaniya tarjima.
  • 10.9 va undan keyingi versiyalar: Kompyuter darhol qayta yoqilguncha javob bermay qoladi. Kompyuter zaxira nusxasini yaratgandan so'ng, yadro vahimasi tufayli kompyuterni qayta boshlash haqida bir necha soniya davomida ogohlantirish xabarini ko'rsatadi va keyin kompyuter zaxira nusxasini qayta ishga tushiradi. Xabar hozirda Xitoy tarjima.

Ba'zan birinchisidan uch daqiqa o'tgach, beshta yoki undan ortiq yadro vahima paydo bo'lganda, Mac a-ni namoyish etadi taqiqlovchi belgi 30 soniya davomida ushlab turing va keyin o'chirib qo'ying (bu "takrorlanadigan yadro vahimasi" deb nomlanadi).

10.2 dan yuqori bo'lgan barcha versiyalarda matn a-ga joylashtirilgan kutish belgisi va to'liq ekran emas. Nosozliklarni tuzatish to'g'risidagi ma'lumotlar saqlanadi NVRAM va qayta yuklashda jurnal fayliga yozilgan. 10.7-da yadro vahimasidan so'ng avtomatik ravishda qayta boshlash xususiyati mavjud. Ba'zi hollarda, 10.2 va undan keyingi versiyada kutish belgisiga qo'shimcha ravishda xato haqida batafsil ma'lumot paydo bo'lishi mumkin.

Shuningdek qarang

Adabiyotlar

  1. ^ "KP - Kernel Panic (Linux) | AcronymFinder". www.acronymfinder.com. Olingan 6 yanvar, 2016.
  2. ^ "Xatolarni tekshirish (ko'k ekranlar)". Uskunani yaratish markazi - Microsoft.
  3. ^ Xofman, Kris. "Windows 10-ning o'limning yashil ekrani borligini bilasizmi?". Qanday qilib Geek. Olingan 4 iyun, 2020.
  4. ^ "FreeBSD 11.0 - vahima uchun odam sahifasi (freebsd 9-bo'lim) - Unix va Linux buyruqlari". www.unix.com.
  5. ^ "yuklashda xatolik yuz berdi - Unix Linux forumlari - HP-UX". www.unix.com.
  6. ^ Randolf J. Xerber (1999 yil 1 sentyabr). "Re: PANIC: init o'ldi". Yangiliklar guruhicomp.sys.sgi.admin.
  7. ^ Daniel P. Siewiorek; Robert S. Svarz (1998). Ishonchli kompyuter tizimlari: dizayn va baholash. A K Peters, Ltd. p. 622. ISBN  978-1-56881-092-8. Olingan 6 may, 2011.
  8. ^ "Unix va Multics". www.multicians.org.
  9. ^ Manba kodi /usr/sys/ken/prf.c dan V6 UNIX
  10. ^ Stiven M. Xenkok (2002 yil 22-noyabr). Tru64 UNIX muammolarini bartaraf etish: tizim muammolarini diagnostika qilish va tuzatish HP Technologies SeriesITPro to'plami. Raqamli matbuot. 119–126 betlar. ISBN  978-1-55558-274-6. Olingan 3-may, 2011.
  11. ^ Maykl Jang (2006). Geekslar uchun Linuxni bezovta qilish. O'Reilly Media, Inc. 267-274 betlar. ISBN  978-0-596-00801-7. Olingan 29 aprel, 2011.
  12. ^ Devid Pogue (2009 yil 17-dekabr). Mac-ga o'tish: Yo'qolgan qo'llanma, Snow Leopard Edition. O'Reilly Media, Inc. p. 589. ISBN  978-0-596-80425-1. Olingan 4-may, 2011.
  13. ^ Greg Kroah-Xartman (2007). Qisqacha aytganda Linux yadrosi. O'Reilly Media, Inc. p. 59. ISBN  978-0-596-10079-7. Olingan 3-may, 2011.
  14. ^ Volfgang Mauerer (2008 yil 26 sentyabr). Professional Linux yadrosi arxitekturasi. John Wiley va Sons. 1238–1239 betlar. ISBN  978-0-470-34343-2. Olingan 3-may, 2011.
  15. ^ linux / init / main.c, LXR o'zaro faoliyat yo'naltiruvchi
  16. ^ "Linux qurilmasi drayverlari, 4-bob " (PDF).
  17. ^ Jeyms Kirkland; Devid Karmayl; Kristofer L. Tinker; Gregori L. Tinker (2006 yil may). Tizim ma'murlari va quvvat foydalanuvchilari uchun Linux muammolarini bartaraf etish. Prentice Hall. p. 62. ISBN  9780132797399. Olingan 5 fevral, 2016.
  18. ^ "OS X: Yadro vahima haqida - Apple Support". support.apple.com.
  19. ^ "Mac OS X uchun yangi o'lim ekrani". OSXBook.com.