운영체제
운영체제는 애플리케이션(줄여서 앱)에게 지금 당신이 사용하고 있는 컴퓨터, 노트북 컴퓨터, 스마트폰, 스마트 TV, 테블릿 PC 등을 사용할 수 있게 해주는 것이다.
즉, 지금 이 문서를 보는데 필수불가결한 프로그램의 왕인 것이다.
운영체제의 심장은 커널이라는 프로그램이며 만약 커널에 문제가 생긴다면 블루스크린, 레드스크린, 블랙스크린 등 커널 패닉이라는 현상을 일으킨다.[1]
커널은 프로그램이 실행되는 단위인 프로세스의 실행 시간 비중을 결정하는 프로세스 스케줄링, 가상 메모리 등의 메모리(RAM) 관리, 연산 자원 공유 관리 체계 및 입출력 제어로 구성되어 있다.
커널 외에 사용자와 상호작용을 하고 사람이 내린 명령을 커널로 전달하는 쉘(Shell), 장치의 제어를 담당하는 디바이스 드라이버 및 파일 관리용 파일 시스템 구현 코드 등이 있다. 이것들이 쉘 정도를 제외하고 통째로 합본 형태로 존재하면 모놀리식 커널(Monolithic kernel), 디바이스 드라이버 등이 커널과 완전히 분리된 프로세스로 존재하면 마이크로커널(Micro-kenel)이라고 한다. 극단적으로는 프로세스, 메모리 영역, 파일 데이터 등을 전부 공유 가능한 객체로 보고 자원 관리 기능만 남긴 엑소커널(Exo-kernel) 같은 괴상한 분류도 있으나, 실험적인 부류의 커널이라 대중적으로 쓰이지 않는다. 리눅스가 대표적인 모놀리식 커널이며, 마이크로커널은 QNX 같이 덜 유명한 조립식 구조의 운영체제에서 쓰이는 편이다. 윈도우즈와 macOS의 경우에는 일부 디바이스 드라이버 정도만 커널에서 분리한 혼합형 커널이다.
현재 세계에서 가장 많이 쓰이는 PC 운영체제는 윈도우로 사실상 독식을 했다.
하지만 임베디드 전자기기와 서버용으로는 윈도우보다 커스텀이 쉬운 리눅스 계열 운영체제가 압도적으로 더 많이 쓰인다. 그래서 IT기기를 통틀어 종합적으로는 리눅스계 운영체제의 판정승이다. 물론 극단적으로 사양을 낮추면 리눅스로도 어림 없고, RTOS라고 극도로 단순화하여 실시간 데이터 처리를 가능하게 한 전용 운영체제 종류를 쓴다.