Nhân hoảng loạn là gì?


52

Tôi vừa hoàn thành một khóa học hệ điều hành. Tôi nghe thấy cụm từ " hạt nhân hoảng loạn " rất nhiều. Bạn có thể giải thích

  1. Hạt nhân hoảng loạn là gì?
  2. Tại sao nó xảy ra?
  3. Làm thế nào tôi có thể phát hiện ra rằng một hoảng loạn hạt nhân xảy ra?
  4. Nó có ảnh hưởng gì đến hệ thống?
  5. Nó chỉ xảy ra trong Linux?
  6. Làm thế nào tôi có thể ngăn chặn nó?

Kernel panic là một phần của thông báo lỗi trên máy Mac. nếu nó nói là "hoảng loạn, chúng tôi đang treo ở đây" (một dự đoán là nó có thể là một phần của unix.)
Alvar

21
Nếu bạn đang làm một khóa học về HĐH, tại sao bạn không yêu cầu các giảng viên của mình giải thích thuật ngữ họ đang sử dụng? Bạn sẽ có nhiều hơn từ các nghiên cứu của bạn.
TRiG

Câu trả lời:


56

1 câu hỏi tại một câu hỏi thường gặp

  1. Nhân hoảng loạn là gì?
    Khi kernel không thể tải đúng cách hoặc "freaks out" và không khởi động đúng cách hoặc gặp sự cố (xem phần chỉnh sửa tín dụng ở phía dưới).

  2. Tại sao nó xảy ra?
    Cập nhật bị ẩn, lỗi phần cứng, phần cứng không được hỗ trợ, ổ đĩa hoặc phân vùng bị lỗi hoặc bị thiếu (xem phần chỉnh sửa tín dụng ở phía dưới)

  3. Làm thế nào tôi có thể hiểu hoảng loạn hạt nhân xảy ra?
    Xem lời nhắc khởi động (tắt tham số kernel im lặng) HOẶC máy của bạn không khởi động được

  4. Nó có ảnh hưởng gì đến hệ thống?
    Không khởi động được hoặc sự cố hệ thống

  5. Nó chỉ xảy ra trong Linux?
    Không, tất cả các hệ điều hành giống như unix có thể có sự hoảng loạn hạt nhân. Nó tương đương với Windows Blue Screen of Death

  6. Làm thế nào tôi có thể ngăn chặn nó?
    Nó thường không xảy ra. Kiểm tra cập nhật và khắc phục sự cố. Sử dụng ổn định thay vì các ngành phát triển.

Lưu ý thêm: hoảng loạn hạt nhân và lỗi / tắt hệ thống có thể trực tiếp chịu trách nhiệm bảo vệ máy tính của bạn khỏi thiệt hại vật lý. Các ví dụ bao gồm tạm dừng trước khi quá nóng hoặc hỏng đĩa. Xem chỉnh sửa tín dụng ở phía dưới để báo giá trực tiếp.

chỉnh sửa

Per B. Roland Thiếu hoặc ổ đĩa bị hỏng hoặc ổ đĩa cũng có thể gây ra điều này.
(Điểm tốt và tôi đã bỏ qua nó)

Per Kees Kernel hoảng loạn cũng có thể xảy ra trong khi chạy.
lưu ý: Có thể xảy ra khi một chức năng thất bại sắp xếp một cách duyên dáng bên trong kernel, nhưng hầu hết thường xảy ra trong quá trình tải mô-đun hoặc kernel (thường là trong khi khởi động). Tôi nghĩ rằng tôi đã chạm vào nó tại "trong khi khởi động hoặc sự cố hệ thống", nhưng tôi thấy câu trả lời của tôi cho (1) nói rằng nó chỉ xảy ra trong khi khởi động.

Mỗi trích dẫn trực tiếp rafalcieslak - 'Có một điều rất quan trọng phải được thêm vào: Điểm chính trong toàn bộ sự hoảng loạn của hạt nhân là bảo vệ máy tính của bạn. Hạt nhân đóng băng không chỉ vì nó không làm được gì mà còn để ngăn máy tính của bạn quá nóng, hỏng ổ cứng và bất kỳ vấn đề phần cứng nào khác, có thể xảy ra, nếu một số lệnh không chính xác được thực thi, đối với một mô-đun (đối với ví dụ một mô-đun chịu trách nhiệm điều khiển quạt) không tải được, v.v ... Đây là lý do tại sao hạt nhân thích đóng băng hơn là khắc phục vấn đề. '


3
Thêm vào q # 2: thiếu các tệp khởi động (ví dụ: khi thiếu âm lượng LVM) ...
antivirtel

@B. Roland Đã thêm và ghi có
RobotHumans

thật tuyệt, cảm ơn - tôi đã viết nó, bởi vì nó đã từng xảy ra với tôi ... (tôi đã vô tình định dạng một tập trong LVM ...)
antivirtel

8
Câu trả lời này không đúng. Một hoảng loạn hạt nhân không giới hạn chỉ là lỗi khởi động. Câu trả lời của JanC thì đúng hơn ("kernel phát hiện ra lỗi mà nó không thể phục hồi"). Không có khả năng khởi động chỉ là một trong nhiều điều kiện.
Kees Cook

2
Có một điều rất quan trọng phải được thêm vào: Điểm chính trong toàn bộ sự hoảng loạn của kernel là bảo vệ máy tính của bạn. Hạt nhân đóng băng không chỉ vì nó không làm được gì mà còn để ngăn máy tính của bạn không bị quá nóng, hỏng ổ cứng và bất kỳ sự cố phần cứng nào khác, có thể xảy ra, nếu một số lệnh không chính xác được thực thi, đối với một mô-đun (đối với ví dụ một mô-đun chịu trách nhiệm điều khiển quạt) không tải được, v.v ... Đây là lý do tại sao hạt nhân thích đóng băng hơn là khắc phục vấn đề.
Rafał Cieślak

31

Sự hoảng loạn hạt nhân xảy ra khi hạt nhân phát hiện ra lỗi mà nó không thể phục hồi. Một hàm được đặt tên panic()để xử lý tình huống này (thường bằng cách bỏ một số thông tin gỡ lỗi và / hoặc khởi động lại hệ thống) lần đầu tiên được giới thiệu trong một trong những phiên bản UNIX đầu tiên, do đó, cái tên đó xuất phát (và vẫn được gọi là trong hầu hết UNIX- như các hệ điều hành, bao gồm cả Mac OS X).

Blue Screen Of Death nổi tiếng (chính thức được gọi là lỗi hệ thống gây tử vong , như trong VMS / OpenVMS) trong kernel NT của Microsoft cũng là một dạng "hoảng loạn hạt nhân".

Một lỗi kernel linux mà kernel có thể (một phần hoặc tạm thời) phục hồi được gọi là oops kernel ( dmesgđôi khi bạn có thể thấy những lỗi trong đầu ra).

Các lý do cho sự hoảng loạn hạt nhân có thể là một lỗi trong kernel (ví dụ: trong trình điều khiển là một phần của kernel) hoặc sự cố phần cứng hoặc phần mềm gây ra tình trạng không mong muốn / không thể đoán trước cho kernel (ví dụ: khi không thể khởi động initproces, hoặc nó bị giết).

Để tìm hiểu nguyên nhân gây ra nó, bạn có thể xem liệu có bất cứ thứ gì được in trên màn hình hoặc tới bàn điều khiển nối tiếp (nếu bạn đã cấu hình một cái). Nếu nó được cấu hình để làm như vậy, bạn cũng có thể yêu cầu hệ thống tạo một kết xuất sự cố kernel linux , giúp lưu bộ nhớ kernel vào đĩa trong trường hợp hoảng loạn, để nhà phát triển kernel có thể phân tích nó (tất nhiên, điều đó đòi hỏi phải có có khả năng ghi vào đĩa). Trong một số trường hợp /var/log/messagescũng có thể có thông tin hữu ích (ví dụ: trong một số trường hợp, việc khôi phục từ một oops có thể dẫn đến một lỗi không thể phục hồi sau này). Có một số thông tin chi tiết hơn ở đây .


1

Tôi có một kernel hoảng loạn trên hệ thống của mình ngay bây giờ, Ubuntu 16.04. Máy tính của tôi đã phàn nàn đĩa khởi động đã đầy, vì vậy tôi đã chạy 'apt autoremove'. Nó đã loại bỏ những gì tôi nghĩ là các tệp không cần thiết và kết quả là sự hoảng loạn của kernel.

Vì vậy, tôi đoán bất kỳ mức độ chỉnh sửa nào của đĩa khởi động đều có thể gây ra sự hoảng loạn hạt nhân. Vì vậy, đừng dại dột với nó nếu bạn không chú ý đến những gì bạn đang làm.


Điều này không giúp giải quyết câu hỏi của OP. :(
Mike Williamson

1

Câu trả lời của @RobotHumans giải quyết tất cả các phần của câu hỏi của bạn. Tuy nhiên, tôi muốn giải thích các nguyên nhân của Kernel Panic.

Đầu tiên, có 2 loại Kernel Panic - Soft Kernel Panic (còn được gọi là Oops) và (Hard Kernel Panics, còn được gọi là Aieee!).

Một hệ thống chạy vào chế độ hoảng loạn hạt nhân cứng khi nó gặp một ngoại lệ không thể xử lý. Pan hoảng loạn hạt nhân tương đối dễ dàng hơn để xử lý.

Nguyên nhân của Kernel Panic

Có một số nguyên nhân, nhưng phổ biến nhất được liệt kê dưới đây:

  • RAM bị lỗi hoặc không tương thích là nguyên nhân phổ biến và thường gặp nhất của Kernel Panic.
  • Phần mở rộng hạt nhân lỗi thời, không tương thích hoặc bị hỏng
  • Trình điều khiển hạt nhân lỗi thời, không tương thích hoặc bị hỏng.
  • Tham nhũng đĩa cứng hoặc các vấn đề như các thành phần xấu hoặc tham nhũng thư mục cũng có thể dẫn đến hoảng loạn kernel.
  • Không đủ RAM hoặc dung lượng ổ cứng
  • Phần cứng bị lỗi, chương trình bị lỗi hoặc lỗi phần cứng cũng có thể dẫn đến kernel Panic.

Điều này cũng quan trọng cần lưu ý rằng chỉ các mô-đun nằm trong không gian kernel có thể gây ra sự hoảng loạn hạt nhân. lsmodlệnh có thể được chạy để có được một danh sách các mô-đun được tải động.

Để khắc phục sự cố hoảng loạn kernel, kiểm tra / var / log / message. Đôi khi tất cả các thông tin có thể được ghi lại ở đó trong khi đôi khi không có gì liên quan đến sự hoảng loạn hạt nhân có thể được ghi lại ở đó. Mặc dù không thể tránh khỏi tình trạng hoảng loạn hạt nhân, nhưng không có gì phải lo lắng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.