맨위로가기

CPU 모드

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

CPU 모드는 CPU가 수행하는 작업의 권한과 접근 가능한 자원을 정의하는 작동 모드이다. 일반적으로 사용자 모드, 커널 모드, 그리고 가상화를 위한 하이퍼바이저 모드로 구분된다. 사용자 모드는 일반 응용 프로그램 실행을 위한 제한된 접근 권한을 가지며, 커널 모드는 운영체제 커널이 실행되어 시스템의 모든 자원에 접근할 수 있다. 하이퍼바이저 모드는 가상화를 지원하여 여러 운영체제를 동시에 실행할 수 있게 한다. CPU 모드는 시스템의 안정성과 보안을 유지하는 데 중요한 역할을 하며, 링 보호와 같은 아키텍처를 통해 권한을 계층적으로 관리한다. CPU 모드와 운영체제의 긴밀한 협력을 통해 시스템 자원을 보호하고, 시스템 콜을 통해 안전하게 권한을 변경한다.

더 읽어볼만한 페이지

  • 중앙 처리 장치 - 마이크로컨트롤러
    마이크로컨트롤러는 프로세서, 메모리, 입출력 기능을 단일 칩에 통합하여 임베디드 시스템의 핵심이 되는 부품으로, 프로그램 내장 방식을 통해 소프트웨어만으로 제어 기능 변경이 가능하며, 현재는 32비트 ARM, MIPS 아키텍처 기반 제품이 주를 이루고, 저전력 소모, 소형화, 다양한 기능 통합을 특징으로 다양한 분야에서 활용된다.
  • 중앙 처리 장치 - NX 비트
    NX 비트는 하드웨어 기반 보안 기능으로, 메모리 페이지의 실행 권한을 제어하여 특정 영역에서 코드 실행을 막아 버퍼 오버플로 공격과 같은 보안 위협을 줄이는 데 사용되며, AMD에서 처음 도입 후 다양한 프로세서와 운영체제에서 DEP 등의 이름으로 구현되었다.
  • 컴퓨터 보안 - 얼굴 인식 시스템
    얼굴 인식 시스템은 디지털 이미지나 비디오에서 사람 얼굴을 감지하고 식별하는 기술로, 다양한 알고리즘 발전을 거쳐 보안, 신원 확인 등에 활용되지만, 편향성, 개인 정보 침해, 기술적 한계와 같은 윤리적 문제도 야기한다.
  • 컴퓨터 보안 - 워터마크
    워터마크는 종이 제조 시 두께 차이를 이용해 만들어지는 표식으로, 위조 방지를 위해 지폐나 여권 등에 사용되며 댄디 롤 등의 제작 기법을 통해 만들어지고 컴퓨터 프린터 인쇄 기술로도 활용된다.
CPU 모드
CPU 모드
유형CPU 작동 모드
다른 이름프로세서 모드
실질 주소 모드
다른 이름리얼 모드
V86 모드
약어R-mode
도입 시기인텔 8086
출시일1978년 6월 8일
특징20비트 세그먼트 주소 지정
1MB의 주소 지정 가능 메모리
16비트 연산
직접적인 하드웨어 접근
단일 작업
용도BIOS
DOS
부트 섹터
임베디드 시스템
보호 모드
다른 이름보호 가상 주소 모드
약어P-mode
도입 시기인텔 80286
출시일1982년 2월 1일
특징메모리 보호
멀티태스킹
가상 메모리
24비트 주소 지정 (최대 16MB) (80286)
32비트 주소 지정 (최대 4GB) (80386 이상)
용도현대 운영 체제
윈도우 3.0 이상
OS/2
리눅스
macOS
시스템 관리 모드
다른 이름링 -2 모드
스미
약어SMM
도입 시기인텔 386SL
출시일1990년
특징전원 관리
시스템 보안
하드웨어 에뮬레이션
운영 체제 투명성
시스템 중단
용도BIOS
펌웨어
긴 모드
다른 이름x86-64
AMD64
도입 시기AMD
출시일2003년
특징64비트 주소 지정
확장된 레지스터
NX 비트
용도64비트 운영 체제
64비트 응용 프로그램
가상 머신 확장
다른 이름VT-x
도입 시기인텔
특징하드웨어 가상화 지원
향상된 성능
보안 강화
용도가상 머신
하이퍼바이저

2. CPU 모드의 종류

CPU 모드는 크게 사용자 모드와 커널 모드로 나뉜다.

제한되지 않은 모드는 주로 "커널 모드"라고 불리지만, 마스터 모드, 슈퍼바이저 모드, 특권 모드 등 다양한 이름으로도 불린다.[2] 반대로, 제한된 모드는 일반적으로 "사용자 모드"라고 불리지만, 슬레이브 모드, 문제 상태 등으로도 알려져 있다.[2]

일부 CPU 아키텍처는 여러 사용자 모드를 지원하며, 이는 종종 링 기반 보안을 갖추고 있다고 한다. Multics 하드웨어는 링 보안의 첫 번째 중요한 구현이었지만, Intel 80286 보호 모드IA-64를 포함하여 이와 유사한 방식으로 설계된 다른 많은 하드웨어 플랫폼도 존재한다. 모드 보호는 CPU 하드웨어 자체를 넘어 자원으로 확장될 수 있다. 하드웨어 레지스터는 CPU의 현재 운영 모드를 추적하지만, 추가 가상 메모리 레지스터, 페이지 테이블 항목 및 기타 데이터는 다른 자원에 대한 모드 식별자를 추적할 수 있다.

여러 동작 모드를 가진 CPU에서는, 그 중 적어도 하나는 완전히 무제한의 CPU 동작을 허용한다. 이 무제한 모드를 통상 '''커널 모드'''(또는 '''슈퍼바이저 모드''', '''특권 모드''')라고 부른다. 다른 모드는 통상 '''사용자 모드'''라고 불리지만, 다른 이름으로 불리는 경우도 있다.[2]

마이크로커널 방식의 운영 체제는 특권 모드로 동작하는 코드 양을 최소화하여 보안을 높이는 것을 목표로 한다.

2. 1. 사용자 모드

사용자 모드는 일반 응용 프로그램이 실행되는 모드로, 시스템 자원에 대한 접근이 제한된다. 이는 시스템의 안정성과 보안을 유지하는 데 필수적이다.[2] 사용자 모드에서 실행되는 프로그램은 하드웨어에 직접 접근하거나 시스템 전체에 영향을 미치는 명령을 실행할 수 없다. 사용자 모드 프로세스에서 오류가 발생하더라도 시스템 전체의 안정성에는 영향을 미치지 않는다.[2]

CPU의 사용자 모드 기능은 일반적으로 커널 모드에서 사용할 수 있는 기능의 하위 집합이지만, 비 네이티브 아키텍처의 하드웨어 에뮬레이션과 같은 일부 경우에는 표준 커널 모드에서 사용할 수 있는 것과 크게 다를 수 있다.

일부 CPU 아키텍처는 여러 사용자 모드를 지원한다. Multics 하드웨어는 링 보안의 첫 번째 중요한 구현이었으며, Intel 80286 보호 모드IA-64를 포함하여 이와 유사한 방식으로 설계된 다른 많은 하드웨어 플랫폼도 존재한다.

포펙과 골드버그의 가상화 요구를 충족하는 하드웨어를 사용하면 가상 머신을 효율적으로 지원하는 소프트웨어 작성이 훨씬 간단해진다. 이러한 시스템은 슈퍼바이저 모드에서 실행되고 있다고 믿는 소프트웨어를 실행할 수 있지만, 실제로는 사용자 모드에서 실행된다.

2. 2. 커널 모드

커널 모드에서 CPU는 아키텍처가 허용하는 모든 작업을 수행할 수 있다.[2] 모든 명령을 실행하고, 입출력(I/O) 작업을 시작하며, 모든 메모리 영역에 접근할 수 있다.[2] 이는 운영 체제의 핵심 부분인 커널이 실행되는 모드이기 때문이다.

다른 CPU 모드에서는 하드웨어에 의해 CPU 작업에 특정 제한이 적용된다.[2] 일반적으로 특정 명령(특히 시스템의 전역 상태를 변경할 수 있는 입출력 작업 포함)이 허용되지 않으며, 일부 메모리 영역에 접근할 수 없다. CPU의 사용자 모드 기능은 일반적으로 커널 모드에서 사용할 수 있는 기능의 하위 집합이지만, 비 네이티브 아키텍처의 하드웨어 에뮬레이션과 같은 경우에는 표준 커널 모드에서 사용할 수 있는 것과 크게 다를 수 있다.[2]

커널 모드에서 오류가 발생하면 시스템 전체가 정지될 수 있다. 대한민국에서는 리눅스 커널 기반의 운영체제가 많이 사용되므로, 커널 모드에 대한 이해는 시스템 개발자에게 매우 중요하다.

2. 3. 하이퍼바이저 모드

하이퍼바이저 모드는 가상화를 지원하여 여러 운영체제를 동시에 작동할 수 있도록 한다. 포펙과 골드버그의 가상화 요구를 충족하는 하드웨어를 사용하면 가상 머신을 효율적으로 지원하는 소프트웨어 작성이 훨씬 간단해진다. 이러한 시스템은 슈퍼바이저 모드에서 실행되고 있다고 "믿는" 소프트웨어를 실행할 수 있지만, 실제로는 사용자 모드에서 실행된다.[2]

3. CPU 모드와 아키텍처

CPU 모드는 하드웨어 아키텍처에 따라 다양한 방식으로 구현될 수 있다.

제한되지 않은 모드는 종종 "커널 모드"라고 불리지만, 마스터 모드, 슈퍼바이저 모드, 특권 모드 등 다른 명칭도 많이 있다. 제한된 모드는 일반적으로 "사용자 모드"라고 하지만, 슬레이브 모드, 문제 상태 등 다른 이름으로도 알려져 있다.[2]

커널 모드에서 CPU는 아키텍처에서 허용하는 모든 작업을 수행할 수 있다. 모든 명령을 실행하고, 입출력(I/O) 작업을 시작하고, 메모리 영역에 접근할 수 있다. 다른 CPU 모드에서는 하드웨어에 의해 CPU 작업에 특정 제한이 적용된다. 일반적으로 특정 명령(특히 시스템의 전역 상태를 변경할 수 있는 입출력 작업 포함)이 허용되지 않으며, 일부 메모리 영역에 접근할 수 없다. CPU의 사용자 모드 기능은 일반적으로 커널 모드에서 사용할 수 있는 기능의 하위 집합이지만, 비 네이티브 아키텍처의 하드웨어 에뮬레이션과 같은 경우에는 표준 커널 모드에서 사용할 수 있는 것과 크게 다를 수 있다.

IBM System/360, DEC PDP-6/PDP-10, GE-600/Honeywell 6000 시리즈, Burroughs B5000 시리즈 및 B6500 시리즈와 같은 1960년대에 소개된 몇몇 컴퓨터 시스템은 두 가지 CPU 모드를 지원했다. 이 모드들은 실행되는 코드에 전체 권한을 부여하는 모드와, 코드가 입출력 장치 및 기타 일부 하드웨어 시설에 직접 접근하는 것을 막는 모드로 나뉘었다. 전자는 감독자 상태 (System/360), 실행 모드 (PDP-6/PDP-10), 마스터 모드 (GE-600 시리즈), 제어 모드 (B5000 시리즈), 제어 상태 (B6500 시리즈) 등으로 불렸다. 후자는 문제 상태 (System/360), 사용자 모드 (PDP-6/PDP-10), 슬레이브 모드 (GE-600 시리즈), 일반 상태 (B6500 시리즈) 등으로 불렸으며, B5000 시리즈에는 여러 개의 비제어 모드가 있었다.

포펙과 골드버그의 가상화 요구를 충족하는 하드웨어를 사용하면 가상 머신을 효율적으로 지원하는 소프트웨어 작성이 훨씬 간단해진다. 이러한 시스템은 슈퍼바이저 모드에서 실행되고 있다고 믿지만 실제로는 사용자 모드에서 실행되는 소프트웨어를 실행할 수 있다.

3. 1. 링 기반 보안

일부 CPU 아키텍처는 여러 사용자 모드를 지원하며, 이는 종종 권한 계층을 사용한다. 이러한 아키텍처는 링 기반 보안을 갖추고 있다고 하며, 권한 계층은 커널 모드를 중심으로 한 동심원 링 집합과 유사하다. 멀틱스 하드웨어는 링 보안을 최초로 구현한 중요한 사례이지만, 인텔 80286 보호 모드IA-64를 포함한 다른 많은 하드웨어 플랫폼도 유사한 방식으로 설계되었다.[2]

링 보호는 하이퍼바이저 상에서 운영체제를 실행하거나, 장치 드라이버, 마이크로커널에서의 "서버"를 격리하는 데 활용된다.

모드 보호는 CPU 하드웨어 자체뿐만 아니라 다른 자원에도 적용될 수 있다. CPU의 레지스터는 현재 작동 모드를 추적하지만, 추가 가상 메모리 레지스터, 페이지 테이블 항목 등은 다른 자원에 대한 모드 식별자를 추적할 수 있다. 예를 들어, CPU는 링 0에서 작동할 수 있지만, 메모리에 접근할 때마다 접근 대상 가상 메모리 세그먼트의 링 번호와 대상이 되는 물리적 페이지(있는 경우)의 링 번호를 추가로 검증할 수 있다. 이는 PSP에서 시연되었다.[2]

3. 2. RISC-V 아키텍처

RISC-V는 사용자 모드(U), 슈퍼바이저 모드(S), 머신 모드(M)의 세 가지 주요 CPU 모드를 갖는다.[3] 가상화는 별도의 모드 대신 직교 CSR 설정을 통해 지원된다.

4. CPU 모드와 소프트웨어의 관계

CPU 모드는 운영 체제와 밀접하게 상호 작용한다. 대부분의 최신 CPU 하드웨어 아키텍처는 운영 체제가 활용하는 것 이상의 유연성을 제공한다. CPU 모드를 적절히 활용하려면 CPU와 운영 체제의 긴밀한 협력이 필요하며, 이는 운영 체제와 CPU 아키텍처를 서로 묶는 경향이 있다. 운영 체제와 CPU가 서로를 고려하여 설계된 경우(예: Multics)에는 문제가 없지만, 운영 체제가 여러 CPU에서 동작하도록 설계된 경우(예: Windows NT)에는 CPU 모드 기능을 충분히 활용하지 못할 수 있다.

CPU 동작 모드를 구분하는 궁극적인 목적은 소프트웨어로 인한 시스템 환경의 우발적 또는 고의적 손상(및 관련 시스템 보안 위반)으로부터 하드웨어를 보호하는 것이다. 신뢰할 수 있는 시스템 소프트웨어만이 커널 모드에서 동작하도록 허용되며, 다른 모든 소프트웨어는 사용자 모드에서 실행된다. 사용자 모드에서 오류나 예외가 발생해도 시스템 안정성에 큰 영향을 주지 않지만, 커널 모드에서 오류나 예외가 발생하면 시스템이 정지될 수 있다.

CPU는 커널 모드와 사용자 모드를 가진다. 커널 모드에서는 CPU가 아키텍처에서 허용하는 모든 작업을 수행할 수 있어, 모든 명령을 실행하고, 입출력 작업을 시작하고, 메모리 영역에 접근할 수 있다. 반면 사용자 모드에서는 하드웨어에 의해 CPU 작업에 특정 제한이 적용된다. 일반적으로 특정 명령(특히 입출력 작업 포함)이 허용되지 않으며, 일부 메모리 영역에 접근할 수 없다.

일부 CPU 아키텍처는 여러 사용자 모드를 지원하며, 링 기반 보안을 갖추고 있다. Multics 하드웨어는 링 보안의 첫 번째 주요 구현이었으며, 인텔 80286 보호 모드IA-64를 포함한 다른 많은 하드웨어 플랫폼도 유사하게 설계되었다.

모드 보호는 CPU 하드웨어 자체를 넘어 가상 메모리 레지스터, 페이지 테이블 항목 등 다른 리소스에도 확장될 수 있다. 예를 들어, CPU는 링 0에서 작동하더라도 메모리 접근 시 가상 메모리 세그먼트나 실제 페이지에 대한 별도의 링 번호에 따라 추가 검증을 받을 수 있다. 이는 PSP 휴대용 시스템에서 증명되었다.

Popek과 Goldberg 가상화 요구 사항을 충족하는 하드웨어를 사용하면 가상 머신을 효율적으로 지원하는 소프트웨어를 쉽게 작성할 수 있다. 이러한 시스템은 슈퍼바이저 모드에서 실행된다고 믿는 소프트웨어를 사용자 모드에서 실행할 수 있게 한다.

4. 1. 시스템 호출

사용자 모드에서 커널 모드의 기능이 필요한 경우, 시스템 호출을 통해 커널에 요청을 보낸다. 시스템 호출은 하드웨어에 의해 제어되는 안전한 "게이트"를 특수한 명령어를 사용하여 통과하거나, 인터럽트를 받아 이루어지며, 이를 통해 권한 상승이 제어된다. 이는 최소 권한 원칙과 일맥상통한다.

마이크로커널 방식의 운영 체제는 특권 모드로 동작하는 코드 양을 최소화하여 보안을 높이는 것을 목표로 한다.

4. 2. 마이크로커널

마이크로커널 방식의 운영 체제는 커널 모드에서 실행되는 코드의 양을 최소화하여 보안을 강화한다. 마이크로커널은 커널 모드에서 동작하는 코드의 양을 줄여 시스템의 안정성을 높이고 잠재적인 보안 취약점을 줄인다. 하지만, 이러한 설계는 성능 저하를 유발할 수 있다. 그럼에도 불구하고, 보안이 중요한 시스템에서는 마이크로커널 아키텍처가 채택될 수 있다.

5. CPU 모드와 메모리 보호

CPU는 커널 모드와 사용자 모드라는 두 가지 주요 모드로 작동한다. 커널 모드에서 CPU는 시스템의 모든 작업을 수행할 수 있지만, 사용자 모드에서는 특정 작업 및 메모리 영역에 대한 접근이 제한된다. 이러한 제한은 시스템의 안정성과 보안을 유지하는 데 중요한 역할을 한다.


  • 커널 모드: CPU는 아키텍처에서 허용하는 모든 작업을 수행할 수 있다. 모든 명령을 실행하고, 입출력(I/O) 작업을 시작하며, 모든 메모리 영역에 접근할 수 있다.
  • 사용자 모드: 하드웨어에 의해 CPU 작업에 특정 제한이 적용된다. 일반적으로 특정 명령(특히 시스템의 전역 상태를 변경할 수 있는 I/O 작업 포함)은 허용되지 않으며, 일부 메모리 영역에는 접근할 수 없다.


일부 CPU 아키텍처는 여러 사용자 모드를 지원하여 권한 계층을 형성하기도 한다. 이를 링 기반 보안이라고 하며, 커널 모드를 중심으로 동심원 형태의 링으로 구성된다. 멀틱스 하드웨어는 링 보안의 초기 구현 사례이며, 인텔 80286보호 모드IA-64도 유사한 방식으로 설계되었다.[2]

CPU 모드를 구분하는 목적은 소프트웨어로 인한 시스템 손상 및 보안 위반을 방지하기 위한 것이다. 신뢰할 수 있는 시스템 소프트웨어만 커널 모드에서 동작하도록 허용하고, 다른 소프트웨어는 사용자 모드에서 실행되도록 제한한다. 사용자 모드에서 오류가 발생해도 시스템 안정성에 미치는 영향은 적지만, 커널 모드에서 오류가 발생하면 시스템 전체가 정지될 수 있다.

마이크로커널 방식의 운영 체제는 보안을 강화하기 위해 특권 모드(커널모드)에서 동작하는 코드의 양을 최소화하려고 한다.

5. 1. 가상 메모리

CPU 모드 보호는 하드웨어 자체를 넘어서는 자원으로 확장될 수 있다. 하드웨어 레지스터는 CPU의 현재 작동 모드를 추적하지만, 가상 메모리 레지스터, 페이지 테이블 항목 및 기타 데이터는 다른 자원에 대한 모드 식별자를 추적할 수 있다. 예를 들어, CPU는 자체 상태 워드에 표시된 대로 링 0에서 작동할 수 있지만, 메모리에 접근할 때는 접근 대상인 가상 메모리 세그먼트에 대한 별도의 링 번호나 대상 물리적 페이지(있는 경우)의 링 번호에 대해 추가로 검증될 수 있다. 이는 PSP 휴대용 시스템에서 시연되었다.[2]

6. 한국 IT 환경에서의 CPU 모드

대부분의 CPU 하드웨어 아키텍처는 운영 체제가 활용하는 것 이상의 유연성을 가지고 있다. 복잡한 CPU 모드를 적절히 활용하려면 CPU와 운영 체제의 긴밀한 협력이 필요하며, 이는 운영 체제와 CPU 아키텍처를 서로 묶는 경향이 있다. Multics와 같이 운영 체제와 CPU가 서로를 고려하여 설계된 경우에는 문제가 없지만, Windows NT처럼 여러 CPU에서 동작하도록 설계된 운영 체제는 CPU 모드 기능을 모두 활용하지 못하는 경우가 많다.[1]

CPU 모드를 구분하는 목적은 소프트웨어로 인한 시스템 손상 및 보안 위반을 막는 것이다. 신뢰할 수 있는 시스템 소프트웨어만 커널 모드에서 동작하고, 나머지는 사용자 모드에서 실행된다. 사용자 모드에서 오류가 발생해도 시스템 안정성에 큰 영향은 없지만, 커널 모드 오류는 시스템 정지를 유발할 수 있다. 모드 계층(링 보호)이 있으면, 특정 레벨의 오류는 상위 레벨에 영향을 주지 않지만, 하위 레벨에는 영향을 준다.

실행 중인 스레드의 CPU 모드 변경은 높은 권한에서 낮은 권한으로는 자유롭지만, 낮은 권한에서 높은 권한으로 변경하려면 특수한 명령어를 통해 하드웨어가 제어하는 "게이트"를 통과해야 한다. (시스템 콜) 마이크로커널 운영 체제는 특권 모드 코드 양을 최소화하여 보안을 높이려 한다.

6. 1. 임베디드 시스템

CPU의 동작 모드를 구분하는 궁극적인 목적은 소프트웨어로 인한 시스템 환경의 우연 또는 고의적인 손상(및 관련 시스템 보안 위반)으로부터 하드웨어를 보호하는 것이다. 신뢰할 수 있는 시스템 소프트웨어만이 필요할 때 무제한의 커널 모드로 동작하도록 허용하고, 다른 모든 소프트웨어는 하나 이상의 사용자 모드에서 실행한다. 프로세서가 사용자 모드에서 폴트나 예외를 발생시켜도 시스템 안정성에 큰 영향을 주지 않지만, 커널 모드에서 발생하면 많은 운영 체제가 시스템을 정지시킨다. 모드의 계층(링 보호)이 있으면, 특정 특권 레벨의 폴트나 예외는 상위 레벨에는 영향을 주지 않지만, 하위 레벨에는 영향을 준다. 따라서 링 0(최고 특권 레벨의 커널 모드)에서의 폴트는 시스템 전체를 중단시키지만, 링 2에서의 폴트는 링 2 이하(링 3 등)에 영향을 줄 수 있다.

실행 중인 스레드의 CPU 모드 변경은 높은 특권 레벨에서 낮은 특권 레벨로는 자유롭게 할 수 있지만, 낮은 쪽에서 높은 쪽으로는 하드웨어가 제어하는 안전한 "게이트"를 특수한 명령어를 사용하여 통과해야 한다(또는 인터럽트를 받는 것으로도 높은 특권 레벨로 모드 변경이 이루어진다). 이것이 시스템 콜이다. 마이크로커널 방식의 운영 체제는 특권 모드로 동작하는 코드 양을 최소화하여 성능 저하를 감수하고 보안을 강화하려고 한다.

6. 2. 클라우드 컴퓨팅

CPU 하드웨어 아키텍처는 일반적으로 실행 중인 운영 체제가 활용하는 것 이상의 유연성을 가지고 있다. 복잡한 CPU 모드의 적절한 활용은 CPU와 운영 체제의 긴밀한 협력을 필요로 하며, 이는 운영체제와 CPU 아키텍처를 서로 묶는 경향이 있다. 운영체제와 CPU가 서로 상대방을 고려하여 설계된 경우에는 문제가 없지만, 운영체제가 여러 다른 CPU에서도 동작하는 것을 고려하여 설계된 경우, 운영체제는 CPU 모드 기능 대부분을 활용하지 않게 된다. 예를 들어, Windows NT는 여러 아키텍처로 이식하기 쉽도록 설계되었기 때문에 사용자 모드와 커널 모드만 지원했다.[1]

CPU 동작 모드를 구분하는 궁극적인 목적은 소프트웨어에 의한 시스템 환경의 우연 또는 고의적인 손상, 그리고 관련 시스템 보안 위반으로부터 하드웨어를 보호하는 데 있다. 신뢰할 수 있는 시스템 소프트웨어만 필요할 때 무제한 커널 모드로 동작할 수 있으며, 다른 모든 소프트웨어는 하나 이상의 사용자 모드에서 실행된다. 프로세서가 사용자 모드에서 폴트나 예외를 발생시켜도 시스템 안정성에 큰 영향을 주지 않지만, 커널 모드에서 폴트나 예외가 발생하면 많은 운영 체제가 시스템을 정지시킨다. 모드 계층(링 보호)이 있으면, 어떤 특권 레벨의 폴트나 예외는 상위 특권 레벨에는 영향을 주지 않지만, 하위 레벨에는 영향을 줄 수 있다. 따라서 링 0(최고 특권 레벨의 커널 모드)에서 폴트가 발생하면 시스템 전체가 다운되지만, 링 2에서 폴트가 발생하면 링 2 이하(링 3 등)에 영향을 줄 수 있다.[1]

실행 중인 스레드의 CPU 모드 변경은 높은 특권 레벨에서 낮은 특권 레벨로는 자유롭게 할 수 있지만, 낮은 쪽에서 높은 쪽으로 변경하려면 하드웨어가 제어하는 안전한 "게이트"를 특수한 명령어를 사용하여 통과해야 한다. 이것이 시스템 콜이다.[1]

마이크로커널 방식 운영 체제는 특권 모드로 동작하는 코드 양을 최소화하여 성능 저하를 감수하고 보안을 높이는 것을 목표로 한다.[1]

6. 3. 사이버 보안

마이크로커널 방식의 운영 체제는 특권 모드로 동작하는 코드 양을 최소화하여 성능 저하를 감수하고라도 보안을 높이고자 한다. CPU의 동작 모드를 구분하는 궁극적인 목적은 소프트웨어에 의한 시스템 환경의 우연 또는 고의적인 손상, 그리고 시스템 보안 위반으로부터 하드웨어를 보호하는 것이다. 신뢰할 수 있는 시스템 소프트웨어만이 필요할 때 커널 모드에서 동작하도록 허용하고, 그 외의 모든 소프트웨어는 사용자 모드에서 실행되도록 한다.

프로세서가 사용자 모드에서 폴트나 예외를 발생시켜도 시스템 안정성에는 큰 영향이 없지만, 커널 모드에서 발생하면 많은 운영 체제가 시스템을 정지시킨다. 모드의 계층, 즉 링 보호가 있는 경우, 특정 특권 레벨의 폴트나 예외는 상위 레벨에는 영향을 주지 않지만, 하위 레벨에는 영향을 줄 수 있다. 예를 들어 링 0 (최고 특권 레벨의 커널 모드)에서의 폴트는 시스템 전체를 다운시키지만, 링 2에서의 폴트는 링 2 이하 (링 3 등)에만 영향을 줄 수 있다.

실행 중인 스레드의 CPU 모드 변경은 높은 특권 레벨에서 낮은 특권 레벨로는 자유롭게 가능하지만, 낮은 레벨에서 높은 레벨로 변경하려면 하드웨어가 제어하는 안전한 "게이트"를 특수한 명령어를 통해 통과해야 한다. 또는 인터럽트를 통해 높은 특권 레벨로 모드 변경이 가능하다. 이러한 방식을 시스템 콜이라 한다.

참조

[1] 웹사이트 Processor Modes http://flint.cs.yale[...] 2023-08-23
[2] 웹사이트 User mode and kernel mode - Windows drivers https://learn.micros[...] 2022-11-04
[3] 서적 Digital Design and Computer Architecture, RISC-V Edition https://books.google[...] Morgan Kaufmann 2021-07-12
[4] 문서



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com