106.2 Урок 1
Сертифікат: |
LPIC-1 |
---|---|
Версія: |
5.0 |
Розділ: |
106 Інтерфейси користувача та робочі столи |
Тема: |
106.2 Графічні робочі столи |
Урок: |
1 з 1 |
Вступ
Операційні системи на основі Linux відомі своїм вдосконаленим інтерфейсом командного рядка, але це може лякати користувачів, які не мають технічних знань. З метою зробити користування комп’ютером більш інтуїтивно зрозумілим, поєднання дисплеїв високої роздільної здатності з вказівними пристроями призвело до появи інтерфейса користувача, що керується зображеннями. У той час як для інтерфейсу командного рядка потрібні попередні знання про назви програм та параметри їх конфігурації, за допомогою графічного інтерфейсу користувача (GUI) програмні функції можна запустити, вказуючи на знайомі візуальні елементи, що робить криву навчання менш крутою. Крім того, графічний інтерфейс найкраще підходить для мультимедіа та інших візуально орієнтованих видів діяльності.
Дійсно, графічний інтерфейс користувача є майже синонімом комп’ютерного інтерфейсу, і більшість дистрибутивів Linux постачаються з графічним інтерфейсом, встановленим за замовчуванням. Однак не існує єдиної монолітної програми, відповідальної за повнофункціональні графічні робочі столи, доступні в системах Linux. Натомість кожен графічний стіл насправді є великою колекцією програм та їхніх залежностей, які варіюються від вибору дистрибутива до особистого смаку користувача.
Система X Window
У Linux та інших Unix-подібних операційних системах, де вона використовується, Система X Window (також відома як X11 або просто X) надає ресурси низького рівня, пов’язані з відтворенням графічного інтерфейсу та взаємодією користувача з ним, наприклад:
-
Обробка подій введення, таких як рухи миші або натискання клавіш.
-
Можливість вирізати, копіювати та вставляти текстовий вміст між окремими програмами.
-
Програмний інтерфейс інших програм використовується для малювання графічних елементів.
Хоча система X Window відповідає за керування графічним дисплеєм (сам відеодрайвер є частиною X), вона не призначена для малювання складних візуальних елементів самостійно. Фігури, кольори, відтінки та будь-які інші візуальні ефекти генеруються програмою, що працює поверх X. Такий підхід дає програмам багато простору для створення інтерфейсів, які можна налаштовувати, але також може призвести до накладних витрат на розробку, які виходять за межі програми та до невідповідності зовнішнього вигляду та поведінки в порівнянні з іншими програмними інтерфейсами.
З точки зору розробника, запровадження середовища робочого столу полегшує програмування графічного інтерфейсу користувача, пов’язане з базовою розробкою програми, тоді як з точки зору користувача це дає узгоджену роботу з різними програмами. Настільні середовища об’єднують інтерфейси програмування, бібліотеки та допоміжні програми, які співпрацюють для реалізації традиційних середовищ, які ще досі постійно розвиваються.
Середовище робочого столу
Традиційний GUI настільного комп’ютера складається з різних вікон. Термін вікно тут використовується для позначення будь-якої автономної області екрана, пов’язаної з запущеними процесами. Оскільки сама система X Window пропонує лише базові інтерактивні функції, повна взаємодія з користувачем залежить від компонентів середовища робочого столу.
Ймовірно, найважливіший компонент середовища робочого столу, менеджер вікон контролює розміщення вікон і їх оформлення. Саме менеджер вікон додає рядок заголовка до вікна, кнопки керування, зазвичай пов’язані з діями мінімізації, розгортання та закриття, і керує перемиканням між відкритими вікнами.
Note
|
Основні концепції, які можна знайти в графічних інтерфейсах настільних комп’ютерів, виникли з ідей, узятих із реальних офісних робочих просторів. Образно кажучи, екран комп’ютера – це робочий стіл, на якому розміщені такі об’єкти, як документи та папки. Вікно програми з вмістом документа імітує фізичні дії, такі як заповнення форми або малювання малюнка. Як і фактичні робочі столи, комп’ютерні настільні комп’ютери також мають програмні аксесуари, такі як блокноти, годинники, календарі тощо, більшість із яких засновані на їхніх «реальних» аналогах. |
Усі робочі середовища надають менеджер вікон, який відповідає зовнішньому вигляду його набору інструментів для віджетів. Віджети — це інформаційні або інтерактивні візуальні елементи, такі як кнопки або поля введення тексту, розташовані у вікні програми. Стандартні компоненти робочого столу, наприклад, засіб запуску додатків, панель завдань тощо, і сам менеджер вікон покладаються на такі набори інструментів для створення своїх інтерфейсів.
Бібліотеки програмного забезпечення, такі як GTK+ і Qt, надають віджети, які програмісти можуть використовувати для створення складних графічних інтерфейсів для своїх програм. Історично склалося так, що програми, розроблені за допомогою GTK+, не виглядали як програми, створені за допомогою Qt, і навпаки, але краща підтримка тем у сучасних настільних середовищах робить цю різницю менш очевидною.
Загалом GTK+ і Qt пропонують однакові функції щодо віджетів. Прості інтерактивні елементи можуть бути схожими, тоді як складені віджети, такі як діалогове вікно, яке використовується програмами для відкриття або збереження файлів, можуть виглядати зовсім інакше. Тим не менш, програми, створені за допомогою різних наборів інструментів, можуть працювати одночасно, незалежно від того, який набір інструментів віджетів використовують інші компоненти робочого столу.
На додаток до базових компонентів робочого столу, які можна вважати окремими самостійними програмами, середовище робочого столу реалізує метафору робочого столу, надаючи мінімальний набір додаткових програм, розроблених відповідно до тих самих інструкцій щодо дизайну. Варіанти наведених нижче програм зазвичай надаються в усіх основних настільних середовищах:
- Системні програми
-
Емулятор терміналу, файловий менеджер, менеджер встановлення пакунків, засоби налаштування системи.
- Зв’язок та Інтернет
-
Менеджер контактів, поштовий клієнт, веб-браузер.
- Офісні програми
-
Календар, калькулятор, текстовий редактор.
Середовища настільного комп’ютера можуть включати багато інших служб і програм: засіб привітання екрана входу, менеджер сеансів, міжпроцесний зв’язок, агент зв’язку ключів тощо. Вони також містять функції, надані сторонніми системними службами, такими як PulseAudio для звуку та CUPS для друку. Для роботи цих функцій не потрібне графічне середовище, але середовище робочого столу надає графічні інтерфейси для полегшення налаштування та роботи таких ресурсів.
Популярні робочі середовища
Багато пропрієтарних операційних систем підтримують лише одне офіційне середовище робочого столу, яке прив’язане до їх конкретного випуску та не має змінюватися. На відміну від них, операційні системи на базі Linux підтримують різні варіанти середовища робочого столу, які можна використовувати разом із X. Кожне середовище робочого столу має свої особливості, але вони зазвичай мають спільні концепції дизайну:
-
Засіб запуску програм із переліком вбудованих і сторонніх програм, доступних у системі.
-
Правила, що визначають програми за замовчуванням, пов’язані з типами файлів і протоколами.
-
Інструменти конфігурації для налаштування зовнішнього вигляду та поведінки робочого середовища.
Gnome — одне з найпопулярніших робочих середовищ, яке є першим вибором у таких дистрибутивах, як Fedora, Debian, Ubuntu, SUSE Linux Enterprise, Red Hat Enterprise Linux, CentOS тощо. У своїй версії 3 Gnome значно змінив свій вигляд і структуру , відходячи від метафори робочого столу та представляючи Gnome Shell як новий інтерфейс.
Загальний повноекранний засіб запуску Gnome Shell Activities замінив традиційний засіб запуску програм і панель завдань. Проте все ще можна використовувати Gnome 3 зі старим виглядом, вибравши опцію Gnome Classic на екрані входу.
KDE — це велика екосистема програм і платформа розробки. Його остання версія робочого середовища, KDE Plasma, використовується за замовчуванням у openSUSE, Mageia, Kubuntu тощо. Використання бібліотеки Qt є вражаючою особливістю KDE, що надає йому бездоганного вигляду та безліч оригінальних програм. KDE навіть надає інструмент налаштування для забезпечення візуального зв’язку з програмами GTK+.
Xfce — це середовище робочого столу, яке має бути естетично привабливим, але не споживає багато ресурсів комп’ютера. Його структура дуже модульна, що дозволяє користувачеві активувати та деактивувати компоненти відповідно до потреб і вподобань користувача.
Існує багато інших робочих середовищ для Linux, які зазвичай надаються альтернативними розповсюджувачами. Дистрибутив Linux Mint, наприклад, надає два оригінальних робочих середовища: Cinnamon (форк Gnome 3) і MATE (форк Gnome 2). LXDE — це робоче середовище, адаптоване до низького споживання ресурсів, що робить його хорошим вибором для встановлення на старішому обладнанні або одноплатних комп’ютерах. Незважаючи на те, що LXDE не пропонує всіх функцій важких робочих середовищ, LXDE пропонує всі основні функції, які очікуються від сучасного графічного інтерфейсу користувача.
Tip
|
Комбінації клавіш відіграють важливу роль у взаємодії з робочим середовищем. Деякі комбінації клавіш, наприклад Alt+Tab для перемикання між вікнами або Ctrl+c для копіювання тексту, є універсальними для робочого середовища, але кожне робоче середовище також має власні комбінації клавіш. Комбінації клавіш можна знайти в інструменті конфігурації клавіатури, що надається середовищем робочого столу, де комбінації клавіш можна додавати або змінювати. |
Взаємодія робочого столу
Різноманітність настільних середовищ в операційних системах на базі Linux накладає виклик: як змусити їх правильно працювати з графічними програмами або системними службами сторонніх розробників без необхідності впровадження спеціальної підтримки для кожного з них. Спільні методи та специфікації в середовищах робочого столу значно покращують взаємодію з користувачем і вирішують багато питань розробки, оскільки графічні програми повинні взаємодіяти з поточним середовищем робочого столу незалежно від того, для якого середовища робочого столу вони спочатку були розроблені. Крім того, важливо зберегти загальні параметри робочого столу, якщо користувач зрештою змінить вибір середовища робочого столу.
Організація freedesktop.org підтримує велику кількість специфікацій для взаємодії робочих столів. Прийняття повної специфікації не є обов’язковим, але багато з них широко використовуються:
- Адреси каталогів
-
Місце розміщення особистих налаштувань та інші файлів користувача.
- Елементи робочого столу
-
Програми командного рядка можна запускати в середовищі робочого столу через будь-який емулятор терміналу, але було б надто заплутано зробити всі їх доступними в панелі запуску програм. Елементи робочого столу – це текстові файли, що закінчуються на
.desktop
, які використовуються середовищем робочого столу для збору інформації про доступні програми робочого столу та способи їх використання. - Автозапуск програм
-
Записи на робочому столі, що вказують програму, яка має запускатися автоматично після входу користувача.
- Перетягування (Drag and drop)
-
Як програми повинні обробляти події перетягування.
- Кошик
-
Загальне розташування файлів, видалених файловим менеджером, а також способи зберігання та видалення файлів звідти.
- Теми значків
-
Загальний формат для взаємозамінних бібліотек значків.
Простота використання, яку забезпечують настільні середовища, має недолік порівняно з текстовими інтерфейсами, такими як оболонка: можливість надавати віддалений доступ. Хоча до середовища командного рядка віддаленої машини можна легко отримати доступ за допомогою таких інструментів, як ssh
, віддалений доступ до графічних середовищ потребує інших методів і може не досягти задовільної продуктивності на повільніших з’єднаннях.
Нелокальний доступ
Система X Window використовує дизайн, заснований на автономних дисплеях, де один і той самий X дисплей-менеджер може керувати кількома сеансами графічного робочого столу одночасно. По суті, дисплей аналогічний текстовому терміналу: обидва стосуються машини або програмного забезпечення, яке використовується як точка входу для встановлення незалежного сеансу операційної системи. Хоча найпоширеніші налаштування включають окремий графічний сеанс, запущений на локальній машині, також можливі інші менш звичайні налаштування:
-
Перемикання між активними сеансами графічного робочого столу на одній машині.
-
Більш ніж один набір пристроїв відображення (наприклад, екран, клавіатура, миша), підключених до однієї машини, кожен з яких керує власним сеансом графічного робочого столу.
-
Сеанси віддаленого графічного робочого столу, коли графічний інтерфейс надсилається через мережу на віддалений дисплей.
Сеанси віддаленого робочого столу підтримуються X, який використовує X Display Manager Control Protocol (XDMCP) для зв’язку з віддаленими дисплеями. Через високе використання пропускної здатності XDMCP рідко використовується через Інтернет або в низькошвидкісних локальних мережах. Проблеми безпеки також викликають занепокоєння з XDMCP: локальний дисплей спілкується з привілейованим віддаленим дисплейним менеджером X для виконання віддалених процедур, тому потенційна вразливість може зробити можливим виконання довільних привілейованих команд на віддаленій машині.
Крім того, для XDMCP потрібні екземпляри X, запущені на обох кінцях з’єднання, що може зробити його неможливим, якщо система X Windows недоступна для всіх залучених машин. На практиці для встановлення сеансів віддаленого графічного робочого столу використовуються інші більш ефективні та менш інвазивні методи.
Virtual Network Computing (VNC) — це незалежний від платформи інструмент для перегляду та керування середовищами віддаленого робочого столу за допомогою протоколу Remote Frame Buffer (RFB). Через нього події, створені локальною клавіатурою та мишею, передаються на віддалений робочий стіл, який, у свою чергу, надсилає назад будь-які оновлення екрана для локального відображення. На одній машині можна запускати багато серверів VNC, але кожному серверу VNC потрібен ексклюзивний TCP-порт у мережевому інтерфейсі, який приймає вхідні запити сеансу. Згідно з угодою, перший сервер VNC повинен використовувати TCP-порт 5900, другий — 5901 і так далі.
Сервер VNC не потребує спеціальних привілеїв для роботи. Звичайний користувач може, наприклад, увійти у свій віддалений обліковий запис і запустити звідти власний сервер VNC. Тоді на локальній машині будь-який клієнтський додаток VNC можна використовувати для доступу до віддаленого робочого столу (припускаючи, що відповідні мережеві порти доступні). Файл ~/.vnc/xstartup
— це сценарій оболонки, який виконується сервером VNC під час його запуску та може використовуватися для визначення середовища робочого столу, яке сервер VNC зробить доступним для клієнта VNC. Важливо зазначити, що VNC не надає сучасні методи шифрування та автентифікації, тому його слід використовувати разом із програмою стороннього розробника, яка надає такі функції. Для захисту з’єднань VNC часто використовуються методи, що включають тунелі VPN і SSH.
Remote Desktop Protocol (RDP) в основному використовується для віддаленого доступу до робочого столу операційної системи Microsoft Windows через мережевий порт TCP 3389. Незважаючи на те, що він використовує власний протокол RDP Microsoft, клієнтська реалізація, що використовується в системах Linux, є програмами з відкритим кодом, ліцензованими згідно з GNU General Public License (GPL) які не мають юридичних обмежень щодо використання.
Simple Protocol for Independent Computing Environments (Spice) містить набір інструментів, спрямованих на доступ до робочого середовища віртуалізованих систем на локальній машині або у віддаленому місці. Крім того, протокол Spice пропонує власні функції для інтеграції локальної та віддаленої систем, таких як можливість доступу до локальних пристроїв (наприклад, звукових динаміків і підключених пристроїв USB) із віддаленої машини та обмін файлами між двома системами.
Існують спеціальні клієнтські команди для підключення до кожного з цих протоколів віддаленого робочого столу, але клієнт віддаленого робочого столу Remmina надає вбудований графічний інтерфейс, який полегшує процес підключення, за бажанням зберігаючи налаштування підключення для подальшого використання. У Remmina є плагіни для кожного окремого протоколу, а також плагіни для XDMCP, VNC, RDP і Spice. Вибір правильного інструменту залежить від операційних систем, які використовуються, якості мережевого з’єднання та того, які функції середовища віддаленого робочого столу повинні бути доступні.
Вправи до посібника
-
Який тип програми забезпечує сеанси віконної оболонки в робочому середовищі?
-
Через різноманітність настільних середовищ Linux одна і та сама програма може мати більше однієї версії, кожна з яких найкраще підходить для певного інструментарію віджетів. Наприклад, bittorrent-клієнт Transmission має дві версії: transmission-gtk і transmission-qt. Який з двох слід встановити, щоб забезпечити максимальну інтеграцію з KDE?
-
Які настільні середовища Linux рекомендуються для недорогих одноплатних комп’ютерів із невеликою обчислювальною потужністю?
Дослідницькі вправи
-
Є два способи скопіювати та вставити текст у системі X Window: за допомогою традиційних клавіш Ctrl+c і Ctrl+v (також доступних у меню вікна) або натиснути середню кнопку миші, щоб вставити виділений текст. Який спосіб скопіювати та вставити текст із емулятора терміналу?
-
Більшість настільних середовищ призначають комбінацію клавіш Alt+F2 для вікна Виконати програму, де програми можна запускати за допомогою командного рядка. У KDE, яка команда виконає типовий емулятор терміналу?
-
Який протокол найкраще підходить для доступу до віддаленого робочого столу Windows із робочого середовища Linux?
Підсумки
Цей урок є оглядом графічних робочих столів, доступних для систем Linux. Сама система X Window надає лише прості функції інтерфейсу, тому середовище робочого столу розширює можливості користувача в графічному віконному інтерфейсі. На уроці розглядались такі теми:
-
Концепції графічного інтерфейсу та системи X Window.
-
Настільні середовища, доступні для Linux.
-
Подібності та відмінності між робочими середовищами.
-
Як отримати доступ до середовища віддаленого робочого столу.
Розглянуті концепції та програми:
-
Система X Window.
-
Популярні робочі середовища: KDE, Gnome, Xfce.
-
Протоколи віддаленого доступу: XDMCP, VNC, RDP, Spice.
Відповіді до вправ посібника
-
Який тип програми забезпечує сеанси віконної оболонки в робочому середовищі?
Будь-який емулятор терміналу, наприклад, Konsole, термінал Gnome, xterm тощо, надасть доступ до локальної інтерактивної сесії оболонки.
-
Через різноманітність настільних середовищ Linux одна і та сама програма може мати більше однієї версії, кожна з яких найкраще підходить для певного інструментарію віджетів. Наприклад, bittorrent-клієнт Transmission має дві версії: transmission-gtk і transmission-qt. Який з двох слід встановити, щоб забезпечити максимальну інтеграцію з KDE?
KDE побудовано на основі бібліотеки Qt, тому слід встановити версію Qt — transmission-qt.
-
Які настільні середовища Linux рекомендуються для недорогих одноплатних комп’ютерів із невеликою обчислювальною потужністю?
Базові робочі середовища, які не використовують занадто багато візуальних ефектів, наприклад Xfce і LXDE.
Відповіді до дослідницьких вправ
-
Є два способи скопіювати та вставити текст у системі X Window: за допомогою традиційних клавіш Ctrl+c і Ctrl+v (також доступних у меню вікна) або натиснути середню кнопку миші, щоб вставити виділений текст. Який спосіб скопіювати та вставити текст із емулятора терміналу?
Інтерактивні сеанси оболонки призначають натискання клавіші Ctrl+c для зупинки виконання програми, тому рекомендується використовувати метод середньої кнопки.
-
Більшість настільних середовищ призначають комбінацію клавіш Alt+F2 для вікна Виконати програму, де програми можна запускати за допомогою командного рядка. У KDE, яка команда виконає типовий емулятор терміналу?
Команда
konsole
запускає емулятор терміналу KDE, але такі загальні команди, як terminal, також працюють. -
Який протокол найкраще підходить для доступу до віддаленого робочого столу Windows із робочого середовища Linux?
Remote Desktop Protocol (RDP), оскільки він нативно підтримується Windows і Linux.