- 하드웨어를 관리하는 소프트웨어
- 사용자 또는 어플리케이션에게 하드웨어를 제어할 수 있도록 인터페이스를 제공하는 소프트웨어
(사용자 또는 어플리케이션은 커널을 통해서만 하드웨어를 제어할 수 있음)

- 펜실베이니아 대학의 존 모클리와 존 에커트가 만든 에니악
- 진광관이 커지면 1, 꺼지면 0으로 판단함
- 컴퓨터가 이진법을 사용하는 계기가 됨- 1800개의 진공관을 전선으로 연결하여 프로그램을 구현
- 운영체제는 사용되지 않음

- 진공관과 전선으로 구성된 논리회로를 아주 작은 크기의 IC(integrated circuit)칩으로 구현함
- CPU와 메모리가 사용됨
- 입출력 장치로써 키보드와 모니터 대신 천공카드 리더(punch card reader)와 라인 프린터(line printer)가 사용됨
- 천공카드 : 카드에 구멍을 뚫어 문자나 숫자를 표현
- 라인 프린터 : 한 번에 한 줄씩 문자나 숫자를 인쇄하는 프린터- 프로그램 실행 중간에 데이터를 입력하거나 실행 과정을 확인할 수 없음
- 메인 메모리는 OS 영역과 사용자 영역으로 나뉨

- 키보드와 모니터를 통해 프로그램 실행 중간에 데이터를 입력하거나 실행 과정을 확인 가능
- 단순 계산 작업 뿐만 아니라 문서 편집기, 게임과 같은 다양한 종류의 응용 프로그램 실행이 가능해짐

- CPU 사용 시간을 잘게 쪼개서 작업들에게 나누어 줌
- 동시에 여러 작업이 실행 가능한 시스템(multi-process, multi-task system)
- 동시에 여러 사람이 사용 가능한 시스템(multi-user system)

- 값이 싸고 크기가 작은 컴퓨터를 인터넷을 통해 하나로 묶어서 대형 컴퓨터의 성능에 버금가도록 구현된 시스템
- 대형 컴퓨터를 대신하여 복잡한 계산이나 많은 양의 데이터를 처리하기 위해 사용됨
- 대규모 데이터 연산을 소규모 연산으로 나눠서 분산 및 병렬 처리하고 그 내용이나 결과를 서로 교환

- 작업을 요청(request)하는 클라이언트와 요청 받은 작업을 처리하여 응답(response)하는 서버로 구성됨
- 웹 시스템은 전형적인 클라이언트/서버 시스템

- 클라이언트/서버 시스템을 통해 MP3 음악 파일과 같은 대용량 파일을 공유하면 서버 과부하 발생
- 이러한 문제를 해결하기 위해 서버를 거치지 않고 사용자 컴퓨터(peer)들을 직접 연결하여 구현

그리드 컴퓨팅(grid computing)
- 비용을 지불한 뒤 필요한 계산 자원(CPU,메모리,저장장치)를 인터넷을 통해 사용 가능한 시스템
- 분산 시스템의 한 분야로써 서로 다른 컴퓨터를 묶어 대용량의 컴퓨터 풀(pool)을 구성하여 연산을 수행
- 연구용이나 상업용
IaaS(infrastructure as as service)
- 서비스형 인프라스트럭처
- 비용을 지불한 뒤 서버를 운영하는데 필요한 컴퓨터 하부구조를 인터넷을 통해 사용 가능한 시스템
- 예: Microsoft Azure, AWS EC2, Google Compute Engine(GCE)
PaaS(platform as a service)
- 서비스형 플랫폼
- 비용을 지불한 뒤 필요한 개발 환경을 인터넷을 통해 사용 가능한 시스템
- 예: Microsoft Azure, AWS Lamda, Google App Engine(GAE), Google Colab
SaaS(software as a service)
- 서비스형 소프트웨어
- 비용을 지불한 뒤 필요한 소프트웨어를 인터넷을 통해 사용 가능한 시스템
- 예: Microsoft 365, iCloud, N드라이브, Google Drive, Google Photo, Google Docs
클라우드 컴퓨팅(cloud computing)
- 그리드 컴퓨팅과 IaaS, PaaS, SaaS를 합쳐 놓은 형태
- 비용을 지불한 뒤 필요한 계산 자원과 소프트웨어를 인터넷을 통해 사용 가능한 시스템
- 예: AWS(Amazon web services), Microsoft Azure, Google Cloud Platform(GCP)
- 운영 체제는 커널과 어플리케이션으로 구성됨
위 그림은 운영체제의 구조이다.
