Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС_Шеховцов_1.docx
Скачиваний:
73
Добавлен:
09.11.2019
Размер:
14.73 Mб
Скачать

17.3.2. Система X Window

У деяких ОС графічні підсистеми не є інтегрованими і не виконуються у режимі ядра. Таким прикладом є система X Window (X Window System), яку дотепер широко використовують в UNIX-системах. У цьому розділі наведемо її основні особливості [26, 80].

Базова архітектура системи X Window

Система X Window розроблена із використанням клієнт-серверного підходу, але її базові ідеї відрізняються від традиційних концепцій цієї архітектури.

Насамперед, поняття клієнта і сервера розглядають під незвичним кутом зо­ру. Під клієнтом звикли розуміти застосування, що безпосередньо взаємодіє із користувачем, обробляє команди від клавіатури або миші та відображає дані, а під сервером — застосування, до якого клієнт звертається за даними. У даному випадку це не так (фактично маємо зворотну картину).

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

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

Клієнти і сервери можуть перебувати на різних комп'ютерах і виконуватися під різними операційними системами (рис. 17.2). Х-протокол звичайно працює поверх TCP/IP, фактично він є набором домовленостей про передавання спе­ціальних двійкових даних. Один сервер може одночасно відображати інформацію від клієнтів, що перебувають на різних комп'ютерах. Наприклад, комп'ютер під керуванням Linux може відображати засоби редагування відеоінформації, запуще­ні на комп'ютері Silicon Graphics під керуванням ОС IRIX, та адміністративний інтерфейс (вікно додавання нового користувача), запущений на іншій Linux-маши­ні. При цьому жодне із цих застосувань не перебуває у пам'яті комп'ютера, на яко­му виконується Х-сервер. З іншого боку, комп'ютери, на яких запущені Х-клієнти, можуть взагалі не підтримувати графічного відображення інформації — для них досить наявності зв'язку із сервером через мережу.

Зазначимо, що використання системи X Window не виключає можливості консольного доступу до ОС. З одного боку, на машині з Х-сервером є можливість перемикання між ним і текстовою консоллю, з іншого боку, всі поставки системи X Window включають клієнтську програму xterm, що реалізує емуляцію терміна­ла. Це застосування дає можливість користувачу запускати командний інтерпре­татор і консольні застосування на віддаленій машині та відображати результати їхнього виконання на екрані Х-сервера.

Віконні менеджери

Команди, надіслані клієнтами сервера, звичайно пов'язані із необхідністю відобра­ження інформації у вікні застосування - ділянці екрана, якою володіє відповідне застосування. Важливою властивістю системи X Window є те, що Х-сервер не відповідає за роботу із такими вікнами, для цього використовують спеціальне клієнтське застосування — віконний менеджер (window manager). В обов'язки та­кого менеджера входить підтримка базових операцій над вікнами (їхнього пере­міщення, закриття або зміни розмірів), а також «декорування» вікон (відображен­ня рамки, заголовка тощо).

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

Рішення виділити підтримку віконних операцій в окреме застосування дал змогу досягти додаткової гнучкості роботи із системою. Є багато різних віконнн менеджерів, серед найпоширеніших можна виділити fvwm, sawfish, enlightenmen Деякі з них реалізують лише базову функціональність керування вікнами, інв надають користувачу багато можливостей (запуску застосувань, організації роб( чого столу тощо).

Клієнтські застосування та інструментальні бібліотеки

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

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

На практиці застосування розробляють із використанням набору функцій т сокого рівня, реалізованих із використанням XLib. Такі функції можуть відпов дати за відображення конкретних елементів керування і за обробку дій, виконг них користувачем із цими елементами; вони доступні в рамках інструментальна бібліотек (toolkit libraries). Елементи керування в термінології X Window називі ють віджетами (widgets), тому такі бібліотеки називають ще бібліотеками відж( тів (widget toolkits). Є так само багато інструментальних бібліотек, як і віконни менеджерів, серед найвідоміших можна виокремити Motif (найпоширеніша 6іблі< тека початку 90-х років, не є безкоштовною), Gtk, Qt (дві останні доступні у ві хідних кодах, і їх широко використовують у сучасних системах, зокрема в Linux)

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

Інтегровані середовища підтримки робочого столу

Як зазначалося, система X Window є дуже гнучкою. Можна використовувати різ­ні віконні менеджери, розробляти застосування із використанням різних інстру­ментальних бібліотек. Ця гнучкість, однак, має свої недоліки.

♦ Кожний віконний менеджер реалізує керування вікнами по-різному, перехід від одного до іншого зазвичай викликає в користувачів труднощі.

♦ Ще більше проблем пов'язано із відсутністю стандарту на реалізацію інструмен­тальних бібліотек; у результаті маємо, що в разі переходу від одного клієнтсь­кого застосування до іншого доводиться перемикатися між різними підходами до реалізації інтерфейсу користувача, навіть таких його базових компонентів, як прокручування або організація стандартних вікон відкриття файла.

♦ Кожну інструментальну бібліотеку потрібно поміщати у пам'ять під час за­вантаження відповідного застосування, що спричиняє додаткові витрати па­м'яті у тому випадку, коли одночасно у пам'ять завантажено кілька застосу­вань, що використовують різні бібліотеки. 1вє ьи-*-

♦ Відсутній стандарт на базові застосування для керування системою, такі як панель керування або файловий менеджер. Є багато реалізацій цих засобів, несумісних за інтерфейсом один з одним.

Для вирішення цих проблем запропоновано концепцію інтегрованого середо­вища підтримки робочого столу (desktop environment). Таке середовище — це інтегрований набір застосувань та інструментальних бібліотек, що реалізують весь набір засобів для організації роботи користувача під управлінням системи X Window. Найчастіше туди входять інструментальна бібліотека, віконний мене­джер і базові застосування для керування системою. Фактично, воно реалізує на­бір компонентів, стандартних для інтерфейсу користувача Windows-систем.

В сучасних ОС широко використовують два інтегровані середовища підтрим­ки робочого столу: KDE і GNOME. Особливості реалізації KDE наведено нижче.

KDE містить:

♦ інструментальну бібліотеку (Qt), яку використовують для реалізації всіх KDE-застосувань і рекомендують як стандарт для розробників;

♦ віконний менеджер (kwm), що підтримує керування вікнами на основі домо­вленостей, прийнятих у Windows-системах;

♦ набір додаткових бібліотек високого рівня (kdelibs), що реалізують складніші елементи керування (наприклад, діалогові вікна), а також базові системні функ­ції (наприклад, друкування документів);

♦ набір домовленостей із розробки інтерфейсу користувача;

♦ набір прикладних програм для розв'язання базових задач повсякденної робо­ти в системі (веб-браузер і файловий менеджер Konqueror, панель керування control panel, засіб запуску застосувань kpanel, емулятор термінала kconsole тощо).

GNOME має подібну функціональність, важливою відмінністю є те, що це се­редовище дає змогу вибирати між різними віконними менеджерами, не віддаючи переваги якомусь одному.