커널의 기능
1. Handling Resources
2. Hardware Encapsulation
메모리는 유저 스페이스와 커널 스페이스로 구분된다. 유저 스페이스와 커널 스페이스는 분리되어 서로 침범하지 않는다.
대부분의 코드와 Library Function은 유저 스페이스에서 돌아간다. 그러나 이 중 OS(즉 커널)에서 제공하는 function(커널이 가진 자원을 사용하는 function)은 커널 안에서 돌아가는데, 이를 System Call이라고 한다.
이 과정은 커널이 돈다고 보기 보다는, 프로세스(실행 중인 유저 프로그램)가 User Space에서 돌다가
System Call을 하면 Kernel 속으로 trap하여 돈다고 보는 것이 맞는 해석이다.
System Call Function
- Kernel의 Top-Half
- 커널 속에 상주
- 유저 프로그램(프로세스)에 의해 Call됨
- open()하면 파일은 커널이 관리하므로, 오픈이라는 라이브러리 속에서 시스템 콜을 함.
이런 라이브러리들은 원초적인 기능을 제공하는 시스템 콜을 좀 더 유저가 쓰기 편하게 만든 것.- 커널 속 인터럽트 핸들러는 외부에서 접근할 수 없음. 이에 접근하기 위한 외부 인터페이스 역할을 하는 것이 바로 '시스템 콜'
Device Drivers
- Kernel의 Bottom-Half
- 하드웨어와의 상호작용을 담당
프로세스(혹은 Thread) 관리 및 CPU Scheduling
메모리 관리
I/O Device 관리
IPC (Inter Process Communication): 한 컴퓨터 내부의 프로세스끼리 통신을 도와줌
네트워크: 다른 컴퓨터와의 통신을 가능하게 함.
-> TCP/IP 기반의 인터넷에 연결하거나, 응용 프로그램이 네트워크를 사용하려면 운영체제에서 네트워크 프로토콜을 지원해야 한다. 현재 상용 OS들은 다양하고 많은 네트워크 프로토콜을 지원한다.
File System