🥌 커널이란?
운영체제 중 항상 메모리에 올라가 있는 운영체제의 핵심 부분으로써 하드웨어와 응용 프로그램 사이에서 인터페이스를 제공하는 역할을 하며 컴퓨터의 자원들을 관리하는 역할을 한다.
즉, 커널은 인터페이스로써 응용 프로그램 수행에 필요한 여러가지 서비스를 제공하고 여러가지 하드웨어등의 리소스를 관리한다.
하지만 커널은 컴퓨터자원과의 상호작용으로 인해 사용자와는 상호작용하기 어렵다. 때문에 사용자와의 직접적인 상호작용을 하기위해 만들어진 쉘(shell)을 사용해야 한다.
추상화
컴퓨터의 자원을 관리하는 커널을 더 큰 역할로 분류를 해보자면 물리적 자원과 추상화 자원을 관리하는 것을 말한다.
마치 하나의 하드웨어를 여러개처럼 보이게 하는 기술과도 같다.
관리자 | 물리적 자원 이름 | → | 추상화한 자원 용어 |
태스크 관리자 | CPU(프로세스) | → | TASK |
메모리 관리자 | 메모리 | → | Page, Sagment |
파일 시스템 관리자 | 디스크 | → | 파일 |
네트워크 관리자 | 네트워크 | → | Socket |
이렇게 커널이 자원들을 따로 관리하는 이유는 사용자가 물리적인 하드웨어에 접근하고 사용할 수 있도록 매개하기 위해서 이다.
그래서 사용자는 밑의 순서대로 커널에 접촉하고 자원을 관리 할 수 있게된다.
사용자 → Shell 과 같은 프로그램 → 커널 → 컴퓨터 자원
'CS > 💻 운영체제' 카테고리의 다른 글
동기와 비동기 그리고 Blocking 과 Non - Blocking (0) | 2023.10.19 |
---|---|
💻 프로세스와 스레드 (0) | 2023.10.10 |