OS란 Operating System의 약자로 시스템 하드웨어를 관리할 뿐 아니라 응용 소프트웨어를 실행하기 위하여 하드웨어 추상화 플랫폼과 공통 시스템 서비스를 제공하는 시스템 소프트웨어이다.
최근에는 가상화 기술의 발전에 힘입어 실제 하드웨어가 아닌 하이퍼바이저(가상 머신) 위에서 실행되기도 한다.
쉽게 말하자면, OS 운영체제는 컴퓨터를 효율적으로 관리하고 작동시키기 위한 프로그램이다. OS의 가장 대표적인 예로 window, mac, android, linux, ios, 등이 있으며 위와 같이 다양한 os가 존재한다.
운영체제는 [하드웨어(Hardware) ↔ 운영 체제(Kernel) ↔ 셸 / 응용 프로그램(shell) ↔ 사용자(User)]로
커널은 운영체제의 대부분이라고 봐도 될 정도로 가장 핵심적인 부분으로 software와 hardware간의 다리 역할을 하며 커뮤니케이션을 관리한다. 종류는 단일형, 마이크로, 혼합형, 나노, 엑소 커널이 있으며 커널은 가장 대표적으로 보안, 자원 관리, 추상화의 역할을 한다.
커널은 좀 더 기계(컴퓨터)에 가까운 쪽이라면 shell은 사람의 사용에 좀 더 가깝다. 우리는 컴퓨터가 사용하는 언어(ex:01011100)로 원하는 요청을 표현하는 것은 쉽지 않다. 따라서 사람의 언어로 표현을 하여 변환 시켜줘야 한다. 따라서 그 명령을 받아 컴퓨터에 맞는 언어로 전환해 커널에 전달하는 역할을 하는 프로그램이 shell이다.
대표적인 예로는 window에는 cmd, linux/unix/mac에는 bash,sh, csh, zsh등이 있다.
가장 흔히 볼 수 있는 window와 mac의 shell은 다음과 같다.
Terminal은 서버의 로컬이나 원격으로 접속할 수 있는 콘솔을 구현한 소프트웨어로 크게 GUI와 shell로 나눌 수 있다. 대부분 terminal을 열면 shell이 실행된다.
컴퓨터를 동작시키는 물리적 장치로 서버의 로컬 장치에서 직접 명령어를 작성할 수 있는 입출력 장치이다.
대부분 터미널과 콘솔을 혼용해서 사용하기도 한다. 다만 터미널은 원격제어 환경까지 포함하기에 더 넓은 범위라 할 수 있다.