2. 운영모드

주변에서 많이 사용하는 intel 64bit 호환프로세서(x86-64 프로세서)에는 크게 5가지 운영모드가 있음.

리얼모드

  • 전원이 켜지거나 리셋되면 리얼모드로 진입한다.
  • 프로세서의 초기상태로서 16bit 모드로 동작(리얼모드는 과거의 16비트 프로세서와 동일하게 동작)
  • BIOS의 여러기능을 사용할 수 있음
  • 최대 1MB(2^20)의 주소공간을 지원
  • 디바이스 드라이버를 제작하지 않아도 됨
  • 리얼모드에서 하는 작업은 os이미지를 디스크에서 메모리로 복사하여 보호모드로 변경하는 것
  • 대부분 작업을 어셈블리어로 처리해야한다.

보호모드

  • 32bit 모드로 동작하며 세그먼트, 페이징, 보호, 멀티태스킹등의 기능을 제공하는 모드
  • 4GB(2^32)의 주소공간을 지원
  • IA-32e 모드로 전환하려면 반드시 거쳐야 하는 모드
  • 32bit윈도우나 리눅스 os가 동작하는 기본모드
  • os의 필수기능으로 자리잡은 보호, 멀티태스킹, 세그멘테이션, 페이징등의 기능을 하드웨어적으로 지원한다.

IA-32e 모드

  • 32bit 호환모드와 64bit 모드 두가지 서브모드로 구성(이중 32bit 호환모드는 보호모드와 같은 기능을 수행함)
  • 16EB(2^64)의 주소공간을 지원하는 모드
  • 대부분의 자료구조는 보호모드와 같고, 크기만 2배로 확장되고 일부 필드의 의미가 변하는 정도 이므로 보호모드와 큰차이는 없음
  • 프로세서가 32bit 호환모드에 있는 것 처럼 동작하므로 32bit코드를 그대로 실행할 수 있음.
  • 이는 간단히 서브모드만 변경함으로서 보호모드 코드를 실행할 수 있다는 뜻

시스템 관리 모드

  • 전원 관리나 하드웨어 제어같은 특수기능을 제공하는 모드

가상 8086 모드

  • 보호모드 내부에서 가상의 환경을 설정하여 리얼모드처럼 동작하는 모드

이중 64bit os가 필수적으로 갖추어야 할 운영모드는
[리얼모드], [보호모드], [IA-32e 64bit 모드] 3가지 이다.

<운영모드 사이의 관계>

'Project > OS' 카테고리의 다른 글

6. Bootloader 만들기  (0) 2019.07.11
5. 부팅과 부트로더  (0) 2019.07.11
4. 운영모드와 메모리 관리기법  (0) 2019.07.11
3. 운영모드와 레지스터  (0) 2019.07.11
1. ubuntu18.04.2 LTS개발환경 세팅  (0) 2019.07.11

+ Recent posts