세상에는 다양한 OS들이 존재한다.

가까이 있는것부터 비교해보면, 크게 Windows와 Mac이 있을것이다.
그리고 휴대폰에 Android, iOS 이것들 또한 OS이다.
평소에, 주변에서 "운영체제"라는 단어는 많이 들었어도, 그게 정확히 어떠한 용어인지 아는 사람은 많지 않은 것 같아 보인다.
운영체제 OS(Operating System)은 크게 두 Part로 나눌 수 있다고 본다.
Operating 그리고 System.
Operating이란 본래, 운영이라는 뜻으로, 다양한 기계나 장비들을 작동하는것을 의미한다.
System이란, 여러가지 Part들이 모여 하나의 Set을 구성하는것을 의미한다.
즉, 이 두 단어를 합쳐보면 "여러가지 Part들이 모여 하나의 Set을 구성하고, 이러한 Set을 통해 다양한 기계 혹은 장비들을 운영한다" 정도로 해석될 수 있다.

이 그림을 보면 OS(Operating System)이 하드웨어와 Program사이에 있는것을 볼 수 있는데, 왜 그런지 다음과 같은 시나리오들을 살펴보도록 해보자.
1. 개발자들의 특정 장치에 맞는 애플리케이션 개발
2. 유저들의 다른 장치에서 동일한 애플리케이션 사용
3. 유저들의 여러 애플리케이션 실행
4. 여러 사용자가 동일한 애플리케이션 실행
다양한 계층에서 다양한 문제들이 발생하는것을 우리는 볼 수 있다.
운영체제는 이러한 문제들이 발생하지 않도록, 사전에 다음과 같은 일을 수행하고 있다.

이렇듯, OS는 Hardware와 Software 딱 그 중간사이에 위치해서 우리가 더 편히 일을 할 수 있도록, 다양한 기능들을 제공해 준다.
하드웨어 관리(Manages a Computer's Hardware)
--> 하드웨어의 자원 (CPU, 메모리, 디스크, 입출력 장치)등을 관리한다.
응용 프로그램 지원(Provides Basis for Application Programs)
--> 응용 프로그램들이 하드웨어와 상호작용할 수 있도록 기본적인 환경을 제공한다.
사용자 프로그램과 하드웨어 간의 상호작용(Interaction between User Programs and Hardware)
--> 소프트웨어와 컴퓨터 하드웨어간의 중재자 역할을 수행해준다.
이를 통해,
사용자가 프로그램을 실행하고, 컴퓨터를 쉽게 이용할 수 있게 해주며,
한눈에 보기 쉽도록 다양한 인터페이스 및 기능을 제공해준다.
또한, 이러한 보다 빠르고 편리한 기능을 위해 한정된 자원들을 최대한 효율적으로 사용하여 성능을 최적화 시켜준다.
마지막으로 User Interface에 대해서 알아보도록 하자.
User Operating System Interface는 사용자가 컴퓨터와 어떻게 서로 의사소통할지 만들어진 하나의 매개체이다.
사람들끼리 의사소통할 때, 주로 대화나 펜을 이용해서 서로 대화를 주고 받지 않는가?
컴퓨터에는 크게
CLI(Command Line Interface)와
GUI(Graphic User Interface) 두가지로 나뉜다.

CLI에서는 주로 'Shell'이라고 불리는 것을 사용하여 컴퓨터와 의사소통한다.
영화나 드라마를 보면 해커가 검은창을 띄워놓지 않는가?
그것이 바로 'Shell'이라고 하는 인터페이스이다.
반대로, GUI에서는 우리가 주로 사용하는 사용자 친화적 인터페이스로, 한눈에 알아보기 쉽고 접근하기가 쉽다는 것이 가장 큰 장점이다.
이번 시간을 통해, 우리는 OS가 무엇이며 대충 어떠한일을 수행하는지에 대해 추상적으로 배워보는 시간을 가졌다.
우리는 이제 이러한 일을 어떻게 OS가 수행하는지 보다 자세하게 다뤄볼 예정이다.
1. 운영체제의 개요
2. 운영체제의 구성 요소 (Components of Operating Systems)
3. 프로세스 관리 (Process Management)
4. 메모리 관리 (Memory Management)
5. 파일 시스템 관리 (File System Management)
6. 입출력 시스템 (Input/Output Systems)
7. 보안과 보호 (Security and Protection)
8. 가상화 (Virtualization)
9. 미래의 운영체제 (Future of Operating Systems)