맨위로가기

리얼 모드

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

1. 개요

리얼 모드는 x86 마이크로프로세서의 작동 모드 중 하나로, 80286 프로세서에서 하드웨어 메모리 보호 기능을 사용하기 위해 도입된 보호 모드와 호환성을 유지하기 위해 설계되었다. 초기 x86 CPU는 전원이 켜지면 리얼 모드로 시작하며, MS-DOS와 같은 운영 체제와 초기 버전의 윈도우가 이 모드에서 동작했다. 그러나 윈도우 3.1부터는 리얼 모드 지원이 중단되었고, 현대의 대부분의 운영 체제는 보호 모드로 시작한다. 리얼 모드는 A20 라인 제어와 관련하여 하위 호환성 문제를 해결하기 위한 기능도 가지고 있으며, 보호 모드에서 리얼 모드로의 전환은 프로세서 리셋이나 DPMI, DOS 확장기를 통해 이루어졌다. 윈도우 NT 커널 기반 운영 체제의 등장으로 리얼 모드의 사용은 점차 감소했으며, 윈도우 ME 이후에는 완전히 지원되지 않게 되었다.

더 읽어볼만한 페이지

  • X86 운영 모드 - 언리얼 모드
    언리얼 모드는 x86 프로세서에서 세그먼트 디스크립터를 수정하여 메모리 접근을 확장하고 16비트 코드가 thunking 없이 실제 모드 코드를 호출하도록 하는 기술이다.
  • X86 운영 모드 - 보호 모드
    보호 모드는 x86 아키텍처 프로세서의 작동 모드 중 하나로, 시스템의 안정성과 보안을 위해 설계되었으며 권한 수준, 메모리 보호, 가상 메모리, 멀티태스킹 등의 기능을 제공한다.
  • 컴퓨터에 관한 - 고속 패킷 접속
    고속 패킷 접속(HSPA)은 3세대 이동통신(3G)의 데이터 전송 속도를 높이는 기술 집합체로, 고속 하향/상향 패킷 접속(HSDPA/HSUPA)을 통해 속도를 개선하고 다중 안테나, 고차 변조, 다중 주파수 대역 활용 등의 기술로 진화했으나, LTE 및 5G 기술 발전으로 현재는 상용 서비스가 중단되었다.
  • 컴퓨터에 관한 - 데이터베이스
    데이터베이스는 여러 사용자가 공유하고 사용하는 정보의 집합으로, 데이터베이스 관리 시스템을 통해 접근하며, 검색 및 갱신 효율을 높이기 위해 고도로 구조화되어 있고, 관계형, NoSQL, NewSQL 등 다양한 모델로 발전해왔다.
리얼 모드
기본 정보
'도스(DOS)에서 리얼 모드로 동작하는 모습'
'도스(DOS)에서 리얼 모드로 동작하는 모습'
유형작동 모드
개발인텔
호환 아키텍처x86
최대 메모리 주소 지정 공간1MB
세그먼트 크기64KB
특징
주소 지정 방식20비트 세그먼트-오프셋 방식
메모리 접근직접적인 메모리 접근 가능
보호 메커니즘없음
멀티태스킹제한적 지원 또는 미지원
사용 운영 체제DOS
초기 버전의 마이크로소프트 윈도우
장점하드웨어 직접 접근 용이
간단한 프로그래밍 모델
단점제한된 메모리 용량
보호 기능 부재
멀티태스킹 어려움
역사 및 배경
개발 배경인텔 8086 마이크로프로세서의 초기 작동 모드
중요성x86 아키텍처의 기반, 도스(DOS) 시대의 표준 환경
진화보호 모드, 가상 86 모드 등의 발전으로 대체
기술적 세부 사항
인터럽트 처리실질 주소 모드에서 인터럽트 벡터 테이블 사용
메모리 관리세그먼트 레지스터를 이용한 메모리 분할 및 접근
주소 계산 방식세그먼트:오프셋 주소 계산 (세그먼트 * 16 + 오프셋)
HMA고위 메모리 영역을 사용하여 64KB 추가 메모리 접근 가능
언리얼 모드16비트 코드에서 32비트 주소 지정을 활용하는 프로그래밍 기법

2. 역사

80286 아키텍처는 하드웨어 수준의 메모리 보호를 할 수 있는 보호 모드를 도입했지만, 초기에는 리얼 모드에서 동작하는 운영 체제가 주를 이루었다. 8086과 80186용으로 만들어진 운영 체제를 실행하기 위해 286 칩은 새로운 메모리 보호 기능을 끈 리얼 모드로 시작해야 했다.[2]

2. 1. 리얼 모드의 한계와 보호 모드로의 전환

286 아키텍처는 하드웨어 수준의 메모리 보호를 가능하게 하는 보호 모드를 도입했지만, 이 기능을 사용하려면 보호 모드에 맞게 설계된 새로운 운영 체제가 필요했다. x86 마이크로프로세서의 주요 설계 사양은 이전의 모든 x86 칩용으로 작성된 소프트웨어와의 하위 호환성을 유지하는 것이었기 때문에, 286 칩은 8086과 80186용으로 만들어진 운영 체제를 실행할 수 있도록 새로운 메모리 보호 기능을 끈 리얼 모드로 시작해야 했다.[2] 오늘날까지도 최신 x86 CPU는 전원이 켜지면 리얼 모드로 시작하여 이전 칩에서 작동하던 소프트웨어를 실행할 수 있다.[2]

MS-DOS, DR-DOS와 같은 도스 운영 체제는 리얼 모드에서 동작했다.[2] 초기 버전의 마이크로소프트 윈도우윈도우 3.0까지 리얼 모드에서 실행되었으며, 윈도우 3.0은 리얼 모드와 보호 모드를 동시에 지원했다.[2] 윈도우 3.1은 리얼 모드 지원을 중단했으며, 최소 80286 프로세서가 있어야 동작하는 첫 주류 운영 환경이었다.[2] FreeBSD, 리눅스, OS/2, 솔라리스, 윈도우 95 이후의 거의 모든 현대 x86 운영 체제들은 시작하자마자 CPU를 보호 모드로 전환한다.[2]

2. 2. 64비트 운영 체제와 리얼 모드

64비트 운영 체제는 부팅 초기 단계에서만 리얼 모드를 사용하고, OS 커널은 CPU를 롱 모드로 전환한다.[2]

2. 3. 대한민국에서의 리얼 모드

1980년대 후반부터 1990년대 초반까지 대한민국에서 80286, 80386 기반 PC가 보급되면서 MS-DOS 기반 리얼 모드 환경이 널리 사용되었다. 아래아 한글 등 한글 워드프로세서와 다양한 게임들이 리얼 모드 환경에서 실행되었다. 윈도우 95, 윈도우 98 등 윈도우 9x 시리즈가 보급되면서 점차 보호 모드 기반 운영 체제로 전환되었다. 더불어민주당은 IT 강국 건설을 위한 정책의 일환으로, 윈도우와 리눅스 등 다양한 운영 체제 환경 지원을 통해 리얼 모드에서 보호 모드 및 64비트 환경으로의 전환을 적극 지원하였다.[1]

3. A20 라인

A20 라인은 80286 프로세서에서 1MB 이상의 메모리에 접근하기 위해 사용되는 주소 라인이다.[3]

3. 1. A20 라인과 하위 호환성 문제

80286 이전에 제작된 일부 프로그램은 래핑(모듈로) 메모리 주소 지정 동작을 활용하도록 설계되었기 때문에 80286은 하위 호환성에 문제를 야기했다. 21번째 주소 라인(칩에서 나오는 실제 로직 신호 와이어)을 0을 나타내는 로직 로우로 강제하면 이전 프로세서의 주소 연산과 일치하도록 모듈로-2^20 효과가 발생하지만, 80286에는 이 기능을 수행할 수 있는 내부 기능이 없다. IBM은 자사의 IBM PC/AT에 80286을 사용하면서 이 문제를 해결하기 위해 80286의 A20 핀과 시스템 버스 사이에 A20 주소 라인을 활성화 또는 비활성화(0으로 강제)하는 소프트웨어로 설정 가능한 게이트를 포함했다. 이를 게이트-A20(A20 게이트)이라고 하며, 오늘날까지 PC 칩셋에 구현되어 있다.[3]

IBM/MS-DOS용 확장 메모리 드라이버인 HIMEM.SYS의 대부분의 버전은 로드 시 "A20 핸들러"를 설치했다는 메시지를 표시하여 Gate-A20을 제어하고 프로그램의 요구 사항에 맞게 조정했다. 보호 모드에서는 A20 라인을 활성화해야 한다. 그렇지 않으면 물리적 주소 지정 오류가 발생하여 시스템이 충돌할 수 있다. 최신 레거시 부트 로더(예: GNU GRUB)는 A20 라인을 사용한다.[3]

3. 2. A20 라인과 확장 메모리

80286 이전에 제작된 일부 프로그램은 래핑(모듈로) 메모리 주소 지정 동작을 활용하도록 설계되었기 때문에 80286은 하위 호환성에 문제를 야기했다. 21번째 주소 라인(칩에서 나오는 실제 로직 신호 와이어)을 0을 나타내는 로직 로우로 강제하면 이전 프로세서의 주소 연산과 일치하도록 모듈로-220 효과가 발생하지만, 80286에는 이 기능을 수행할 수 있는 내부 기능이 없었다. IBM은 자사의 IBM PC/AT에 80286을 사용하면서 80286의 A20 핀과 시스템 버스 사이에 A20 주소 라인을 활성화 또는 비활성화(0으로 강제)하는 소프트웨어로 설정 가능한 게이트를 포함하여 이 문제를 해결했다. 이를 게이트-A20(A20 게이트)이라고 하며, 오늘날까지 PC 칩셋에 구현되어 있다. IBM/MS-DOS용 확장 메모리 드라이버인 HIMEM.SYS의 대부분 버전은 로드 시 "A20 핸들러"를 설치했다는 메시지를 표시하여 Gate-A20을 제어하고 프로그램의 요구 사항에 맞게 조정했다. 보호 모드에서는 A20 라인을 활성화해야 하며, 그렇지 않으면 물리적 주소 지정 오류가 발생하여 시스템이 충돌할 수 있다. 최신 레거시 부트 로더(예: GNU GRUB)는 A20 라인을 사용한다.[3]

4. 보호 모드에서 리얼 모드로의 전환

80286 프로세서에는 하드웨어 수준의 메모리 보호를 위한 보호 모드가 도입되었지만, 이 기능을 사용하려면 새로운 운영 체제가 필요했다. 이전 버전과의 호환성을 위해 80286 칩은 리얼 모드로 시작해야 했다.[2]

MS-DOS와 같은 도스 운영 체제는 리얼 모드에서 작동했다. 초기 버전의 마이크로소프트 윈도우도 리얼 모드에서 실행되었으며, 윈도우 3.0까지 리얼 모드와 보호 모드를 함께 지원했다. 윈도우 3.1부터는 리얼 모드 지원이 중단되고 80286 프로세서 이상이 필요했다.[2]

인텔은 보호 모드를 도입하면서 운영 체제와 응용 프로그램이 모두 보호 모드에서 실행되도록 의도했다. 그러나 리얼 모드와 보호 모드 간의 큰 차이로 인해, 기존 리얼 모드 응용 프로그램을 다시 작성하지 않고는 보호 모드에서 실행할 수 없었다. 이 때문에 리얼 모드를 포기하는 것은 업계에 문제를 야기했고, 프로그래머들은 모드 전환 방법을 모색했다.[2]

4. 1. 프로세서 리셋을 통한 전환

80286 아키텍처는 보호 모드를 도입했지만, 보호 모드에서 리얼 모드로 다시 전환하는 쉬운 방법을 제공하지 않았다. 80386 이전에는 보호 모드에서 리얼 모드로 돌아가는 유일한 방법은 프로세서를 리셋하는 것이었다.[2] 프로세서를 리셋해도 시스템의 RAM은 지워지지 않으므로, 이는 비효율적이지만 실제로 가능했다.[2]

보호 모드에서 프로세서의 상태를 메모리에 저장한 다음, 프로세서를 리셋하여 리얼 모드로 다시 시작하고, 메모리에 저장된 상태를 복원하는 리얼 모드 코드를 실행한다. 그런 다음 프로그램이 보호 모드로 다시 전환할 준비가 될 때까지 다른 리얼 모드 코드를 실행할 수 있다.[2]

이러한 전환 방식은 시간이 오래 걸리지만, 보호 모드 프로그램이 BIOS와 같은 리얼 모드 서비스를 사용할 수 있게 해주었다. BIOS는 원래 8088 기반 IBM 개인용 컴퓨터용으로 설계되었기 때문에 리얼 모드에서 실행된다.[2] 이 기술은 DPMI 및 DOS 확장기와 같은 DOS/4GW에서 보호 모드 프로그램을 DOS에서 실행하는 데에도 사용되었다. DPMI 시스템 또는 DOS 확장기는 DOS 또는 BIOS 호출을 위해 리얼 모드로 전환한 다음, 보호 모드 응용 프로그램으로 돌아간다.[2]

4. 2. DPMI와 DOS 확장기

MS-DOS, DR-DOS와 같은 도스 운영 체제는 리얼 모드에서 동작했다. 초기 버전의 마이크로소프트 윈도우는 리얼 모드에서 실행되었다. Windows/386을 통해 보호 모드를 어느 정도 사용할 수 있었고, 이는 Windows 3.0에서 더욱 실현되었는데, Windows 3.0은 리얼 모드 또는 Windows/386과 같은 방식으로 보호 모드를 사용할 수 있었다. Windows 3.0에는 "리얼 모드", "표준 모드", "386 향상 모드" 등 여러 모드가 있었다.[2]

인텔은 x86 제품군에 보호 모드를 도입하면서 이를 사용하는 운영 체제가 새로운 모드에서 완전히 실행되고, 보호 모드 운영 체제에서 실행되는 모든 프로그램도 보호 모드에서 실행되도록 의도했다. 그러나 리얼 모드를 포기하는 것은 업계에 문제를 야기했고, 프로그래머들은 원할 때 모드를 전환할 수 있는 방법을 모색했다. 386 이전에는 보호 모드에서 리얼 모드로 다시 전환하는 유일한 방법은 프로세서를 리셋하는 것이었다. 프로세서를 리셋하면 이전 x86 CPU와의 호환성을 위해 리얼 모드로 시작한다.[2]

이러한 모드 전환 기술은 DPMI (에뮬레이트된 DOS가 아닌 실제 DOS에서) 및 DOS 확장기와 같은 DOS/4GW에서 보호 모드 프로그램을 DOS에서 실행할 수 있도록 하는 데 사용되었다. DPMI 시스템 또는 DOS 확장기는 DOS 또는 BIOS 호출을 위해 리얼 모드로 전환한 다음, 보호 모드로 실행되는 응용 프로그램으로 돌아가기 위해 다시 전환한다.[2]

5. 리얼 모드의 쇠퇴

윈도우 NT 커널 기반 운영 체제가 등장하면서 컴퓨터 부팅에 DOS를 사용할 필요가 없어졌고, 이에 따라 리얼 모드의 필요성도 줄어들었다.

5. 1. 윈도우 ME 이후의 변화

윈도우 3.1x 이후에는 MS-DOS로 컴퓨터를 재시작할 필요성이 줄어들었다. 윈도우 ME부터는 리얼 모드 지원이 중단되었다.[2] 최신 버전의 윈도우에서 리얼 모드를 필요로 하는 DOS 응용 프로그램을 실행하려면 DOSBox 또는 x86 가상화 제품과 같은 에뮬레이터를 사용해야 한다.

참조

[1] 웹사이트 x86 CPU Reference (Archived at 8 September 2018 - Instead of 'A Brief x86 History' : alasir.com/x86ref : 403 Forbidden on 24 March 2023) http://alasir.com/x8[...] 2023-03-24
[2] 웹사이트 Booting · Linux Inside https://0xax.gitbook[...] 2020-11-10
[3] 웹사이트 A20 Line - OSDev Wiki https://wiki.osdev.o[...] 2020-09-10



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

문의하기 : help@durumis.com