хостовой ОС. При таком подходе можно установить одну
операционную систему и работать одновременно как с ее
приложениями, так и с приложениями другой ОС.
Поскольку весь код приложения исполняется без эмуляции,
а эмулируются лишь вызовы API, такая схема виртуализации
приводит к незначительной потере в производительности
виртуальной машины. Однако в силу того, что многие
приложения используют недокументированные функции API или
обращаются к ОС в обход API, даже очень хорошие эмуляторы
API имеют проблемы совместимости и позволяют запускать не
более 70% от общего числа приложений. Кроме того,
поддерживать эмуляцию API бурно развивающейся ОС
(например, такой как Windows) очень нелегко, и большинство
эмуляторов API так и остаются эмуляторами конкретной
операционной системы.
Примеры продуктов, выполненных по технологии эмуляции
API гостевой операционной системы:
проект с открытым кодом Wine, позволяющий запускать
DOS-, Win16- и Win32-приложения под управлением ОС
Linux и Unix;
продукт Win4Lin компании Netraverse, позволяющий
запускать ОС семейства Windows под управлением ОС
Linux;
проект с открытым кодом DOSEMU, позволяющий
запускать DOS-приложения под управлением ОС Linux;
проект с открытым кодом User Mode Linux (UML),
позволяющий запускать несколько копий ОС Linux на
одном компьютере (в настоящее время встроен в ядро
Linux версии 2.6);
технология Virtuozzo, разработанная российской
компанией SWsoft и позволяющая запускать несколько
копий ОС Linux на одном компьютере.
1.2.2. Виртуальные машины с полной эмуляцией гостевой ОС
Проекты, поддерживающие технологию полной эмуляции,
работают по принципу интерпретации инструкций из системы
команд гостевой операционной системы, при этом полностью
эмулируется поведение как процессора, так и всех внешних
8