суботу, 12 січня 2008 р.

Інтеграція Windows-програм у робоче середовище Ubuntu

Вам подобається Linux але ви не взмозі перейти на неї бо прив'язані до певних програм які працюють лише у Windows? Вам життєво потрібен FineReader? А можливо AutoCAD, SCAD чи MathCAD? Ви ще йдосі користуєтеся подвійним завантаженням? Вам здається, що це дуже незручно і ви розриваєтеся між приємним робочим середовищем Gnome, своїми улюбленими Linux-програмами і програмами для Windows у яких ваш начальник доручив вам виконати роботу? Якщо так, то можливо наведений спосіб вирішення цієї проблеми вам допоможе.

Спосіб насправді не оригінальний, ми будемо використовувати віртуальну машину. Проте у віртуальних машин зазвичай є один недолік - це відсутність інтеграції у основне робоче середовище, тобто власний робочий стіл і т.п. Працювати так можна, але не завжди зруно. Ми ж зробимо так, що програми які будуть запускатися у на віртуальній машині будуть вести себе подібно до рідних Linux програм.

Отже, складемо перелік того, що нам знадобиться:
  1. Дистрибутив Windows XP. Немає великої різниці, чи це буде Home чи Professional. Зі старішими версіями Windows даний прийом не пройде.
  2. Innotek VirtualBox версії новішої за 1.5.0 (але не OpenSource Edition).
VirtualBox завантажуємо з цієї сторінки:
http://www.virtualbox.org/wiki/Downloads
Даний продукт має дві версії, нам потрібна повна, та, що не OSE. Повна версія також безплатна для приватного використання тому ми без проблем можемо завантажити готовий .deb пакет для Ubuntu. Встановлюється він звичайним чином, тут жодних проблем виникнути не повинно.

Наступним кроком створюємо віртуальну машину. Назвемо її наприклад WinXP. Завдяки майстру створення віртуальних машин у VirtualBox є дуже простим. Не забудьте також вколючити емуляцію USB та аудіо якщо хочете мати доступ до цих функцій. Також задайте Shared Folders, я створив одну папку якій дав посилання на свій кореневий каталог. Після цього приступимо до встановлення Windows XP, тут все звичайно, ніяких особливостей немає. По завершенню, запускаємо встановлення доповнень до гостьової ОС, VirtualBox встановить необхідні драйвери на нашу систему WinXP. З цього моменту у нас вже є цілком робоча віртуальна машина на яку можна встановлювати програми і працювати.

Тепер ми приступимо до налаштування Windows. Перше, що нам знадобиться - це налаштувати доступ до файлової системи хоста. Тут все просто, додаємо у Провіднику мережевий диск по типу як це показано на рисунку.



Наступним кроком, відключимо Робочий стіл у нашій системі. Для цього запустимо regedit і знайдемо ось такий розділ:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer

Тут потрібно створити новий параметр NoDesktop типу DWORD і привласнити йому значення 1. Також потрібно налаштувати нижню панель Windows таким чином, щоб вона могла ховатися за край екрану.

Тепер ми можемо перезавантажити нашу віртуальну машину. А тепер спробуйте запустити на ній наприклад калькулятор і натисніть Ctrl(правий)+Shift+L. Ви отримаєте щось подібне до того, що можна спостерігати на рисунку. Якщо захочете повернутися у звичайний режим, то натисніть Ctrl(правий)+L.



Це демонстрація в дії нової функції - Desktop Seamless Integration. Тепер вікна програм запущених на нашій віртуальній машині інтегруються у основне робоче середовище Ubuntu,

Ну що ж, ніби працює. Тепер ми просто спробуємо навести деяку красу. Швидше за все у вас могло статися, що при спробу переміщення, вікна пригальмовують. У такому випадку зайдіть у властивості віртуальної машини і збільшіть об'єм доступної відео-пам'яті (16, 32Мб, або скільки ви можете дозволити щоб інші програми не гальмували).

Наступне, що можливо вам захочеться - це змінити стиль оформлення Windows програм щоб вони виглядали якомога подібніше до рідних програм в Ubuntu. Для цього нам знадобиться програма StyleXP. Справа у тому, що Microsoft додавши у свою систему можливість зміни тем не передбачила можливість легкого використання тем сторонніх виробників. Дана програма замінить одну з потрібних бібліотек після чого можна буде легко змінювати тему. Саму тему Human беремо ось тут:
http://fioressj.deviantart.com/art/Human-for-Windows-37743373

От і все. Тепер нам потрібно встановити на нашу віртуальну машину драйвери до нашого обладнання (принтери, сканери та ін.), доповнити її необхідними програмами і можна працювати.

Встановлюємо драйвер сканера



FineReader у роботі



Якщо порівнювати даний підхід з використанням усім відомого Wine, то тут ми маємо величезний плюс - програми працюють у своєму рідному середовищі. Тобто всі програми для Windows таким чином легко запускаються. Більше того, разом з ними ви можете використовувати і рідні Windows-драйвери для вашого обладнання. Натомість цей підхід не годиться для ігор та інших програм для яких дуже важливим є підтримка апаратного прискорення графіки. Для ігор краще звичайно ж використовувати Wine.программирование ассемблер

9 коментарів:

  1. Sun Microsystems купив Innotek :)

    ВідповістиВидалити
  2. Будь ласка, підкажіть, що робити, якщо virtualbox після встановлення не запускається? Повідомлення - "Не вдається відобразити usr/lib/virtualbox/VirtualBox. Для файлів цього типу не встановлено програми"
    Реінсталяція не допомагає, а при спробі видалення через термінал повідомляє, що насправді віртуалбокс не встановлено!

    ВідповістиВидалити
  3. Схоже просто на некоректну інсталяцію. Можу порадити тільки ще раз уважно розібратися з інсталяцією і встановити по новому.

    ВідповістиВидалити
  4. А у мене робочий стіл відключається, але інтеграції програм не відбувається :о(.

    ВідповістиВидалити
  5. Маю Вам повiдомити, що ще можна запускати програми у вiртуальнiй windows прямо в Nautilus-i (Ubuntu). Тобто це може виглядати як звичайний клiк мишкою по файлу. Описував там http://ubuntueasy.com/jemuljatory/zapusk-iz-ubuntu-programm-v-virtualnoj-windowsxp-zapushhennoj-v-virtualbox

    ВідповістиВидалити
  6. В новых версиях VirtualBox уже не нужно лезть в реестр. Рабочий стол пожно вырубать и без этого

    ВідповістиВидалити
  7. У Вашому записі сказано створити в реєстрі параметр NoDeskop.

    У мене така підозра, що там помилка, бо знання англ. мови підказує, що параметр має бути "NoDesktop" :)

    ВідповістиВидалити
  8. Знання англійської підказує вам абсолютно правильно. У тексті описка.

    ВідповістиВидалити