커널 패닉

(커널패닉에서 넘어옴)

커널 패닉(Kernel panic)은 어떤 운영체제커널이 와장창 꼬여버리는 상태를 말한다.

개요[편집 | 원본 편집]

좀 더 정확하게 얘기하자면, 운영체제의 커널은 시스템(메모리, 장치 등)의 관리를 도맡아 하는데, 관리를 하기 위한 행동을 해야할 때 순서를 못 정하게 된다거나, 그 행동을 더 이상 할 수 없을때, 멈출 수밖에 없고 운영체제가 거기서 멈추게 되는 걸 이른다. 가령 스레드 제어에 필요한 걸 저장해둔 메모리를 읽어야하는데, 그 자리에 갔더니 쓰레기 값이 저장되어 있고, 그래서 더 이상 제어를 할 수 없게 된다면, 거기서 스레드가 뻗거나, 그 스레드가 운영체제의 스레드라면 운영체제가 뻗는 것이다. 이 경우엔 재부팅이 거의 유일한 답이다.인간도 스트레스등으로 꼬여서 갑작스럽게 공황발작을 하기도 한다?

흔히 윈도우에서 보이고 잘 알려진 블루스크린이 대표적인 커널패닉. 물론 유닉스에도 Mac OS X에도 존재하며, 사실 모든 운영체제에 다 커널패닉이 있다. 단, 윈도우 98/Me를 제외하곤 어지간해서는 안보이지만 말이다.

커널 패닉은 커널에서 예기치 못한 형식이나 정상적으로 다룰 수 없는 명령어를 수신했을 때에 발생한다.(소프트웨어나 하드웨어의 오동작, 전기적인 노이즈로 인한 꼬인 데이터 취급 등)

운영체제별 커널 패닉[편집 | 원본 편집]

macOS[편집 | 원본 편집]

macOS의 경우 초기에는 커널 패닉이 윈도 XP 블루스크린과 비슷한 모양이었고 맥이 완전히 정지하였으며, 11.2.1인 지금에서도 상황은 마찬가지이다.

하드웨어 버그(...)로 커널 패닉이 나는 경우도 있는데 대표적인 사례는 2010, 2011 맥북 프로의 외장 그래픽 문제.

Microsoft Windows 시리즈[편집 | 원본 편집]

  • 9x 커널
    윈도우즈 95, 98의 커널 패닉은 크게 두 가지 원인을 가진다.
    • 일단 근본적으로 마이크로소프트의 윈도우즈 정책이 깔려있다. 마이크로소프트는 윈도우즈를 팔기 위해 레거시 지원(하위 호환, 과거 프로그램이 계속 잘 실행되도록 지원하는) 정책을 내세웠고, 이 때문에 윈도우즈 95, 98은 OS가 DOS단과 완벽히 분리된 커널을 가지고 있는 것이 아니라, 기본적으로 DOS단 16비트 커널을 깔고 거기에 윈도우단 32비트 커널과 쉘이 서로 붙어서 돌아가는 형태였다보니, 커널 자체의 안정화가 힘들었던 부분도 있다. 특히 버그가 있던 16비트 커널단에서 사용하는 메모리 트릭들이 특히 이런 부분에 민감했고, 윈도우즈 자체에서도 완벽히 메모리를 제어할 수가 없어서 메모리가 줄줄 새는 누수 현상이 심각했다.
    • 거기에, DOS 시절에는 비교적 주변기기가 활성화 되지 못하고 컴퓨터 그 자체도 비싸서 많이 사용되지 않았던 서드파티 주변 기기들이, 시대가 흐르며 기술이 발전하고, GUI가 걸출한 윈도우즈를 활용할 수 있게 됨으로써, 최종 소비자에게도 많이 접근성이 높아지게 된 것이 그 다음으로 큰 원인을 차지한다. 이런 서드파티 주변기기들을 윈도우즈에서 활용하기 위해서는 구동하기 위한 드라이버가 필요한데, 커널 자체가 워낙 구조가 지저분한 윈도우즈 95, 98이다보니 완벽하게 드라이버를 짤 수 있는 인력은 한정되어 있었고, 때문에 부족한 실력의 디자이너들이 짠 드라이버들이 오류를 자주 일으키게 되었다.
    이것들이 맞물리면서, 95, 98에서는 심심하면 블루스크린으로 불리는 커널 패닉을 볼 수 있던 것이다. 덤으로, 윈도우즈 Me에 이르러서는 윈도우즈 자체의 버그도 심각하다보니 아무래도 이런 현상이 심각할 수밖에 없다.
  • NT 커널
    반면 윈도우즈 NT 계열들은 비교적 안정성이 높다. 커널 자체가 DOS단과 아예 떨어져서(DOS를 그냥 돌리지 않고 에뮬레이트해서 돌림) 독립된 커널로 동작할 수 있게되다 보니, 메모리 누수도 적어지고 안정성도 높아졌다. 특히 2000과 XP 초중반 이후의 안정성은 꽤나 수준급이었으며, 이 시기 마이크로소프트가 드라이버에 대한 인증 제도를 강화하면서 커널 패닉의 비율이 줄어들게 되었다.
    최근에 들어서는 레거시 지원을 엄격하게 제한하며(Vista가 이 문제로 골치를 앓았음) 드라이버 에러가 발생하더라도 재시작이 가능한 경우 커널 패닉 없이 예외 처리하도록 동작해서 안정성이 높아졌으며, 어지간해서 하드웨어 자체의 심각한 에러(메모리단 OS 영역 미스, HDD 배드 섹터, SSD 사망 등)나 데이터가 유실되는 경우(바이러스나 DLL, 드라이버 파일의 변형 등)가 아닌 이상에야 커널 패닉을 볼 수 있는 경우가 매우 줄어들었다. 애초에 커널 패닉이 뜨면 과거에는 거기서 멈췄지만, 요새는 다시 시작 - 복구 루틴을 거치도록 해서 뜨더라도 보기도 어렵다.

리눅스[편집 | 원본 편집]

리눅스의 커널 패닉은 그리 자주 일어나는 일은 아니지만(물론 오랫동안 리눅스를 사용한 사람이라면 보게 된다) 별 거 없다. 시커먼 콘솔 화면에 Kernel panic 어쩌고 저쩌고 하는 메시지가 전부이다. 그리고 시스템 다운.

유닉스[편집 | 원본 편집]

커널 패닉 사진들[편집 | 원본 편집]


발생 원인[편집 | 원본 편집]

사실 상당히 많은 발생원인이 있으나 다음과 같은 원인이 대표적으로 꼽힌다.

  • 드라이버간 충돌 - 드라이버를 재설치하거나 오류코드 아래 해당되는 드라이버 파일에 속하는 것 전체를 삭제한다. 다만 윈도우 파일일 경우 이와 충돌되는 드라이버 파일을 찾아 삭제해야 한다.
  • 먼지로 인한 누전 - 청소해주자...
  • CPU 쿨러 팬 혹은 파워서플라이 팬 오작동 - 이 경우엔 아예 부팅 중에 팬이 작동하지 않는다면서 부팅이 안 된다.
  • 그래픽카드 자체 결함 - 모니터에 보이는 화면이 찢어지거나 그래픽 카드를 써야 하는 상황에서 갑자기 화면이 찢어지고 블루스크린이 뜬다면 가능성이 높다. 이후 수 차례 부팅하면서 가끔 화면이 찢어지는 것을 무시하고 사용하는 데, 보통 이대로 끌고 가면 퓨즈가 터지면서 GG...[1]
  • 램(Ram)카드에 먼지가 낌 - 거의 가장 많은 유저들이 겪는 문제이다. 컴퓨터 내부 청소를 하지 않아 먼지가 누적되고, 이 먼제가 램슬롯 및 램에 붙어 부팅 자체를 못 하게 만든다. 본체를 열어 먼지를 청소하면서, 램 슬롯에서 램카드를 빼서 금속 부분만 지우개로 지워주자.
  • 메인보드(혹은 마더보드)의 고장 - 이 경우도 부팅이 안 된다. 마더보드가 고장났다는 것은 가장 기초적인 부분이 망가졌다는 것으로 부팅이 되어도 정상 작동이 불가능하다.
  • 바이러스 - 당연히 바이러스 감염으로도 블루스크린이 뜬다.
  • 하드디스크 결함 - 이 경우도 부팅은 되지만 부팅 중 오류가 뜨며, 하드를 찾을 수 없다거나 하드가 망가졌다는 경고를 띄운다.
  • 윈도우 파일 중 일부가 깨짐 - 역시 이 경우도 부팅은 되지만 도중 오류가 떠서 파일을 찾을 수 없거나 윈도우 화면이 떠도 갑자기 블루스크린이 뜨면서 작동이 중지된다.

각주

  1. 보통 중고 구매가보다 수리비가 높게 책정되어서 새로 장만하라는 소리를 듣는 경우도 있다. 특히 최신형 그래픽카드가 아닌 철 지난 그래픽 카드 이용자들이라면!