본문 바로가기
Computer Science

[Programming] Operating System: Kernel mode and User mode

by Henry Cho 2022. 1. 13.
728x90

Operating System: Kernel mode and User mode


포스트 난이도: HOO_Junior

 

[Notice] 포스트 난이도에 대한 설명

안녕하세요, HOOAI의 Henry입니다. Bro들의 질문에 대한 내용을 우선적으로 포스팅이 되다 보니 각각의 포스트에 대한 난이도가 달라서 난이도에 대한 부분을 작성하면 좋겠다는 의견을 들었습니다

whoishoo.tistory.com


 

# Operating System Layer

우리가 사용하는 컴퓨터에는 Kernel mode와 User mode라고 불리는 System layer로 나뉘어 있다.

두 모드는 큰 차이점은 사용자가 시스템에 대한 권한을 얼만큼 가지고 접근할 수 있는지가 주요 포인트이다.

우리가 OS라고 부르는 Operating System의 경우 Kernel mode에 해당하는 부분이다.

아래 그림을 참고하면 이해하기 수월하다.

 

<Fig.01>

 

컴퓨터는 Hardware와 Software로 구성되어 있다.

Software에서도 Kernel mode와 User mode로 나뉘며, Software에서도 Interface program과 사용자가 실질적으로 사용하는 applications으로 나뉜다.

시스템이 작동하는 원리가 마치 층(layer)처럼 쌓여있다고 해서 시스템에 대한 부분을 배울 때 layer라는 용어를 자주 사용하곤 한다.

 

# Kernel mode

Kernel mode(커널 모드)는 User mode(사용자 모드)와 다른 방식의 소프트웨어이다.

커널 모드의 경우에는 모든 장치와 메모리를 조정할 수 있는 권리를 가지고 있다.

따라서 커널 모드에서 소프트웨어의 전반적인 시스템 방식의 변경이 가능하기에 커널 모드를 다루는 개발자는 보다 더 정확한 지식과 경험을 바탕으로 시스템을 다뤄야 한다.

우리가 흔히 개발하는 환경이자, 실질적으로 애플리케이션(Applications)을 실행하는 User mode와 달리 Kernel mode는 시스템 전체를 망가뜨릴 수 있기 때문이다.

사용자 모드(User mode)에서는 문제가 되는 애플리케이션 또는 프로그램 하나만 삭제하거나 프로세스를 중단시키면 그만이지만 커널 모드에서는 시스템 전체의 영향을 줄 수 있다.

Kernel mode에 접근하기 위해서는 Linux Kernel의 system call를 통해 관리가 가능하다.

Kernel에서 관리되는 기능들은 메모리 관리, 프로세스 관리, 장치 드라이버, 시스템 호출 및 보안 등이 있다.

 

# User mode

User mode는 사용자 모드 또는 사용자 프로세스라고도 부른다.

User mode는 실질적으로 사용자가 프로그램 사용하는 layer로써 Kernel mode에 있는 OS가 전반적인 User mode의 프로그램을 관리하고 있다.

User mode에서 여러 애플리케이션 즉 프로그램을 사용하더라도 하드웨어와 소프트웨어 간의 중간자 역할을 수행하는 것이 바로 Kernel mode에 있는 Operation system이다.

OS를 통해 메모리를 관리하여 최적의 환경에서 프로그램을 구동하거나 특정한 프로그램에 임의적으로 메모리에 대한 권한을 확대하고 싶다면 Linux Kernel을 통해서 변경이 가능하다.

Hardware와 달리 Software에 단계로 구분하여 나누어 놓은 이유는 사용자가 직접적으로 사용하는 공간인 User mode의 applications이 문제가 발생하더라도 시스템 전체에 영향을 주지 못하게 만들기 위해서이다.

Applications 하나의 문제가 발생하더라도 User mode layer에서만 영향을 줄 뿐 Kernel mode에 영향을 줄 수 없기 때문이다.

이 외에도 Layer를 나눔으로써 보안이나 데이터 관리, 가상 머신을 돌리는데 이점이 더 많기 때문에 다소 복잡한 구조를 가지더라도 이러한 구조를 가지게 된 것이다.

 


 

728x90

댓글