📌운영체제란?
◾ 하드웨어를 관리하는 소프트웨어이다.
◾ 사용자, 애플리케이션에게 하드웨어를 제어 할 수 있도록 인터페이스 제공한다.
↳ 사용자, 애플리케이션은 커널을 통해서만 하드웨어를 제어 할 수 있다.
◾ Unix, Linux, macOS, windows 등이 있다.
📌운영체제의 역할은?
- 하드웨어 관리
- 어플리케이션이 하드웨어를 효율족으로 사용할 수 있도록 관리
- 하드웨어 보호
- 악의적이거나 미숙한 사용자로부터 하드웨어를 보호하여 운영체제의 안정성 보장
- 하드웨어 인터페이스 제공
- 하드웨어를 보호하기 위해 하드웨어를 일관된 방법으로 다룰 수 있도록 인터페이스 제공
- 사용자 인터페이스 제공
- 사용자가 운영체제를 편리하게 사용할 수 있도록 GUI 어플리케이션 제공
💻운영체제의 구조
| 운영체제의 구조 |
|---|
 |
- 운영체제는 커널과 어플리케이션으로 구성된다.
- 사용자가 어플리케이션을 사용 -> system call 호출 -> 커널에서 디바이스 드라이버를 이용해 하드웨어 제어
✅커널이란?
운영체제의 핵심으로 운영체제를 규정짓는 가장 중요한 부분이다.
-
프로세스 관리, 메모리 관리, 파일 시스템 관리, I/O 관리, 프로세스 간 통신 관리 등 하는 일이 많다.
-
사용자와 어플리케이션이 하드웨어를 제어할 수 있도록 커널에 요청하는 함수인 시스템콜(system call) 함수를 제공한다.
- system call ex) open, read, write, fork 와 같은 C언어 형식의 함수
- 사용자와 어플리케이션은 system call을 통해서만 하드웨어를 제어
-
커널이 하드웨어를 제어하는데 사용되는 프로그램인 디바이스 드라이버를 포함한다.
| 운영체제의 구조 |
|---|
 |
system call(시스템 콜) ❓
⚙ 커널의 종류
-
단일형 구조 커널
- 커널의 기능이 모듈화 되어 있지 않고 하나로 구성된다.
- 한 함수에서 모든 커널의 기능들을 구현한다.
- 초기 Unix 운영체제, MS-DOS
👍 장점
커널의 기능들이 모듈화 되어 있지 않아서 모듈간의 통신 비용이 없다.
👎 단점
유지, 보수 및 오류를 처리하기 어렵다.
기능 간의 상호 의존성이 높아 에러에 취약하다.
낮은 이식성으로 다양한 환경의 시스템에 적용이 어렵다.
| 단일형 구조 커널 |
|---|
 |
-
계층형 구조 커널
- 비슷한 커널의 기능들이 하나의 모듈로 묶여서 하나의 계층을 만들고 계층 간의 통신을 통해 커널을 구현한다.
- 오늘날의 운영체제가 이 방식을 사용한다.
👍 장점
커널 기능에 대한 모듈화를 통해 단일형 구조보다 커널의 유지, 보수 및 오류를 처리하기 용이해졌다.
오류가 발생하면 해당 계층만 수정하면 된다.
👎 단점
다양한 커널의 추가로 커널의 크기가 커질 수 있다.
| 계층형 구조 커널 |
|---|
 |
-
마이크로 구조 커널
- 계층형 구조 커널의 크기가 방대해져 커널의 가장 기본적인 기능만 제공하는 마이크로 구조 커널이 탄생했다.
- 대표적인 운영체제로는 마크(Mach), macOS, ios 가 있다.
👍 장점
높은 이식성을 제공한다.
커널이 가벼워서 CPU의 용량이 작은 시스템에도 적용이 가능하다.
| 마이크로 구조 커널 |
|---|
 |
디바이스 드라이버 ❓
-
커널과 하드웨어의 인터페이스이다.
-
커널이 하드웨어를 제어하는데 사용하는 소프트웨어이다.
-
간단한 하드웨어 ex) 키보드, 마우스 등의 디바이스 드라이버는 커널에 포함되어 있다.
-
복잡한 하드웨어 ex) 그래픽 카드, 프인터 등의 디바이스 드라이버는 하드웨어 제작자에 의해 제공된다.
| 디바이스 드라이버 |
|---|
 |