Казка про те як Windows і Linux дружили в одній мережі

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Артур Крюков

Якщо б не слухач курсів з Linux, викладачем яких я є, мені, як людині, дуже довго працює з Linux, ця думка навряд чи прийшла б у голову. На перший погляд здається, а навіщо це взагалі потрібно? Але при здоровому міркуванню запропонована ідея видалася досить цікавою, і захотілося подивитися, як вона буде працювати на практиці.

З чого все почалося? Після розгляду теми, присвяченій системі X Window і можливості запуску Х-клієнтів та Х-серверів на різних машинах в мережі, у слухача виникло питання: «А чи можна зробити так. щоб всі критичні з точки зору безпеки програми виконувалися на Linux, а їх висновок відображався на машинах з Windows? »

Питання видався дивним - навіщо встановлювати робочі станції Windows, якщо так хвилює безпека? У системі Linux є повний набір офісного програмного забезпечення, для їх використання перенавчати персонал майже не доводиться. Як робоча станція Linux - цілком прийнятне і безпечне рішення. Хіба що специфічне програмне забезпечення, на кшталт «1C Підприємство», на ньому не встановиш - для його виконання буде потрібно термінальний сервер Windows.

Проте слухач відкинув таке рішення, оскільки основними користувачами в його системі були дизайнери, а їм потрібно специфічне ПО, якого немає у Linux. Проблеми ж виникають в основному з програмами, де передбачений доступ в Internet: з поштовими клієнтами, браузерами і т.п. Установка антивірусних засобів і оновлення самої системи мало чим допомагають. Тому, коли він почув на занятті, що в Linux програма здатна фізично працювати на одній машині, а відображати дані на інший, без втрати якості зображення та швидкості роботи, у слухача виникло цілком природна, з сто точки зору, питання про можливість відображати дані програм , що працюють під управлінням Linux, на комп'ютерах з Windows. Тоді всі програми, які звертаються до Internet, можна перевести на Linux, де вони не схильні до вірусів і іншим можливостям злому. Всі файли, одержувані клієнтами з Internet, будуть зберігатися виключно на машині Linux, а там, де встановлена ​​Windows, залишаться тільки вікна з відповідними програмами.

Про використовувані технології

У UNIX в якості графічної оболонки застосовується система X Window, у якої є багато різних реалізацій - комерційних, напівкомерційних і т. д. Що стосується Linux, то на даний момент в основному використовуються XFree86 і xorg. Через проблеми з ліцензуванням перша система відсутня в сучасних дистрибутивах Linux, тому все частіше зустрічається xorg.

X Window побудована за принципом клієнт-сервер. Однак принцип взаємини клієнта і сервера поставлений «з ніг на голову». Зазвичай під сервером або серверним додатком розуміють будь-яке програмне забезпечення, що реалізує зберігання інформації або складні обчислення. А клієнт - це програма, що дозволяє здійснювати управління або отримувати доступ до інформації. У X Window сервер - програма для відтворення зображення на екрані, а призначення клієнта - відображати дані на сервері, з використанням функцій бібліотеки Xlib. Таким чином, сервер X Window містить драйвери відеокарти, клавіатури, миші та інших пристроїв введення і дозволяє клієнтським програмам «малювати» на екрані монітора. Клієнт і сервер можуть перебувати на різних машинах в мережі. Більш того, припустимо, щоб на одному сервері «малювали» кілька клієнтів, кожний з яких виконується на різних машинах.

Програму з функціями Х-сервера можна розташувати на окремому пристрої або в іншій системі в мережі - будь то спеціальний пристрій, так званий X-термінал, або програма для будь-якої операційної системи (у тому числі Windows), лише б вони забезпечували функціонал Х-сервера . Потенційно дані на Х-сервер здатний відображати будь-Х-клієнт, але зазвичай вводять обмеження і вказують конкретні клієнти.

Для відтворення вікон використовується спеціальне програмне забезпечення - віконний менеджер (Window Manager). Від нього залежить, як виглядають вікна і як вони себе ведуть. Віконний менеджер теж Х-клієнт, т. з. для відображення вікон він посилає дані на Х-сервер. Деякі програми Х-сервери, що працюють під управлінням Windows, мають вбудований віконний менеджер.

І ще одна важлива для X Window програма - менеджер дисплеїв (Display Manager). X-термінал - це пристрій, на якому немає жодної програми. Всі програми (Х-клієнти) виконуються на будь-яких машинах, а на X-терміналі тільки відображаються дані. Після включення X-термінал підключається по протоколу X Display Manager Connect Protocol (XDMCP) до сервера, де встановлений менеджер дисплеїв, за допомогою якого клієнт здійснює вхід в систему і запускає віконний менеджер. Так ми отримуємо повноцінне робоче місце на машині UNIX з відображенням робочого столу на машині Windows. Всі програми (включаючи окопний менеджер) будуть виконуватися на UNIX, а дані представить Windows.

Сучасні програми, що реалізують функції Х-сервера, дозволяють повністю емулювати X-термінал, але вони можуть обійтися і без емуляції. Якщо немає необхідності відображати весь робочий стіл UNIX, конкретні програми можна відтворювати в окремому вікні Windows, запускаючи їх на машині UNIX, правда, все одно доведеться заводити на ній обліковий запис користувача та виводити належать йому дані на Х-сервер.

Реалізація х-сервера для windows

Отже, які ж програми реалізують роботу Х-серве-ра на машині Windows? Після нетривалих пошуків мені вдалося знайти три безкоштовних сервера: Gygwin / X, WiredX на Java і умовно безкоштовний X-Deep/32.

Cygwin / X (http://x.cygwin.com). Широко відома у вузьких колах компанія Cygwin розробляє бібліотеку cygwin1.dll для емуляції Linux API і займається перенесенням на Windows набору популярних утиліт GNU. Останні (gec, Id і т. д.) поширюються за ліцензією GNU GPL, однак бібліотека суд-win1.dll має власну, відмінну від GPL, ліцензію, відповідно до якої її можна використовувати в комерційному програмному забезпеченні.

Cygwin / X це перенесення X Window System на різні види ОС Windows. Продукт працює на всіх видах Windows, починаючи з Windows 95 і закапчівая Windows Server 2003. Cygwin / X містить Х-сервср, бібліотеку X і набір стандартних Х-клієнтів: xterm, xhost, xclock та ін

WeiredX (http://www.jcraft.com/weiredx). Компанія JCraft спеціалізується на створенні комунікаційних програм з використанням технології Java. Більшість програмного забезпечення поширюється відповідно до ліцензії GNU GPL, в тому числі сервер WeiredX. Крім того, компанія поширює ще один сервер, але під комерційною ліцензією - WiredX.

WeiredX реалізує всі можливості стандартного Х-сервера, а поставляється з ним набір утиліт розширює їх: JSch організує передачу даних по захищеному каналу, JRexec є клієнтом гехес і т. д.

X-Deep/32 (http://www.pexus.com/). На жаль, на сайті виробника не вказані особливості даного Х-ссрвсра, лише заявлено про повну сумісність з редакцією X11R6.5.1.

Підготовка машини linux

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

При додаванні облікового запису важливо пам'ятати, що у користувачів обов'язково повинні бути домашній каталог та реальна оболонка shell.

З менеджерами дисплеїв ситуація дещо складніша, оскільки з Linux можуть поставлятися три менеджера: xdm, gclm (Gnome) і kdm (КУО). Кожен налаштовується різними способами. Ми будемо використовувати kdm.

Для конфігурації kdm необхідно:

знайти файл kdmrc. У різних дистрибутивах він знаходиться в різних каталогах. Наприклад, в Slackware Linux - в / opt / kde / share / config / kdm, в Red Hat Linux - B/etc/X11/xdm;

у файлі kdmrc знайти розділ [Xdmcp] і задати параметр Enable = true;

в тому ж каталозі, де розташований kdmrc, є файл Xaccess, де описуються X-термінали, за яких можливе підключатися до менеджера дисплеїв. Щоб усім дозволити таке підключення, в будь-яку порожню рядок необхідно помістити символ «*»;.

у файлі / etc/X11/xdm/xdm-config, на початку останнього рядка в параметрі DisplayManager.requestPort слід вказати символ "!";

якщо система X Window на сервері не налаштована, тобто не передбачається працювати в графічному режимі на самому сервері, то у файлі / etc/X11/xdm/Xservers рекомендується поставити символ коментаря «#» на початку рядка local/usr/X11R6 / bin / X;

якщо kdm не був запущений, його слід запустити. Якщо він вже активний, то слід вказати, щоб він перечитав свій конфігураційний файл - killall-HUP kdm;

переконайтеся, що kdm відкрив на прослуховування порт 177: netstat-nip I grep 177.

Тепер kdm готовий до використання.

Установка і конфігурація GYGWIN / X

Для установки Gygwin / X досить відкрити головну сторінку сайту і завантажити програму установки setup.exe.

Програму можна встановити прямо з Internet або з каталогу, куди вона була збережена заздалегідь. Далі слід вказати каталог, куди буде встановлена ​​програма, а також тип текстових файлів (UNIX або DOS). Потім у запропонованому списку серверів FTP відзначити найближчий сервер.

У вікні Select Packages необхідно вибрати наступні пакети:

xorg-x11-base (обов'язково встановлюється базовий набір);

xorg-x11-bin (рекомендований до установки набір містить базові програми: xterm, twm та ін);

xorg-x11-bin-dlls (рекомендований до установки набір з бібліотеками, необхідними для виконання програм (DLL);

xorg-x11-etc (обов'язково встановлюється набір з файлами налаштувань Х-сервера і програм);

xorg-x11-fcyr (рекомендований до установки набір з російськими шрифтами);

xorg-x11-fenc (обов'язково встановлюється);

xorg-x11-fnts (обов'язково встановлюється);

xorg-x 11-libs-data (обов'язково встановлюється набір з бібліотеками);

xorg-x11-xwin (обов'язково встановлюється, Cygwin / XX Server);

xterm: Xterm - X Terminal (рекомендований до установки наборі програмою X-термінал).

Крім того, в розділі Net слід включити установку openssh і openssl.

Після установки Gygwin / X необхідно налаштувати. Конфігураційні параметри передаються Gygwin / X при запуску програми XWin.exe в її командного рядку. Для полегшення запуску поставляється спеціальний файл startxwin.bat.

Якщо в якості основного каталогу був обраний C: cygwin, то файл startxwin.bat слід шукати в каталозі C: ​​cygwinusrX11R6bin. У ньому необхідно знайти рядок run XWin-multiwindow-clipboard-silent-dump-error і дописати в кінці-xkbrules xorg-xkbmodel pc104-xkblayout «us.ru»-xkbvariant winkeys-xkboptions «grp: alt_shiftjtoggle». Додані параметри дозволяють використовувати російську клавіатуру і за своїм значенням повністю збігаються з аналогічними параметрами конфігураційного файлу Х-сервера xorg.conf в Linux.

Робота з CYGWIN / X

Після установки програми на робочому столі створюється ярлик Cygwin, за допомогою якого запускається оболонка bash, так що можна працювати зі знайомою командним рядком Linux. З її допомогою можна запустити Х-сервер в режимі X-термінала: Х-query 192.168.1.3. Замість IP-адреси 192.168.1.3 слід вказати IP адреса комп'ютера, де знаходиться менеджер дисплеїв kdm. На екрані має з'явитися запрошення увійти в систему на машині Linux (Див. Малюнок 1). Після входу активізується віконний менеджер, і тепер можна працювати на машині Linux з відображенням даних у Windows.

Звичайно, такий метод досить ресурсоемок, тому при великій кількості клієнтів для Linux слід встановити потужний комп'ютер. Втім, Gygwin / X передбачає і інший режим, коли на машині Windows запускається Х-сервер, власний віконний менеджер і програма емуляції терміналу. У цьому випадку для запуску використовується файл startxwin.bat. Завдяки параметру-multiwindow, який передасться при запуску XWin.exe, кожен додаток буде відкриватися у своєму вікні.

При використанні startxwin.bat не відбувається підключення Х-сервера як X-терміналу, і тому на машині Linux не потрібно налаштовувати менеджер дисплеїв.

Після запуску startxwin.bat з'являється вікно програми емуляції терміналу. Спочатку необхідно дозволити віддаленим програмами відображувати дані на Х-сервер, що працює в Windows. Для цих цілей скористаємося програмою xhost: xhost +192.168.1.3. Замість зазначеного у прикладі IP-адреси слід ввести IP-адресу машини Linux, на якій будуть запускатися програми.

Потім необхідно зайти на машину з Linux за допомогою програми ssh: ssh user@192.168.1.3 і вказати ім'я користувача машини Linux і її IP-адреса.

Тепер зробимо так, щоб програми, що запускаються на Linux, відображали свої дані у вікні на машині Windows. Один з варіантів - використання змінної середовища оточення DISPLAY: export DIS-PLAY = 192.168.1.2:0.0. Замість IP-адреси, вказаної в прикладі, слід використовувати IP-адресу машини Windows, на якій працює Х-сервер. Програми запускаються звичайним чином.

Встановлення та налаштування WEIREDX

Сервер поставляється у вигляді архіву zip, який досить розпакувати у будь-якому каталозі. Перед запуском у системі необхідно встановити віртуальну машину Java як мінімум версії 1.1.

У каталозі, де був розпакований архів, з'явиться підкаталог config, p ньому знаходиться лише один конфігураційний файл - props. Всі параметри сервера задаються в цьому файлі.

У файлі props слід знайти параметр weirdx.dis-play.acl, щоб визначити, кому можна відображати дані на цьому Х-сервері. Наприклад, +192.168.1.3 або просто символ «+», якщо доступ дозволено всім.

Запуск сервера краще виробляти за допомогою спеціального командного файлу з каталогу misc - weirdx-Java2.bat. Потім треба зайти на сервер Linux за допомогою будь-якої програми, що підтримує протокол ssh (наприклад, PuTTY). Як і п випадку з Cygwin / X, це необхідно для визначення змінної DISPLAY і запуску програми.

WeiredX працював дуже повільно (позначається використання Java), і при відображенні на екрані з'являлися чорні смуги. У цілому якість даного продукту розчарувало, тому знімки екрану з прикладами роботи WeiredX не наводяться.

Встановлення та налаштування X-DEEP / 3

На сайті X-Deep/32 відсутня будь-яка документація по продукту, крім FAQ. Установчий файл займав майже 16 Мбайт, а для установки потрібно 43 Мбайт вільного дискового простору.

Сам процес являє собою звичайну процедуру установки програми Windows. За його завершення була виявлена ​​документація по продукту і дві програми: Х-ссрвер і X Client Launcher.

Після запуску Х-сервера з'явилося діалогове вікно, де пропонувалося вибрати мережевий інтерфейс, за допомогою якого Х-сервер буде слухати запити (Див. Малюнок 2). Потім сервер здійснив пошук доступних відвідай менеджерів дисплеїв і представив їх список.

Правда, при першій спробі підключитися до менеджера дисплеїв не вдалося: у мережі потрібно налаштувати коректне перетворення імен. Але після запуску X-Deep/32 можна відкрити вікно налаштувань, де явним чином вказати машину Linux, до якої слід підключатися.

І ще одна цікава можливість - зробити головне (root) вікно Х-сервера прозорим (див. Малюнок 3). Тоді на робочому столі Windows будуть видні піктограми Linux.

Але при всій простоті установки і настройки Х-сервер показав себе не з кращої сторони в плані продуктивності - cygwin / X працює набагато швидше. Вбудована в X-Deep/32 можливість віддаленого запуску програм спирається на rsh і гехес. Жоден розсудливий адміністратор ці програми використовувати не буде. Таким чином, у разі X-Deep/32 залишається задовольнятися режимом емуляції Х-терміпала, що не завжди зручно.

Підсумки

У результаті перевірки трьох безкоштовних серверів під Windows найбільш прийнятною, на мою думку, є реалізація від Cygwin. Незважаючи на те що Х-сервер від Cygwin вимагає установки майже всієї базової середовища запуску, він працює прекрасно. І це не дивно, адже він представляє собою стандартну реалізацію сервера xorg, зібрану в середовищі cygwin. Відповідно, при конфігурації сервера застосовуються тс ж прийоми, що і в Linux.

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

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

Ймовірно, існують і інші безкоштовні реалізації Х-серверів для Windows, але при швидкому пошуку в Internet їх виявити не вдалося. Можливо, комерційні Х-сервери здатні продемонструвати куди більшу швидкість роботи і легкість конфігурування, адже не дарма ж їх продають (ціни коливаються від 40 до 300 доларів за робоче місце).

На закінчення вважаю за необхідне зазначити, що утримувати робочі місця під управлінням Windows для того, щоб декілька людей могли запускати специфічні для Windows програми, на мій погляд, незручно. Простіше виділити один термінальний сервер під керуванням Windows 2000 і розмістити на ньому специфічні програми - 1C, системи CAD і ін., А на робочих місцях використовувати бездискові робочі станції під управлінням Linux, на яких і запускати rdesktop, термінальний клієнт для Windows. LAN

Артур Крюков - викладач навчального центру «Спеціаліст». З ним можна зв'язатися за адресою: akr-jukov@speciaUst.ru.

Список літератури

Журнал LAN № серпня 2005


Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Реферат
31.9кб. | скачати


Схожі роботи:
Налаштування локальної мережі і підключення до мережі інтернет для Windows XP і Windows 7
Оперціаонние системи ASP Linux і Windows
Реалізація мережі в операційній системі Linux
Створення бази даних функціональних аналогів Windows-програм для ОС Linux і розробка методики
Організація безпеки мережі підприємства з використанням операційної системи Linux
Друк в мережі Windows
Довірчі домени мережі Windows NT
Типові завдання адміністрування мережі Windows 2000
Грін а. - Казка про любві1
© Усі права захищені
написати до нас