컴퓨터 운영체제에서는 보안과 안정성을 위해 프로세서가 실행하는 코드의 권한을 제한하는 방식으로 동작합니다. 이를 위해서, 운영체제는 사용자 모드(User Mode)와 커널 모드(Kernel Mode) 두 가지 모드로 분리됩니다. 중요한 자원에 함부로 접근하지 못하게 두 가지 모드로 나누어 놓고 일반적으로는 제한된 사용자모드(User Mode)를 사용하게 하는 것입니다.
- 사용자 모드(User Mode)
사용자 모드는 일반적인 응용 프로그램이 실행되는 모드입니다. 즉, Chrome과 같은 응용 프로그램, file들이 실행되는 모드라고 보시면 됩니다. 이 모드에서는 프로세서가 실행하는 코드에 제한이 있습니다. 사용자 모드에서는 시스템 자원, 메모리 등에 직접적인 접근이 불가능합니다. 하지만 운영체제의 지원 없이 하드웨어 리소스에도 제한적으로 접근할 수 있습니다.
예를 들어, 사용자 모드에서는 디스크, 마우스, 키보드 등의 일부 하드웨어 리소스에 접근이 가능합니다. 하지만 이러한 접근은 운영체제에서 제공하는 API를 이용하여 간접적으로 이루어집니다. 이 API를 이용하여 운영체제에서 제공하는 기능을 호출하면, 운영체제에서 이에 대한 처리를 수행하고, 그 결과를 다시 사용자 모드로 반환합니다.
- 커널 모드(Kernel Mode)
커널 모드는 운영체제가 실행되는 모드입니다. 이 모드에서는 프로세서가 실행하는 코드에 대한 권한이 높습니다. 커널 모드에서는 시스템 자원, 메모리 등에 대한 완전한 접근 권한을 가지며, 하드웨어 리소스에도 자유롭게 접근할 수 있습니다. 운영체제에서 제공하는 서비스나 기능을 이용하기 위해서는 커널 모드로 전환해야 합니다.
대표적으로 TCP/IP 프로토콜 스택이 운영체제의 커널모드에서 구현되어 있으며, 네트워크 연결을 관리하고 데이터를 전송하는 역할을 합니다.
'Computer Science > Network' 카테고리의 다른 글
[Network] Socket과 Stream (0) | 2023.12.21 |
---|---|
[Network] Broadcast와 Unicast, Frame과 Packet (1) | 2023.12.20 |
[Network] NIC, L2 Frame, LAN Card, MAC, Up Link, Link Up (0) | 2023.12.20 |
[Network] Host와 Switch (0) | 2023.12.20 |
[Network] OSI 7 Layer & Identifier (1) | 2023.12.20 |