Tryb wirtualny

Tryb wirtualny (zwany także V86 lub Virtual 8086) – specjalny tryb pracy procesorów o architekturze IA-32, dostępny w trybie chronionym, który umożliwia uruchamianie programów przeznaczonych dla trybu rzeczywistego. W trybie wirtualnym symulowane jest działanie analogiczne do procesora Intel 8086 (faktycznie można uruchamiać kod także dla 8088, 80186 i 80188), tzn. otrzymuje dostęp do 1 MB pamięci operacyjnej oraz odpowiednich rejestrów procesora i może wykonywać tylko te rozkazy, które mają sens w takim otoczeniu.[1]

W odróżnieniu od natywnego trybu rzeczywistego, wszelki dostęp do portów wejścia-wyjścia (ang. I/O ports) jest sankcjonowany przez system operacyjny pracujący w trybie chronionym. Podobnie przerwania są kontrolowane i obsługiwane przez system operacyjny. Umożliwia to bezkonfliktową pracę „zwykłych” procesów systemu wraz z procesami w trybie wirtualnym – możliwe jest jednoczesne uruchomienie wielu procesów w trybie V86.

Ponieważ to na systemie operacyjnym ciąży obsługa dostępu do portów wejścia-wyjścia oraz przerwań, system musi emulować sprzęt jak i udostępniać określoną funkcjonalność 16-bitowego systemu operacyjnego. Innymi słowy system musi konwertować żądania procesu w trybie V86 (np. zapis do określonego portu) na akcje sterownika urządzenia.

Tryb V86 jest wykorzystywany głównie do uruchamiania tzw. programów DOS-owych, czyli programów napisanych do działania w trybie rzeczywistym procesorów o architekturze x86. Systemy Windows posiadają wbudowane mechanizmy umożliwiające uruchamianie takich programów (32-bitowe wersje Microsoft Windows NT posiadają komponent o nazwie NTVDM[2], w 64-bitowych wersjach ten mechanizm został usunięty), natomiast dla systemów Linux istnieją emulatory: DOSBox oraz DOSEMU.

  1. Tom Yager, Sending software to do hardware's job, „InfoWorld” [dostęp 2017-01-21] (ang.).
  2. Windows NT 4.0 Workstation Architecture [online], www.microsoft.com [dostęp 2017-01-21] [zarchiwizowane z adresu 2006-02-06].

From Wikipedia, the free encyclopedia · View on Wikipedia

Developed by Tubidy