Computer Science/Network

[OS/Network] User Mode와 Kernel Mode

LeeJaeJun 2023. 12. 20. 20:40
728x90
반응형

 컴퓨터 운영체제에서는 보안과 안정성을 위해 프로세서가 실행하는 코드의 권한을 제한하는 방식으로 동작합니다. 이를 위해서, 운영체제는 사용자 모드(User Mode)와 커널 모드(Kernel Mode) 두 가지 모드로 분리됩니다. 중요한 자원에 함부로 접근하지 못하게 두 가지 모드로 나누어 놓고 일반적으로는 제한된 사용자모드(User Mode)를 사용하게 하는 것입니다.

 

- 사용자 모드(User Mode) 

 사용자 모드는 일반적인 응용 프로그램이 실행되는 모드입니다. 즉, Chrome과 같은 응용 프로그램, file들이 실행되는 모드라고 보시면 됩니다. 이 모드에서는 프로세서가 실행하는 코드에 제한이 있습니다. 사용자 모드에서는 시스템 자원, 메모리 등에 직접적인 접근이 불가능합니다. 하지만 운영체제의 지원 없이 하드웨어 리소스에도 제한적으로 접근할 수 있습니다. 

 예를 들어, 사용자 모드에서는 디스크, 마우스, 키보드 등의 일부 하드웨어 리소스에 접근이 가능합니다. 하지만 이러한 접근은 운영체제에서 제공하는 API를 이용하여 간접적으로 이루어집니다. 이 API를 이용하여 운영체제에서 제공하는 기능을 호출하면, 운영체제에서 이에 대한 처리를 수행하고, 그 결과를 다시 사용자 모드로 반환합니다.

 

- 커널 모드(Kernel Mode) 

 커널 모드는 운영체제가 실행되는 모드입니다. 이 모드에서는 프로세서가 실행하는 코드에 대한 권한이 높습니다. 커널 모드에서는 시스템 자원, 메모리 등에 대한 완전한 접근 권한을 가지며, 하드웨어 리소스에도 자유롭게 접근할 수 있습니다. 운영체제에서 제공하는 서비스나 기능을 이용하기 위해서는 커널 모드로 전환해야 합니다.

 대표적으로 TCP/IP 프로토콜 스택이 운영체제의 커널모드에서 구현되어 있으며, 네트워크 연결을 관리하고 데이터를 전송하는 역할을 합니다.

728x90
반응형