운영체제란?
운영체제(Operating System, OS)는 컴퓨터 하드웨어와 소프트웨어 리소스를 관리하고,
사용자와 컴퓨터 하드웨어 간의 인터페이스 역할을 하는 중요한 시스템 소프트웨어이다.
운영체제는 기본적으로 시스템의 모든 활동을 조정하고,
자원을 효율적으로 할당하여 다양한 응용 프로그램과
사용자 작업이 원활하게 실행될 수 있도록 지원한다.
커널이란?
운영체제의 핵심은 커널인데,
커널은 프로세스와 메모리, 저장장치를 관리하는 핵심적인 기능을 담당한다.
1) 사용자가 커널에 접근하는 방법
사용자는 운영체제의 커널에 직접 접근할 수 없고,
오직 인터페이스를 통해서 접근이 가능하다.
인터페이스는 크게 GUI 방식과 CLI 방식으로 나눌 수 있다.
그림이냐 텍스트냐의 차이만 있을 뿐 사용자가
커널에 접근하기 위한 목적은 같다고 보면 된다.
2) 애플리케이션이 커널에 접근하는 방법
애플리케이션은 시스템 콜을 통해서 커널에 접근할 수 있다.
커널은 사용자로부터 자신을 보호하기 위한 "System Call"이라는 인터페이스를 가지고 있다.
사용자나 어플리케이션이 하드디스크에 데이터를 저장한다고 해보자.
시스템 콜이 없이 어플리케이션이 하드디스크에 직접 접근하면,
중요한 데이터를 덮어쓸 수도 있고
해당 사용자나 어플리케이션이 저장한 데이터를
다른 어플리케이션이 덮어쓸 수도 있다.
시스템 콜을 이용하면 커널에서 제공하는 Write 함수를 사용하게 되는데,
그럼 운영체제가 위에서 언급된 위험들을 자동적으로 피해서
하드디스크의 빈 공간에 저장하게 된다.
3) 하드웨어가 커널에 접근하는 방법
하드웨어와 커널의 인터페이스로는 "Driver(드라이버)"를 사용한다.
운영체제는 많은 종류의 하드웨어를 전부 지원해야 하기 때문에,
각각의 하드웨어에 맞는 프로그램을 커널이 미리 전부 가지고 있기는 어렵다.
그리하여 하드웨어를 제작한 제조사에서,
드라이버를 만들어서 제공하는 것이 일반적인 방법이다.
보통 키보드나 마우스 같은 간단한 장치들은 커널에 포함되어 있어,
컴퓨터에 꽂으면 바로 동작하지만
그래픽카드와 같은 복잡한 장치들은 디바이스 드라이버를 설치해서 사용해야 한다.
예를 들어서 Nvidia 사의 그래픽 드라이버가 존재한다.
(그래픽 카드가 커널에 접근하기 위함.)
'운영체제' 카테고리의 다른 글
[운영체제] 프로세스 상태 (Process Status) (0) | 2024.05.16 |
---|---|
[운영체제] PCB(Process Control Block) (0) | 2024.05.14 |
[운영체제] 프로그램과 프로세스 (0) | 2024.05.10 |
[운영체제] Interrupt (인터럽트) (0) | 2024.05.09 |
[운영체제] Hardware 의 구조 (0) | 2024.05.08 |