응용 소프트웨어 ( 또는 애플리케이션 소프트웨어) 는 특정 분야의 업무를 처리하기 위해 또는 특수한 문제해결을 위해 만들어지는 프로그램이다.
ex) 한글, 엑셀 등
시스템 소프트웨어를 문제 해결과 구동을 위해 사용한다.
컴퓨터를 효율적으로 운영하여 제어하기 위한 프로그램
✔️ 시스템 소프트웨어(system software)는 컴퓨터의 작업을 돕는 여러가지 프로그램들로 구성되어있다. ex) Text Editor, Compiler, Debugger
응용 소프트웨어를 실행하기 위한 플랫폼을 제공하고 컴퓨터 하드웨어를 동작, 접근할 수 있도록 설계된 컴퓨터 소프트웨어로써 컴퓨터 시스템의 운영을 위한 모든 컴퓨터 소프트웨어에 대한 일반 용어이다.
✔️ 시스템 소프트웨어는 기계 종속적(Machine Dependency)이다.
모든 시스템 소프트웨어가 기계 종속적인것은 아니다.
하지만 일반적으로 시스템 소프트웨어는 기계 종속적, 애플리케이션 소프트웨어는 그렇지 않다고 판단하기 때문에 시스템 소프트웨어는 해당 기기의 특성에 대해 정확히 인지하고 개발해야 한다.
▶️ 시스템 소프트웨어는 시스템 전체를 작동시키는 프로그램으로
프로그램을 주 기억장치에 적재시키거나 인터럽트 관리, 장치관리, 언어 번역 등의 기능을 담당한다.
▶️ 시스템 소프트웨어의 가장 대표적인 프로그램으로 운영체제가 있으며, 그 외에는 언어 번역 프로그램, 매크로 프로세서, 링커, 라이브러리, 정렬/합병 프로그램, 로더 등이 있다.
▶️ 시스템 소프트웨어는 기능별로 제어프로그램과 처리 프로그램으로 분류된다.
✔️ 시스템 소프트웨어는 운영체제와 각종 유틸리티를 포함한다.
▶️ 컴퓨팅(Computing) : 컴퓨터 운영 체제의 일부분으로 하드디스크와 같은 오프라인 저장 장치에 있는 특정 프로그램을 찾아서 주기억장치에 적재하고, 그 프로그램이 실행되도록 하는 역할을 담당한다.
▶️ 부트로더(boot loader) : 운영 체제가 시동되기 이전에 미리 실행되면서 커널이 올바르게 시동되기 위해 필요한 모든 관련 작업을 마무리하고 최종적으로 운영 체제를 시동시키기 위한 목적을 가진 프로그램이다.
▶️ 컴파일러(compiler) : 특정 프로그래밍 언어로 쓰여 있는 문서를 다른 프로그래밍 언어로 옮기는 프로그램을 말한다.
▶️ 셸(shell) : 운영 체제 상에서 다양한 운영 체제 기능과 서비스를 구현하는 인터페이스를 제공하는 프로그램이다.
▶️ 장치 드라이버(device driver): 특정 하드웨어나 장치를 제어하기 위한 커널의 일부분으로 동작하는 프로그램이다.
▶️ 라이브러리(library) : 주로 소프트웨어를 개발할 때 컴퓨터 프로그램이 사용하는 비휘발성 자원의 모임이다.
▶️ 링커(linker) : 하나의 결과를 출력하기 위해 작성된 서로 다른 작은 프로그램들을 연결하여 실행 가능한 하나의 프로그램으로 만들어준다.
운영체제는 시스템 소프트웨어의 한 부분으로, 하드웨어의 리소스를 제어,관리하는 역할을 담당한다. 운영체제가 제공하는 하드웨어 제어 및 관리는 범용성을 띠고 있기 때문에, 각 애플리케이션 소프트웨어들의 특성을 반영하지 못한다. 그러다 보니 어떤 애플리케이션 소프트웨어는 어셈블리로 직접 하드웨어를 제어하기도 한다.
일반적으로는 운영체제가 제공하는 것 위에서 애플리케이션이 동작하다보니 운영체제에 애플리케이션 소프트웨어는 종속된다. 운영체제에는 운영체제의 가장 핵심이 되는 부분인 커널이 존재하며, 응용 소프트웨어와 하드웨어를 연결 시켜주는 역할을 한다.
제어 프로그램은 시스템 전체의 작동 상태 감시, 작업의 순서 지정, 작업에 사용되는 데이터 관리 등의 역할을 수행하는 것으로 감시 프로그램과 작업 제어 프로그램으로 구분할 수 있다.
1️⃣ 감시 프로그램
제어 프로그램 중 가장 중요한 역할을 담당하는 것으로, 각종 프로그램의 실행과 시스템 전체의 작동 상태를 감시, 감독하는 프로그램 입니다.
2️⃣ 작업 제어 프로그램
어떤 업무를 처리하고 다른 업무로의 이행을 자동으로 수행하기 위한 준비 및 그 처리에 대한 완료를 담당하는 프로그램으로, 작업의 연속 처리를 위한 스케줄 및 시스템 자원 할당 등을 담당합니다.
3️⃣ 자료 관리 프로그램
주기억장치와 보조기억 장치 사이의 데이터 전송과 보조기억장치의 자료 갱신 및 유지보수 기능을 수행하는 프로그램입니다.
제어 프로그램의 감시하에 사용자가 요구한 문제, 컴퓨터의 특정한 문제를 해결하기 위해 필요한 여러가지 기능을 처리할 수 있도록 해주는 프로그램이다. 회사측에서 제공해주는 프로그램과 사용자가 작성한 문제 해결 프로그램이 있다.
1️⃣ 언어 번역 프로그램
원시 프로그램을 기계어 형태의 목적 프로그램으로 번역하는 프로그램으로, 어셈블러, 컴파일러, 인터프리터가 있습니다.
2️⃣ 서비스 프로그램
컴퓨터를 효율적으로 사용할 수 있는 사용빈도가 높은 프로그램으로 연결 편집기, 링커, 정렬/합병 프로그램, 라이브러리안, 유틸리티 프로그램 등이 있습니다.
3️⃣ 문제프로그램
문제 프로그램특정 업무 및 문제 해결을 위해 사용자가 작성한 프로그램 입니다.
출처:
1) http://dev.youngkyu.kr/5
2) https://gbsb.tistory.com/283