커널 패닉

위키백과, 우리 모두의 백과사전.
이동: 둘러보기, 검색
내부 시스템 오류가 발생하여 복구할 수 없는 상황에 처한 운영 체제가 보여주는 커널 패닉 메시지

커널 패닉(영어: kernal panic)은 운영 체제가 치명적인 내부 오류를 감지하여 안전하게 복구가 불가능할 때 취하는 동작이다. 이 용어는 유닉스유닉스 계열 운영 체제에서 널리 쓰인다. 마이크로소프트 윈도 운영 체제의 경우 버그 검사(bug check), BSOD 등의 용어를 사용한다.

역사[편집]

유닉스 커널은 오류 감지 매커니즘인 표명(assertion)을 통해 내부의 일관성과 런타임 정확성을 관리한다. 기본적인 가정은 하드웨어와 소프트웨어가 올바르게 동작하며 표명은 패닉(예를 들어 모든 시스템 활동에 대한 자발적인 중단)을 야기한다는 것이다. 커널 패닉은 초기 버전의 유닉스에 도입되었으며 유닉스와 그 전작인 멀틱스 간의 디자인 철학에 주된 차이점을 증명하였다.

원래의 panic() 함수는 유닉스 제 5판부터 VAX 기반 유닉스 32V까지 근본적인 변화는 없었고 다른 정보 없이 오류 메시지만 출력한 다음 시스템을 무한 유휴 루프로 빠져들게 했다.

유닉스 V6panic() 함수의 소스 코드는 다음과 같다:[1]

/*
 * In case console is off,
 * panicstr contains argument to last
 * call to panic.
 */
char    *panicstr;

/*
 * Panic is called on unresolvable
 * fatal errors.
 * It syncs, prints "panic: mesg" and
 * then loops.
 */
panic(s)
char *s;
{
        panicstr = s;
        update();
        printf("panic: %s\n", s);
        for(;;)
                idle();
}

유닉스 코드베이스가 강화되면서 panic() 함수는 다양한 형태의 디버깅 정보를 콘솔에 출력하도록 개선되었다.

각주[편집]