OS(운영체제)

이상우·2022년 1월 14일
0

개발 공부를 하면서 가장 많이 들어본 단어 중 하나가 OS(운영체제)이다. 필자는 운영체제 종류 중 하나인 Windows와 스마트폰의 ios를 사용중이다. 그러면 운영체제에 대해서 자세히 아는가? 단순히 어플리케이션을 돌리기 위한 운영체제라고만 알고 있었다. 이번 기회로 운영체제에 대해서 공부해보겠다.

OS(운영체제)의 정의

운영체제(Operating System)는 사용자가 컴퓨터를 사용하기 위해 필요한 소프트웨어이다.
운영체제 종류 : Windows, Linux, Mac OSX, Android, iOS 등

운영체제 목적

운영체제를 사용하는 주된 목적은 컴퓨터의 하드웨어를 관리하는 것이다. 컴퓨터의 수많은 하드웨어(CPU, 메모리, 디스크, 키보드, 마우스, 모니터, 네트워크 등)을 잘 관리해야만 컴퓨터를 효율적으로 사용할 수 있다.
만약 운영체제가 없다면, 위에서 말한 하드웨어를 사용자가 직접 관리해야하는 불편함을 겪을 것이다. 하지만 현재 많은 발전을 이룬 운영체제가 설치된 컴퓨터는 사용자에게 편의를 제공해준다.

즉, 운영체제는 컴퓨터의 성능을 높이고, 사용자에게 편의성 제공을 목적으로 하는 컴퓨터 하드웨어 관리하는 프로그램이다.

부팅(Booting)

부팅은 PC전원 버튼을 누른 직후부터 운영체제가 메모리에서 동작하기 시작할 때까지의 과정을 일컫는 말이다. 아래는 컴퓨터 구조를 단순화한 이미지이다.

Processor는 CPU를 말하며, main memory는 ROM과 RAM으로 나누어져 있다.

  • Rom : 비휘발성 으로 메모리에서 극히 일부를 차지한다.(수 KB)
  • RAM: 휘발성 으로 메모리의 대부분을 차지하며 실제 프로그램이 할당되는 곳이다.(수 MB ~ 수 GB)
    ROM은 하드디스크와 같이 비휘발성으로 전원이 꺼져도 그 안의 내용이 계속 유지된다. RAM은 휘발성이므로 전원이 꺼지면 메모리안의 모든 내용이 지워진다.
  1. 컴퓨터의 전원이 켜지면 프로세서(CPU)에서 ROM에 있는 내용을 읽는다. ROM안에는 POST(Power-On Self-Test), 부트 로더(boot loader)가 저장되어 있다. POST는 전원이 켜지면 가장 처음에 실행되는 프로그램으로 현재 컴퓨터의 상태를 검사한다. POST 작업이 끝나면 부트 로더가 실행된다.
  2. 부트 로더는 하드디스크에 저장되어 있는 운영체제를 찾아서 메인 메모리(RAM)에 가지고 온다. 이러한 부트 로더의 과정을 부팅(Booting)이라고 한다.

운영체제는 크게 커널(kernel)쉘(shell)로 나눈다.

  • 커널
    커널은 운영체제의 핵심이다. 쉽게 말해, 소프트웨어와 하드웨어간의 커뮤니케이션을 관리하는 프로그램이다.
    운영체제에서 가장 중요한 구성요소로서 입출력을 관리하고 소프트웨어로부터의 요청을 컴퓨터에 있는 하드웨어(CPU, 메모리, 저장장치등)가 처리 할 수 있도록 요청을 변환하는 역할을 한다. 이렇게 하드웨어를 관리하고 필요한 프로세스를 나눠주는 등 여러 시스템 자원을 제어하고, 컴퓨터 부팅시 부트로더에 의해 로드되어 항상 메모리에 상주하게 된다.

  • 사용자와 운영체제간에 대화를 가능하게 해주는 명령어 해석기 역할을 말한다.
    사용자(명령) -> 쉘(해석) -> 커널(명령 수행 후 결과 전송) -> 쉘(해석) -> 사용자(결과 확인)

운영체제의 위치

Application은 특정 운영체제에 맞춰서 만든다. 그러므로 한 애플리케이션은 서로 다른 운영체제에서 수행할 수 없다. (하드웨어가 같은 것은 전혀 상관이 없다.) 예를 들면 Windows에서 수행하는 프로그램을 그대로 Linux에 옮기면 수행되지 않는다.

애플리케이션은 위의 그림과 같이 운영체제 위에서 수행한다. 즉, 하드웨어 자원을 직접적으로 사용하지 않고 운영체제가 제공하는 자원만을 사용할 수 있다.

참고 사이트

profile
구상한것을 구현할 수 있는 개발자가 되고 싶습니다.

0개의 댓글