Введение

Программное обеспечение для виртуализации twoOStwo было коммерческим программным продуктом, разработанным Parallels Software Studio (до приобретения компанией SWsoft). Программное обеспечение рабочей станции представляло собой набор виртуальных машин для компьютеров, совместимых с Intel x86, который позволял создавать и запускать несколько виртуальных компьютеров x86 одновременно. Каждый экземпляр виртуальной машины мог выполнять собственную гостевую операционную систему, включая Windows, Linux, OS/2 и различные варианты BSD.

Описание

Компьютер и экземпляр операционной системы, выполняющий процесс twoOStwo, называется хост-машиной. Экземпляры операционных систем, работающие внутри виртуальной машины, называются гостевыми виртуальными машинами. Подобно эмулятору, twoOStwo предоставляет гостевой операционной системе полностью виртуализированный набор оборудования; например, независимо от производителя и модели физического сетевого адаптера, гостевая машина увидит сетевой адаптер Novell/Eagle NE2000 или Realtek RTL8029(AS). twoOStwo виртуализирует все устройства в виртуальной среде, включая видеоадаптер, сетевой адаптер и адаптеры жестких дисков. Он также предоставляет драйверы прямого доступа для последовательных и параллельных устройств. Поскольку все гостевые виртуальные машины используют одни и те же драйверы оборудования, независимо от фактической аппаратной конфигурации хост-компьютера, экземпляры виртуальных машин обладают высокой переносимостью между компьютерами. Например, работающую виртуальную машину можно остановить, скопировать на другой физический компьютер и запустить.

Реализация

Обычные эмуляторы, такие как Bochs, эмулируют микропроцессор, выполняя каждую инструкцию гостевого процессора посредством вызова подпрограммы программного обеспечения на хост-машине, которая моделирует функцию этой инструкции процессора. Этот уровень абстракции позволяет гостевой машине работать на хост-машинах с другим типом микропроцессора, но при этом является очень медленным. Более эффективный подход основан на использовании методов программной отладки. Некоторые части кода выполняются непосредственно на реальном процессоре; при обнаружении "недопустимых" инструкций возникают программные прерывания, которые останавливают выполнение кода гостевой операционной системы, после чего эта конкретная инструкция эмулируется. twoOStwo, а также VMware Workstation, Virtual PC для Windows и QEMU с модулем kqemu используют еще более оптимизированный подход, выполняя код напрямую, когда это возможно. Это применимо к коду, работающему в пользовательском режиме и в виртуальном 8086-м режиме на x86. Недостатком является то, что гостевая операционная система должна быть совместима с процессором хост-машины. Таким образом, в отличие от эмулятора, twoOStwo нельзя использовать для запуска классического программного обеспечения Mac OS/PowerPC на процессоре Intel x86. Другой недостаток заключается в том, что эффективное вложение виртуальных машин обычно невозможно. Наконец, хотя виртуальные машины twoOStwo работают в пользовательском режиме, для работы twoOStwo требуется установка различных драйверов устройств в операционной системе хоста.

Особенности

Помимо подключения к сетевым адаптерам, CD-ROM-приводам и жестким дискам, twoOStwo также предоставляет возможность эмулировать определенное оборудование. Например, ISO-образ можно подключить как CD-ROM, а файлы HDD – как жесткие диски.