add linux compatibility and virtual machine