"커널 패닉"이란 무엇입니까?


19

컴퓨터에 "커널 패닉" 이 있다는 것은 무엇을 의미 합니까?

Windows BsoD 와 동일합니까 ?

또한 커널 패닉발생할 때 사용자가 사용할 수 있는 방법, 팁, 트릭 은 무엇입니까?


3
커널 패닉은 BSOD보다 낫습니다. 이름은 사용자가 발생할 때 수행해야하는 작업을 의미하기 때문입니다.
amphetamachine

파란 창문도 정보를 제공하지만 대부분의 시간에는 그다지 도움이되지 않습니다.
ott--

답변:


16

커널 패닉은 BSOD와 동일하며 복구 할 수없는 IIRC입니다. 그러나 작은 실패는 커널의 일부 오류를 나타내는 OOPS입니다.

  1. 패닉시 새로운 커널로 전환 하는 kexec 를 사용할 수 있습니다 (빠른 재부팅으로 위협 할 수 있음)-의미있는 시스템 덤프로 문제를 디버깅 할 수 있습니다
  2. panicn 초 후에 커널을 재부팅 하는 매개 변수를 사용할 수 있습니다 . 이런 경우 GRUB에 폴백 커널로 전환하도록 지시 할 수 있습니다.
  3. Magic SysRQ 키 를 사용 하여 스택 추적 등을 인쇄 하십시오 .

6
BSOD가 더 정확한 경우 오류 메시지 화면이 매우 나쁜 KP입니다.
xenoterracide

가장 주목할만한 마술 SysRq는 emergency sync버퍼를 플러시하는 것입니다 (아직 가능할 때).
ott--

6

Linux 커널 패닉은 커널 로직이 정상 로직의 연속 실행을 불가능하거나 무책임하게 만드는 조건이 존재한다고 판단 할 때 커널이 실행하는 서브 루틴 호출입니다.

커널은 다음과 같은 경우에 패닉을 호출 할 수 있습니다.

  1. 커널 코드 또는 스택에서 소프트웨어 오류를 감지합니다.
  2. 종료 가능한 프로세스가없는 메모리 부족과 같은 런타임 조건이있는 경우
  3. 권한 모드 실행 중 CPU 예외로 인해 oops 조건이 발생 함

3.X 커널에서 패닉이 호출되는 조건은 약 950 가지입니다. 패닉 서브 루틴은 먼저 커널 스택 덤프 및 CPU 레지스터를 콘솔에 인쇄합니다. 그런 다음 충돌 kexec 커널이 구성된 경우 kexec 커널을 부팅합니다. 그렇지 않으면 패닉 루틴이 모든 스핀 록을 파열시키고 비상 재시작을 수행합니다.

oops는 특권 (즉, 커널) 모드에서 실행하는 동안 발생하는 CPU 예외에 대해 CPU 예외 핸들러에서 호출되는 서브 루틴입니다. 커널 코드 오류나 하드웨어 오류 또는 특정 예외를 발생시키는 외부 조건으로 인해 예외가 발생할 수 있습니다. 예외 처리기는 CPU 레지스터 및 모듈 목록과 함께 커널 로그를 인쇄합니다. 패닉 호출과 달리 커널 논리 자체는 CPU 예외 처리기 컨텍스트 외부에서 oops를 호출하지 않습니다.

커널이 kexec에 대해 구성된 경우, oops로 인해 kexec 커널이 부팅됩니다. 그렇지 않으면 인터럽트 처리기를 실행하는 동안 예외가 발생하면 oops로 인해 커널 패닉 호출이 발생합니다. 그렇지 않으면 커널이 "패닉 온 oops"로 구성된 경우 oops는 패닉 호출을 발생시킵니다. 그렇지 않으면 커널은 예외 처리기를 종료하고 실행을 재개합니다. 커널이 예외 처리기를 종료하고 실행을 재개하면 커널의 무결성이 의심됩니다.

CPU 예외 처리기는 아키텍처에 따라 다릅니다. 이들은 일반적으로 arch / * / kernel / traps.c로 구현되며 인터럽트 테이블을 설정하는 아키텍처 별 커널 항목 코드에서 설정됩니다. 예를 들어, 참조 arch/powerpc/kernel/traps.carch/powerpc/kernel/head_fsl_booke.S.

커널 패닉 및 oops 조건은 kmsg_dump충돌 디버깅 정보를 RAM에 저장하거나 oops가 인터럽트 컨텍스트에서 발생하지 않는 한 메모리를 플래시하는 데 사용할 수 있는 루틴 을 호출하도록 구성 할 수 있습니다.이 경우 "kmsg_dump"루틴은 MTD가 아닌 RAM에 저장하십시오. RAM에 저장하는 경우 a) kexec 부팅 또는 비상 재시작 부팅 중에 사용 된 RAM 영역을 덮어 쓰지 않도록하고 b) kexec 커널 또는 부트 로더 로직에서 메모리 영역을 수집해야합니다.


5

예기치 않은 프로그램 흐름 동작입니다 (이 경우 커널은 프로그램입니다). 공황 프로그램의 경우 작동이 중지됩니다. 그것은 윈도우 BsoD와 같습니다. KP는 커널이나 모듈에 문제가 있음을 의미합니다. 커널이 안정적이라면 드라이버를 살펴보십시오. 특별하고 모든 드라이버가 공통적이지 않으면 하드웨어 문제 일 수 있습니다.


커널이 소풍을 간다.
uray

안정적인 커널에서도 항상 몇 가지 버그가 남아 있습니다.
ott--
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.