운영체제 커널모드와 사용자 모드 및 시스템 호출

Su Bak
4 min readApr 27, 2023
Sajad Nori on Unsplash

현재 우리는 컴퓨터를 사용할 때 자연스럽게 운영체제가 있는 컴퓨터를 사용하고 있습니다. Windows, MacOS 가 바로 그 운영체제인데요.

초기 컴퓨터 시스템에는 운영체제가 없던 때도 있었습니다. 그래서 운영체제가 없던 시절엔 응용 프로그램 개발자가 하드웨어 제어방법을 잘 알아야 했고 응용 프로그램이 ‘직접’ 컴퓨터 시스템의 자원을 제어해야 했습니다. 그래서 여러 사용자가 하드웨어(컴퓨터 시스템의 자원)를 공유해야하는 경우 자원을 분할해서 사용하는데 어려움이 있었습니다.

이후 운영체제가 등장하면서 운영체제가 하드웨어와 응용 프로그램 사이에 위치해서 응용 프로그램이 직접 컴퓨터 시스템의 자원을 제어하는 것이 아닌 운영체제가 자원을 제어하게 되면서 컴퓨터 시스템 자원을 여러 사용자가 공유해서 사용하는데 안정적이고 효율적으로 동작이 가능하게 되었습니다.

사용자 <-> 응용 프로그램 <-> 운영체제 <-> 하드웨어

응용 프로그램과 하드웨어 사이에 존재하는 운영체제에는 커널 모드사용자 모드가 존재합니다.

커널 모드(또는 슈퍼바이저 모드)

하드웨어를 직접 제어할 수 있는 CPU 명령어를 사용할 수 있는 모드를 뜻합니다. 즉, 운영체제의 커널이 동작하는 모드라고 할 수 있습니다.

운영체제 <-> 하드웨어

사용자 모드(또는 보호 모드)

하드웨어를 직접 제어할 수 있는 CPU 명령어를 사용할 수 없는 모드를 뜻합니다. 즉, 응용 프로그램이 동작하는 모드 라고 할 수 있습니다.

응용 프로그램 <-> 운영체제

커널

커널 모드에서 동작하는 운영체제의 핵심 요소를 뜻합니다. 응용 프로그램과 하드웨어 수준의 처리 사이에서 가교 역할을 수행합니다. 커널에는 일체형 커널과 마이크로 커널이 있습니다.

일체형 커널

운영체제의 모든 서비스가 커널 내에 포함된 커널입니다. Unix, Linux 운영체제가 이에 속하며 커널 내부 요소들이 서로 효율적으로 상호작용을 할 수 있는 반면 하나라도 오류가 발생하면 시스템 전체에 장애가 발생하는 단점이 있습니다.

마이크로커널

--

--

Su Bak

Backend Developer. Mainly use JavaScript but try not to have language constraints. Always trying to acquire new knowledge