Obviously, they create a linux environment for linux applications to run in windows. But,
- what kind of techniques are used for this?
- Is there any special mechanisms followed?
AFAIK most emulators will convert system calls to compatible APIs in the other side. For example the Linux program needs an API call, the emulator will change this to similar win32 API. When windows return data to the program it will then be converted back to Linux forms. But sometimes they only compile Linux source code to make quivalent windows exe files