Connectix. У 1997 році вона випустила емулятор Virtual PC для Мас, що дозволяє запускати операційні системи DOS і Windows на макінтошах. А в 1999 році вийшла віртуальна машина Virtual PC для Windows, виконуюча різні операційні системи під Windows NT/9х. Велику популярність компанія Connectix зажила в OS/2 спільноті після виходу Virtual РС для OS/2, розробленого спільно з німецькою компанією InnoTek.
. 3 Методи запуску додатків інших Операційних Систем
Для функціонування сучасних віртуальних машин потрібно засіб управління віртуальними машинами, що є Windows-, Linux- або UNIX-додатком, функціонуючим на реальному комп'ютері, званому хостом. Сама віртуальна машина являє собою образ файлової системи, що формується при установці якої-небудь операційної системи (у загальному випадку відмінної від тієї, під управлінням якої функціонує засіб управління віртуальними машинами) і зберігається у вигляді файлу або розташований у виділеному розділі жорсткого диска. За допомогою засобу управління віртуальними машинами можна завантажити в виділене адресний простір образ операційної системи віртуальної машини (така операційна система носить назву Guest Operating System - гостьова операційна система, на відміну від вихідної операційної системи, що носить назву Host Operating System - операційна система хоста). Після цього операційна система віртуальної машини буде здатна взаємодіяти з апаратним забезпеченням комп'ютера (наприклад, з відеоадаптером, звуковою картою, клавіатурою, мишею, мережевимиадаптерами). Таким способом можна, наприклад, при працюючій операційній системі Windows XP завантажити операційну систему Linux ввиділене для неї адресний простір і перемикатися між обома операційними системами, не займаючись перезавантаженням комп'ютера. Крім того, у ряді випадків можна використовувати буфер обміну для обміну даними між цими операційними системами або здійснювати мережну взаємодію між ними, як якщо б це були два різних комп'ютера. Можна одночасно завантажити і більше однієї віртуальної машини - лише б для цього було достатньо оперативної пам'яті (її, природно, має бути багато, адже в оперативній пам'яті при завантаженні віртуальної машини виявляється ще одна операційна система).
. 3.1 Емуляція API операційної системи
Зазвичай додатки працюють в ізольованому адресному просторі і взаємодіють з обладнанням за допомогою API, що надаються операційною системою. Якщо дві операційні системи сумісні за своїми АРI (наприклад, Windows 98 і Windows 2000), то додатки, розроблені для однієї з них, будуть працювати і на іншій. Якщо дві операційні системи несумісні за своїм API (наприклад, Windows 2000 і Linux), то існує спосіб перехопити обрашения додатків до АРI і зімітувати поведінку однієї операційної сісгеми засобами іншої операційної системи.
При такому підході можна поставити одну операційну систему і працювати одночасно як з її додатками, так і з додатками друтой операційної системи. Оскільки весь код додатку виповнюється без емуляції і лише виклики API емулюються, втрата в продуктивності незначна. Але через те, що багато програм використовують недокументовані функції API або звертаються до операційної системи в обхід API, навіть дуже хороші емулятори API мають проблеми сумісності і дозволяють запустити не більше 70% від загального числа додатків. Крім того, підтримувати емуляцію API бурхливо развіваюіщейся операційної системи (наприклад, такий як Windows) дуже нелегко, і більшість емуляторів АРI так і залишаються емуляторами якоїсь конкретної версії операційної системи. Так, в Windows NT/2000 досі вбудований емулятор для додатків OS/2 версії I.х, а в останніх версіях OS/2 Warp 4 є можливість запуску додатків Windows 3.11. Але найбільший мінус способу емуляції API - це його сувора орієнтація на конкретну операційну систему. Для того, щоб запустити в ньому додатки іншої операційної системи, необхідно все переписувати з нуля.
Приклади продуктів, виконаних за технологією емуляції АР1 операційної системи:
проект з открьпим кодом Wine (Wine Is Not an Emulator), що дозволяє запускати додатки DOS, Win16 і Win32 під операційними системами Unix;
- продукт Win4Lin компанії Netraverse, що дозволяє запускати операційні системи сімейства Windows під операційною системою Linux;
- проект з відкритим кодом DOSEMU, позволяюшее запускати додатки MS DOS під операційною системою Linux;
проект з відкритим кодом User Mode Linux (UМL), що дозволяє запускати кілька копій операційної системи Linux на одному комп'ютері (нині вбудований в ядро ??Linux версій 2.6);
технологія Virtuozzo, розроблена російською компанією SWsoft і дозволяє запускати кілька копій операційної системи Linux на одному комп'ютері;
-...