하드웨어를 감싸고 있는 것(Hardware Encapsulation).
즉 하드웨어와 응용프로그램 간의 인터페이스 역할을 하는 시스템 소프트웨어
운영체제도 소프트웨어의 일종이므로, 부팅이 되면 디스크에 있던 프로그램이 메모리로 올라와서 상주해야 한다. 그러나 운영체제와 같이 큰 소프트웨어의 전체가 메모리에 올라온다면 메모리 공간 낭비가 심하기 때문에, 운영체제의 핵심 부분만이 메모리로 올라와서 상주하는데, 이 부분을 커널이라고 한다.
커널
커널 + 시스템 프로세스 + 라이브러리 + Utility Services(컴파일러, Shell,..)
하드웨어를 숨기고, 유저가 쓰기 좋은 인터페이스를 만들어주는 것
- 프로그램을 실행하기 위한 실행 환경 제공
- 컴퓨터 시스템의 구성 요소에 대한 추상적 관점 제공
ex.
<실체> <추상적 관점>
프로세서 -> Processes, Threads
메모리 -> Address Spaces(Virtual Memory)
스토리지 -> Volumes, Directories, Files
I/O 디바이스-> Files
네트워크 -> Files
- 컴퓨터 시스템의 다양한 자원(CPU, 메모리, 입출력 장치, 큐...)들을 관리
- 이를 위해서 운영체제에는 하드웨어를 추상화 해주는 계층인 디바이스 드라이버가 존재하며,
다양한 디바이스 드라이버들을 관리하는 기능 또한 운영체제가 맡고 있다.
- Efficiency & Fairness : 자원 관리에서는 효율성과 공평성(성능과 분배) 사이의 중심을 잡는 것이 중요
- 운영체제는 Highly-Concurrent / Time & Event-Driven Software를 가능하게 함