Przejdź do zawartości

Tryb wirtualny

Z Wikipedii, wolnej encyklopedii

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.

64-bitowe systemy

[edytuj | edytuj kod]

Procesory 64-bitowe o architekturze x86-64 działające w trybie Long nie mają możliwości uruchomienia trybu wirtualnego 8086, ponieważ go nie posiadają tak samo jak trybu rzeczywistego, jednak nadal jest on dostępny, gdy procesor taki pracuje w trybie Legacy. Z drugiej strony w przypadku, gdy jest włączona funkcja sprzętowej wirtualizacji VT-x lub AMD-V, to procesor działający w trybie Long może uruchomić logiczny (wirtualny) procesor, który będzie mógł już działać w trybie V86[3].

Zobacz też

[edytuj | edytuj kod]

Przypisy

[edytuj | edytuj kod]
  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] (ang.).
  3. http://web.archive.org/web/20100105142519/http://www.intel.com/Assets/en_US/PDF/manual/253669.pdf "a VM entry is allowed only to guests with paging enabled that are in protected mode or in virtual-8086 mode. Guest execution in other processor operating modes need to be specially handled by the VMM"; see also lesson 24 how to do this from Linux (not that the code is pretty dated, so might not work as-is with current kernels) more up-to-date code can be found here. Also beware that this sample code is more complicated than strictly booting the logical processor in virtual 8086 mode; its ultimate goal is make some real-mode BIOS calls.
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy