2024. 11. 8. 15:24ㆍ자격증/정보보안기사

3,2,1 소리질러 !! 컴퓨터를 한다면 남녀노소 누구나 이 화면을 본다면 분노가 치밀어 오를 것이다.
만약 분노하지 않는다면 당신은 그저 God ... 주변에 친구들이 많을 것 같은 사람이다.
[그림1]은 Windows가 설치 되어 있는 컴퓨터에서 나오는 오류이고 우리는 이를 블루 스크린이라고 한다.
블루스크린.. 그것은 바로 이번 포스팅에서 우리가 알아볼 커널(Kernel)에서의 문제가 발생하여 알려주는 알림창이다.
쉽게 설명하자면 자동차의 엔진에 심각한 문제가 생겨 더 이상 안전하게 주행할 수 없다고 판단하여 갑자기 멈춰서는 것과 비슷한 원리이다.
그렇다면 커널(Kernel)은 얼마나 중요한 역할을 하기에 컴퓨터를 멈추기까지 하는 걸까?
1. 커널(Kernel) 이란?
커널은 운영체제의 일부이다. 운영체제가 하는 수많은 기능 중에서 메모리/기타 장치들을 관리하고 시스템의 보안 및 접근을 관리한다.

우리가 흔히 보는 바탕화면과 여러 아이콘들은 사용자가 편리하게 컴퓨터에 접근할 수 있도록 만들어진 운영체제의 프로그램이다. 사용자는 UI를 통해 자신이 하고 싶은 것을 실행하고 이 때, 커널은 사용자의 명령을 컴퓨터 하드웨어로 전달하는 역할을 한다. 물론 프로그램이 충돌되지 않고 자원을 효율적으로 사용할 수 있도록 매우 똑똑하게 처리한다.
커널은 컴퓨터 프로그램의 실행과정에서 이처럼 매우 중요한 역할을 하기 때문에 커널 패닉(Kernel Panic)이 발생하면 컴퓨터가 블루스크린을 띄우며 멈춰버리는 현상이 발생하는 것이다.(예를들면, 프로그램을 너무 많이 실행시켜 메모리에 과부하가 걸릴 것으로 판단되면 블루스크린을 띄워 이를 중단시켜버리는 것이다.)
2. 커널의 종류
일반 PC사용자라면 사실상 커널의 종류는 저세상 이야기라 skip해도 문제가 없다. 하지만 IT 업계 종사자라면 그 중에도 서버관련 엔지니어라면 커널의 종류는 필수 지식이다. 왜냐하면 ! 커널의 종류를 안다면 시스템 로직 파악이 매우 쉽기 때문이다. 다음 아래의 표는 대표적인 운영체제별 커널의 종류이다.
| 제조사 | 운영체제 | 커널명 | 커널구조 | 특징 |
| Microsoft | Windows | Windows NT | 하이브리드 커널 | 1. 멀티코어 환경에서 성능확대 2. 사용자 모드와 관리자 모드를 분리하여 시스템 안정성 보장 |
| RedHat | RHEL | Linux | 모놀리딕 커널 | 1. 오픈소스로 제공되어 다양한 배포판 존재 2. 가상 메모리, 프로세스 스케줄링 등 효율성 증대 3. 높은 커스터마이즈 가능성 제공 |
| Fedora | Linux | |||
| CentOS | Linux | |||
| Debian | Ubuntu | Linux | ||
| Apple | macOS | XNU | 하이브리드 커널 | 1. 멀티코어 CPU 효율적으로 활용 2. 고유 보안 모델과 메모리 관리 제공 |
| iOS | XNU | |||
| Android | Linux | 모놀리딕 커널 | 1. 모바일 장치에 최적화 2. 전력관리 기능이 모바일에 맞추어 강화 3. SELinux 정책을 적용하여 앱 권한 관리 |
|
| Samsung | Tizen | Linux | ||
| Oracle | Solaris | Unix | 모놀리딕 커널 | 1. 고성능 서버 최적화 2. 네트워크, 클러스터, 보안 기능 강화 3. 성능 모니터링 기능 지원 |
| HP | HP-UX | Unix | ||
| IBM | AIX | Unix |
* 모놀리딕 커널과 하이브리드 커널이란?
1) 모놀리딕 커널
- 커널 내 핵심 기능(파일 시스템, 장치 드라이버, 메모리 관리 등)이 하나의 프로그램으로 통합
- 하나의 프로그램에서 처리하여 호출 속도가 빠르지만 시스템이 커질 수록 코드가 복잡해져 디버깅이 어려움
2) 마이크로 커널
- 최소한의 핵심 기능만 커널 내에 포함. 나머지 기능은 사용자 공간에서 수행
- 구조가 단순하여 안정성이 높아 모듈화가 쉽지만, 시스템 호출이 자주 발생할 경우 성능이 떨어짐
3) 하이브리드 커널(모놀리딕+마이크로)
- 마이크로 커널과 모놀리딕 커널의 장점을 결합한 형태
- 커널 공간에 중요한 시스템 서비스를 포함하여 높은 성능을 제공하면서 일부 기능은 사용자 공간으로 옮겨 충돌 시 시스템 안정성을 유지함
- 각 기능들을 모듈화하여 각 드라이버 업데이트 시 컴퓨터를 재부팅하지 않아도 됨.
예를들어 윈도우에서 네트워크 드라이버를 업데이트 해도 시스템 재부팅을 하지 않아도 됨

무튼 커널의 종류를 설명하면서 가장 말하고 싶었던 것은 같은 커널을 쓰면 시스템 로직이 비슷하다는 부분이다.
IT 보안 관련 일을 하다보면 수많은 제조사에 만든 방화벽이나 네트워크 장비들을 다루게 되는데 각 제조사 별로 OS 일부를 커스텀 했을 뿐이지 결국 커널은 같기 때문에 네트워크나 보안 처리 방식은 비슷하다.
대부분의 보안 장비들이 Linux 커널 기반에 OS를 올리는데 그렇기 때문에 Linux의 네트워크 모듈인 Netfilter를 알고, 보안 모듈인 iptables, selinux, tcpwrapper를 안다면 해당 장비의 시스템 로직은 금방 통달할 수 있다.
다음 포스팅에서는 운영체제가 프로세스를 실행시키는 과정에 대해서 설명할 예정이다.
'자격증 > 정보보안기사' 카테고리의 다른 글
| [정보보안기사] 메모리의 처리 과정 (0) | 2024.11.10 |
|---|---|
| [정보보안기사] 운영체제(OS)란?(의미와 실행 과정) (12) | 2024.11.07 |