커널은 사용자가 system call을 통해 컴퓨터 자원을 사용할 수 있게 해주는 자원 관리자
- 커널의 자원 관리자는 사용자 요청에 맞게 알맞는 하드웨어에 사용자 명령을 전달하고 작업을 수행
- 컴퓨터는 크게 하드웨어와 소프트웨어로 구분
- 소프트웨어는 운영체제와 그 위에 설치되는 프로그램인 응용 프로그램으로 나뉨
- 운영체제는 커널과 시스템 프로그램으로 구분
커널
- 운영체제의 핵심 부분
- 디바이스 관리, 프로세스 관리, 메모리 관리, 시스템 콜 제공 같은 기능을 관리
- 항상 컴퓨터 자원들만 바라보고 있어 사용자와 직접적인 상호작용은 하지 않음
→ 사용자와 상호작용을 하기 위해 필요한 것 : 시스템 프로그램 (Shell)
커널의 역할
- 컴퓨터의 물리적(하드웨어) 자원과 추상화 자원을 관리하는 것
- 추상화란?
- 물리적으로 하나 뿐인 하드웨어를 여러 사용자들이 번갈아 사용할 수 있도록 마치 여러 개처럼 보이게 하는 기술
커널의 자원 관리
- 태스크 관리자
- 물리적 자원인 CPU를 추상화 자원인 Task로 제공
- 메모리 관리자
- 물리적 자원인 메모리를 추상적 자원인 Page 또는 Segement로 제공
- 파일 시스템 관리자
- 물리적 자원인 디스크를 추상적 자원인 File로 제공
- 네트워크 관리자
- 물리적 자원인 네트워크 장치를 추상적 자원인 Socket으로 제공
- 디바이스 드라이버 관리자
- 각종 외부 장치에 대한 접근
- Interrupt Handling
- 인터럽트 핸들러
- I/O Communication
- 입출력 통신 관리
커널의 자원 관리 이유
- 물리적 자원을 추상화하여 사용자가 물리적인 하드웨어에 보다 쉽게 접근하기 위해
- 컴퓨터 구성 요소들은 컴퓨터만의 언어와 규칙으로 하드웨어에 접근하고 통신해야 하는데, 커널이 이를 중간에서 돕는 역할
참고
'SERVER > 리눅스' 카테고리의 다른 글
[Linux] 프록시(Proxy)란? (0) | 2024.11.03 |
---|---|
[Linux] 데몬 & xinetd이란? (0) | 2024.11.03 |
[Linux] Shell이란? (0) | 2024.11.03 |
[Linux] 리눅스란? (1) | 2024.10.23 |
우분투 20.04 LTS 한글 입력기 설치 (0) | 2022.12.12 |