Emulacja API Systemu operacyjnego

 Podejście to bazuje na fakcie, że procesy w typowym systemie operacyjnym żyją w swoim zamkniętym środowisku, a kontaktują się ze światem zewnętrznym za pomocą ściśle określonego zestawu metod. Dlatego można spróbować podmienić im te metody sprawiając wrażenie systemu całkowicie niezależnego od systemu hosta.

 Dzięki takiemu podejściu można wykonywać binarny kod bez większej straty na wydajności.

 

 

Typowym przykładem takiego podejścia jest Wine. Skrót Wine rozwija się do "Wine is not Emulator". Autorzy celowo podkreślają, że jest to tylko implementacja WinApi pod X'y. Podstawą jego działania jest linkowanie plików wykonywalnych *.exe z linuksowymi odpowiednikami bibliotek .dll implementujących WinApi. Jeśli program uruchamiany za pomocą Wine spróbuje się skontaktować z systemem omijając standardowe *.dll'e, to najprowdopodobniej zakończy się błędem.

Drugim przykładem emulacji jest znany nam dobrze User Mode Linux, który uruchamia procesy gościa i przechwytuje wywołania funkcji systemowych.


Zastosowania.

spis tresci

Pełna wirtualizacja.