System emulators, virtual machines and hypervisors
Emulators and virtual machines can be a highly useful tool for developers. Virtual machines (VM's) allow you to run a PC operating system inside your operating systems, this can be can be useful for emulation purposes i.e. you can run Microsoft Windows or FreeBSD for instance on a VM and thus get the use of development (and other) software for that platform, or you can run another version of OS/2 for compatibility testing purposes. But it can also offer you a level of abstraction by allowing you to run different versions and setups of the same version of OS/2 for different purposes including debug versions and so on.