2012-04-27 3 views
3

바이오스 프로그램은 리얼 모드에서만 볼 수 있으며 바이오스는 ROM에 저장되어있는 것으로 알려져 있지만 CPU가 매핑하는 것은 일반적으로 RAM입니다. 리얼 모드에서는 약간의 공간을 의미합니까? 의 메모리가 ROM에 매핑되므로 우리는 바이오스 프로그램을 볼 수 있습니다.바이오스와 리얼 모드

답변

4

실제 주소 공간은 단순한 RAM 이상입니다. ROM과 APIC 및 비디오 메모리와 같은 메모리 매핑 장치가 포함되어 있습니다. 리얼 모드 외부에서 BIOS를 사용할 수없는 주된 이유는 리얼 모드로 사용하도록 작성된 것입니다. 일부 기능은 16 비트 보호 모드에서 작동 할 수 있으며 더 많은 기능은 가상 8086 모드에서 작동하지만 잘못된 기능을 호출하면 시스템이 다운 될 수 있습니다. 또한 인터럽트는 보호 모드에서 실제 모드와 다르게 작동하므로 함수를 다시 매핑해야합니다.

BIOS가 리얼 모드 밖에서 사용할 수없는 또 다른 이유는 페이징입니다. 페이징은 가상 주소를 실제 주소에 매핑하는 프로세스입니다. 운영 체제가 페이징을 사용하는 경우 ROM이 포함 된 페이지를 가상 메모리에 전혀 매핑하지 않기 때문에 실제로 존재하지 않으므로 호출 할 수 없습니다. ROM은 여전히 ​​실제 주소 공간 중 일부를 차지하지만 가상 메모리를 통해 사용할 수 없습니다.

+0

"리얼 모드로 사용하도록 작성되었습니다."라는 것은 무엇을 의미합니까? –

+0

@ venus.w 실제 모드는 몇 가지 점에서 보호 모드와 매우 다르게 작동합니다. 가장 큰 차이점은 메모리 액세스 방식과 기본 주소 및 피연산자 크기입니다. BIOS는 리얼 모드로 실행되도록 작성되었으므로 리얼 모드 버전을 사용합니다. 같은 바이너리 데이터를 다른 모드로 실행하려고하면 매우 이상한 결과가 발생할 수 있습니다. 그렇게되면 예외가 가능한 최상의 결과입니다. – ughoavgfhw

+0

bios rom, gdt, idt는 일반적으로 하단 1M에 저장되거나 매핑됩니다. –

관련 문제