2023-11-24 작성

시스템 소프트웨어(System software)의 종류

소프트웨어는 크게 2가지로 분류할 수 있다.

  • 시스템 소프트웨어(System software)
  • 응용 소프트웨어(Application software)

시스템 소프트웨어

시스템 소프트웨어는 하드웨어를 컨트롤할 수 있는 소프트웨어를 말한다. 대표적인 예로 운영체제(OS)가 있다.

예를 들어, 곰플레이어로 영상을 보고 싶다고 가정해 보자.곰플레이어는 모니터에게 "영상을 출력해" 라고 말할 권한이 없어서 운영체제로 요청해야 한다.

곰플레이어가 운영체제에게 "모니터에 영상을 출력해주면 안 될까?" 요청하면 운영체제는 받아들인다. 그제야 하드웨어는 운영체제의 명령을 받아 모니터에 영상을 출력한다.

이렇게 하드웨어를 컨트롤할 수 있는 소프트웨어가 시스템 소프트웨어다. 장치를 움직이게 하는 소프트웨어인 셈이다. 

단순하게 설명하자면, 시스템 소프트웨어란 과묵한 아버지(하드웨어에 해당)와 자식들(응용 소프트웨어에 해당) 사이를 이어주는 어머니 같은 소프트웨어라고 이해하면 대충 맞는다. 이런 집에서 어머니가 없어지면 아버지와 자식들 간에 상호작용이 일어날 수 없듯이, 시스템 소프트웨어가 없는 시스템은 전혀 돌아가질 않는다.

응용 소프트웨어

시스템 소프트웨어의 도움을 받아 사용자가 원하는 작업을 처리해 주는 것이 바로 응용 소프트웨어다. 다른 말로 애플리케이션, 솔루션이라고도 불린다.

즉, 시스템 소프트웨어라는 플랫폼 위에서 구동되는 프로그램으로, 사용자가 원하는 각종 기능을 제공한다. 영상을 재생하거나, 게임을 하거나, 글자를 입력해 문서를 만들 수 있게 해주거나, 데이터를 보관했다가 찾을 수 있게 해주는 등 다양한 응용 소프트웨어가 있다.

인터넷, 파워포인트, 엑셀, 게임, 동영상 플레이어 등 다양한 응용 소프트웨어는 운영체제의 도움을 받아 실행되고 있으며, 응용 소프트웨어가 우리가 컴퓨터를 사용하는 궁극적인 목적인 셈이다.

시스템 소프트웨어의 종류

  • 운영체제(OS)
  • 링커(linker)
  • 로더(loader)
  • 컴파일러(compiler)
  • 어셈블러(assembler)
  • 유틸리티(utility)


1) 운영체제

하드웨어를 움직이게 할 수 있는 권한은 운영체제만 가질 수 있다. 운영체제는 CPU, 메모리, 하드디스크 등 하드웨어를 관리해주고, 내 컴퓨터와 다른 컴퓨터들이 대화할 수 있도록 도와주는 등 많은 일들을 해준다.

운영체제가 있기 때문에 우리는 마우스가 어떻게 컴퓨터에서 인식되는지, 마우스 움직임이 모니터 화면에 어떻게 표시되는지, 카톡에서 보낸 메시지가 저 멀리 떨어진 다른 컴퓨터로 어떻게 보내지는지, 모니터에 사진이 어떻게 나타나는지 신경 쓸 필요가 없다.

2) 링커

하나의 결과를 출력하기 위해 작성된 서로 다른 작은 프로그램들을 연결하여 실행파일로 만들어준다.

3) 로더

하드디스크와 같은 보조기억장치에 저장되어 있는 특정 프로그램을 CPU가 실행하기 위해 주기억장치에 적재하는 과정을 담당한다.

4) 컴파일러

소스코드를 중간코드(목적코드)로 번역한다. 예를 들어 Java에서 컴파일을 하면 바이트코드(Bytecode)로 변환된다. 이 바이트코드는 기계가 바로 읽을 수 있는 형태가 아니고, 가상머신이 이해할 수 있는 중간 코드

5) 어셈블러

그 중간코드에서 기계어 코드를 만들어내는 역할을 한다. 중간코드를 컴퓨터가 직접 이해할 수 있는 기계어로 작성된 목적프로그램으로 1:1 대응시켜 준다.

관련 용어

1) 펌웨어(firmware)

응용 소프트웨어처럼 별도의 설치 과정을 거치는 것이 아니라 하드웨어의 롬(ROM)에 저장되어 하드웨어를 제어하는 역할을 수행하는 소프트웨어이다.

2) 미들웨어(middleware) 

서로 다른 기종의 하드웨어, 프로토콜, 통신환경 등을 연결하여 응용 프로그램과 그 프로그램이 운영되는 환경 간에 원만한 통신이 이루어질 수 있게 하는 소프트웨어이다.

3) 플러그 앤드 플레이

키보드, 마우스, 모니터 등의 장치를 사용할 때도 운영체제에 각각의 드라이버를 설치해야 한다. 하지만 요즘 운영체제에는 잘 알려진 드라이버가 포함되어 있기 때문에 장치를 컴퓨터에 꼽기만 하면 운영체제가 대부분 알아서 인식해 준다. 이것을 플러그 앤드 플레이라고 한다. 컴퓨터에 장치를 연결하면 바로 사용할 수 있게 해주는 운영체제의 기능이다. 

References