개발 공부를 하면서 가장 많이 들어본 단어 중 하나가 OS(운영체제)이다. 필자는 운영체제 종류 중 하나인 Windows와 스마트폰의 ios를 사용중이다. 그러면 운영체제에 대해서 자세히 아는가? 단순히 어플리케이션을 돌리기 위한 운영체제라고만 알고 있었다. 이번 기회로 운영체제에 대해서 공부해보겠다.
운영체제(Operating System)는 사용자가 컴퓨터를 사용하기 위해 필요한 소프트웨어이다.
운영체제 종류 : Windows, Linux, Mac OSX, Android, iOS 등
운영체제를 사용하는 주된 목적은 컴퓨터의 하드웨어를 관리하는 것이다. 컴퓨터의 수많은 하드웨어(CPU, 메모리, 디스크, 키보드, 마우스, 모니터, 네트워크 등)을 잘 관리해야만 컴퓨터를 효율적으로 사용할 수 있다.
만약 운영체제가 없다면, 위에서 말한 하드웨어를 사용자가 직접 관리해야하는 불편함을 겪을 것이다. 하지만 현재 많은 발전을 이룬 운영체제가 설치된 컴퓨터는 사용자에게 편의를 제공해준다.
즉, 운영체제는 컴퓨터의 성능을 높이고, 사용자에게 편의성 제공을 목적으로 하는 컴퓨터 하드웨어 관리하는 프로그램이다.
부팅은 PC전원 버튼을 누른 직후부터 운영체제가 메모리에서 동작하기 시작할 때까지의 과정을 일컫는 말이다. 아래는 컴퓨터 구조를 단순화한 이미지이다.
Processor는 CPU를 말하며, main memory는 ROM과 RAM으로 나누어져 있다.
운영체제는 크게 커널(kernel)과 쉘(shell)로 나눈다.
Application은 특정 운영체제에 맞춰서 만든다. 그러므로 한 애플리케이션은 서로 다른 운영체제에서 수행할 수 없다. (하드웨어가 같은 것은 전혀 상관이 없다.) 예를 들면 Windows에서 수행하는 프로그램을 그대로 Linux에 옮기면 수행되지 않는다.
애플리케이션은 위의 그림과 같이 운영체제 위에서 수행한다. 즉, 하드웨어 자원을 직접적으로 사용하지 않고 운영체제가 제공하는 자원만을 사용할 수 있다.