소프트웨어의 주요한 유형인 운영체제와 애플리케이션을 살펴보려고 한다. 운영체제는 컴퓨터 하드웨어를 관리하고 다른 프로그램을 실행할 수 있게 하는 소프트웨어의 기초 구조물이며 그 위에서 실행되는 프로그램을 애플리케이션이라고 한다.
우리는 일상에서 다양한 프로그램을 쓰고있다. 이를 던문적으로 애플리케이션이라고 쓰며 어떤 작업에 "응용"하는 것이라는 데서 나오는 것 같다. 애플의 앱스토어 이후 대중적인 단어가 되었다.
1950년대 초에는 앱과 운영체제 간에 구별이 없었다. 컴퓨터는 한 번에 한개의 프로그램만 실행할 수 있을 정도의 성능이었기 때문이다. 컴퓨터가 더 복잡해짐에 따라 프로그램을 전문적으로 실행하는 작업이 필요했고, 이런 작업을 자동화할 수 있도록 돕는 프로그램에서 운영체제가 시작됐다.
운영체제는 하드웨어가 발전됨에 따라 더 발전했다. 오늘날의 마이크로 소프트 제품을 제외하고는 유닉스나 리눅스에서 파생된 것이라고 할 수 있다. 최신 컴퓨터는 실로 복잡한 물건이기 때문에 이처럼 정교한 물건을 다루려면 프로그램을 이용해 제어하는 수밖에 없다.
운영체제는 컴퓨터의 자원을 제어하고 할당한다. 프로세서를 관리하면서 프로그램을 스케줄링하고 프로그램 간의 관계를 조정한다. 이런 프로세스가 수백 개 동시에 실행되며 일부는 우리가 직접 실행한 프로그램이지만 대부분은 우리에게 보이지 않는 시스템 작업이다.
운영체제는 주기억 장치 또한 관리한다. 메모리에 프로그램을 로드해서 프로그램이 명령어 실행을 시작할 수 있게 해준다. 효과적인 메모리 사용을 위해서는 알맞은 공학적 기법이 필요하다. 필요할 때 일부만 메모리에 가져오고 비활성화 상태일 때는 꺼내서 디스크로 복사해두는 것인데, 이러한 처리를 스와핑이라고 한다. 프로그램은 마치 전체 컴퓨터를 독점하고 메모리가 무제한인 것처럼 작성되기 때문에 이런 적절한 조정이 필요하다.
운영체제는 보조 기억 장치에 저장된 정보도 관리한다. 파일 시스템이라는 운영 체제의 주요 구성 요소가 우리가 컴퓨터를 사용할 때 보는 폴더와 파일의익숙한 계층 구조를 제공한다.
마지막으로 운영 체제는 컴퓨터에 연결된 장치들의 활동을 관리하고 조정한다. 프로그램은 다른 창과 겹치지 않는 창 전체에 그래픽을 온전히 표시하는 것처럼 구현된다. 디스플레이상에 있는 여러개의 창을 관리하는 잡얼을 수행하면서 이동, 및 조절 시 적절히 펴시되게 한다. 운영체제는 키보드와 마우스를 통해 들어오는 입력이 그 정보를 기다리고 이쓴ㄴ 프로그램으로 전달되도록 해준다. 유무선 네트워크,는 물론 프린터와 스캐너와 데이터를 교환하기도 한다. +