VxD - model sterownika sprzętu używany w Microsoft Windows/386, trybie chronionym Windows 3.x, Windows 9x, a także w pewnym stopniu w niektórych, wielozadaniowych wersjach DOS tj. Novell DOS 7, OpenDOS 7.01 czy DR-DOS 7.02 (i nowsze). Sterowniki VxD mają pełny dostęp do pamięci jądra oraz wszystkich uruchomionych procesów, a także bezpośredni dostęp do sprzętu.

Pochodzenie nazwy i kompatybilność edytuj

Nazwa „VxD” jest skrótem od „Virtual xxx Driver”, gdzie „xxx” jest typem urządzenia sprzętowego. Wynika ono z faktu, że większość sterowników w systemie Windows 3.x ma nazwy typu „vxxxd.386”. Oto kilka przykładów: vjoyd.386 (joystick), vmm.386 (menedżer pamięci). Sterowniki VxD w systemie Windows 3.x zazwyczaj mają rozszerzenie nazwy pliku .386, natomiast w Windows 95 .vxd. VxD napisane dla Windows 3.x mogą być używane pod Windows 95, ale nie odwrotnie.

Historia edytuj

Przed pojawieniem się systemu Windows, aplikacje DOS odwoływały się bezpośrednio do różnych części sprzętu (dostęp do przerwań, używanie pamięci itp.) lub korzystały ze sterowników DOS. Ponieważ DOS nie był systemem wielozadaniowym, każda aplikacja miała wyłączną i pełną kontrolę nad sprzętem podczas swego działania. Chociaż aplikacje Windows niezbyt często komunikują się bezpośrednio ze sprzętem, to był jedyny sposób, aby napisać sterowniki dla systemu Windows, i jest nadal wykorzystywany w rzeczywistych i standardowych trybach Windows 3.x. Pomimo faktu, że Windows przeszedł z pracy w trybie rzeczywistym na tryb chroniony, nadal można bezpośrednio odwoływać się do sprzętu i podpięć przerwań, ponieważ, gdy system Windows przeszedł na działanie w trybie chronionym, zachował model jednolitego poziomu uprawnień, który był używany w trybie rzeczywistym. Trwało to przez cały okres trwania Windows 9x. Windows/386 i nowsze zezwalały wielu aplikacjom DOS na równoczesne działanie. Dokonano tego poprzez wykonanie starszych aplikacji we własnych maszynach wirtualnych. Aby udostępniać dowolne zasoby fizyczne owym maszynom, Microsoft wprowadził dynamicznie ładowane sterowniki urządzeń wirtualnych. Sterowniki te rozwiązały kwestie konfliktów wykorzystania zasobów fizycznych, przechwytując wywołania sprzętu. Zamiast portu maszyny reprezentującego rzeczywiste urządzenie, stanowiłoby to „wirtualne” urządzenie, które mogłoby być zarządzane przez system operacyjny.

Wycofanie edytuj

Chociaż system Windows 98 wprowadził Windows Driver Model (WDM), sterowniki VxD nadal mogą być używane w systemach Windows 98 i Windows Me. VxD nie są używane w systemie Windows NT i jego następcach. Począwszy od Windows 2000, systemy operacyjne z rodziny NT również używają WDM, podczas gdy system Windows NT 4 i starsze wersje muszą korzystać ze sterowników napisanych specjalnie dla nich. Korzystanie ze sterowników VxD zamiast WDM w Windows 9x spowodowało tym, że zaawansowane funkcje ACPI (takie jak hibernacja) są niedostępne.

VxD nie należy mylić z podobnie nazwanymi VDD (sterowniki urządzeń wirtualnych), typowymi dla NTVDM, które stanowią metodę emulacji bezpośredniego I/O we wierszu poleceń DOS dla Windows NT. Sterowniki NTVDM uruchamiają się jako zwyczajne 32-bitowe DLL w trybie użytkownika i muszą polegać na API Win32 (lub innym sterowniku WDM), aby naśladować wywołania I/O w imieniu programu 16-bitowego.

Linki zewnętrzne edytuj