CPU에도 권한에 따른 모드가 존재한다. 아래 그림과 같이 Protections Ring의 구조에 따르면 단계별로 나뉘어 있지만 현재는 User mode/Kernel mode만 사용한다.
kernel : 알맹이/핵심이란 뜻으로 OS의 주축이 되는 기능을 하는 프로그램을 말함
따라서 응용 프로그램 관점에서의 운영체제와의 관계를 볼 때 다음과 같이 사용자 영역과 커널 영역으로 나눌 수 있다. 이 때 각 영역에서는 해당 모드로 전환되어 각 기능을 수행하며 다음과 같은 특징을 가진다.
응용 프로그램이 임의로 전체 컴퓨터 시스템을 조작할 수 없도록 하기 위해 모드를 분리한다.
다음과 같은 응용 프로그램을 구성하는 코드가 있을 때 모드 전환이 되는 순서는 표시된 흐름에 따른다. open()이라는 시스템 콜을 호출함으로 커널모드로 전환하고 sys_open() 커널 함수를 호출하여 open() 함수를 처리한 뒤 연산 수행이 끝나면 다시금 사용자 모드로 전환되는 형태이다.
각 단계를 거슬러 올라가보면 응용 프로그램 내의 open() 함수를 호출하게되면 해당 함수가 포함된 헤더 파일인 unistd.h에 시스템 콜을 사용하도록 정의되어 있다. 이후 커널에서는 open() 호출 시 sys_open() 함수를 호출할 수 있도록 정의되어 있다.