Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Операционные системы. Часть 2.pdf
Скачиваний:
10
Добавлен:
05.02.2023
Размер:
6.54 Mб
Скачать

210

Рисунок 6.8 — Результат запуска qdbus без параметров

6.6 Лабораторная работа по теме №12

Ранее было отмечено, что без хорошего знания архитектуры приложений, использовать взаимодействие через шину D-Bus - довольно сложно. Кроме того, многие приложения ОС специализированы для применения в конкретной графической среде и развиваются в рамках отдельных проектов.

Такое положение вещей затрудняет изучение ПО D-Bus, делая все рассматриваемые примеры частными, по отношения к общей концепции взаимодействия процессов в среде ОС.

Тем не менее, даже частные примеры демонстрируют возможности и перспективы использования современных тенденций развития ПО ОС.

Вданной лабораторной работе, мы ограничимся:

изучением утилиты qdbus, обеспечивающей наиболее удобное исследование шины D-Bus;

исследованием примера взаимодействия с приложением evince, посредством доступа к его методам, доступным через шину D-Bus.

211

6.6.1 Утилита qdbus

Утилита qdbus специализирована для работы с приложениями, использующими библиотеки Qt API.

Кроме того, эта утилита удобна для исследования шины D-Bus, что частично продемонстрировано рисунком 6.8.

Общий вызов утилиты:

qdbus [--system] [--literal] [servicename] [path] [method] [args],

где --system - обращение идет к системной шине, в провном случае - к шине сессии; --literal — печатать сообщение литерами;

servicename — имя сервиса, можно использовать формат ':x.y'; path — путь к объекту, в формате - как к файлу;

method — имя вызываемого метода;

args — аргументы, передаваемые вызываемому методу сервиса.

Для исследования приложений, использовать утилиту qdbus довольно просто:

сначала, утилита запускается без параметров; она выведет все доступные имена сервисов, зарегистрированных на D-Bus;

выбрав имя сервиса, следует запустить ее с этим именем; в результате на консоль выведется список доступных путей;

запустить утилиту с выбранными именем и путем; на консоль выведутся доступные методы;

запустить утилиту с выбранными именем, путем, методом и аргументами.

Задание 6.1

Изучить по руководству man назначение и способы применения утилиты qdbus. Освоить применение утилиты qdbus в командной строке терминала.

Оразить полученные результаты исследования в личном отчете по теме №12.

6.6.2 Взаимодействие через шину с приложением evince

Возможности утилиты qdbus рассмотрим на примере ее взаимодействия с приложением evince, которое предназначено для просмотра файлов формата pdf.

Задание 6.2

Обучающийся должен повторить все примеры действий, описанных в данном подразделе, и отобразить полученные результаты в личном отчете.

Для начала, следует запустить утилиту qdbus, без параметров, и просмотреть имена сервисов, как это показано на рисунке 6.8.

212 Поскольку студент читает методическое пособие по теме №12, то:

уже запущено приложение evince для просмотра pdf-файлов;

поэтому, на рисунке 6.8 присутствует строка: org.gnome.evince.Daemon, соответствующая имени сервиса приложения evince.

Далее следует, в директории ~/bin создать запускаемый сценарий lab12.1.sh, в котором набрать строку:

qdbus org.gnome.evince.Daemon

Запустить сценарий lab12.1.sh и провести анализ путей, выведенных утилитой qdbus на терминал и показанных на рисунке 6.9.

Рисунок 6.9 — Результат запуска сценария lab12.1.sh

Добавить в сценарий путь /org/gnome/evince/Daemon и снова — запустить. Провести анализ результата, показанного на рисунке 6.10.

Рисунок 6.10 — Методы приложения evince на шине D-Bus

Выберем метод FindDocument, как показано на рисунке 6.10, и учтем, что он имеет два параметра:

213

uri — строковое значение, задающее путь к документу, например,

/home/upk/Документы/Керниган-С.pdf;

spawn — булевое значение, которое следует задать как 1.

Модифицировать сценарий lab12.1.sh, как показано на рисунке 6.11, и запустить его на исполнение.

Рисунок 6.11 — Окончательный вариант сценария lab12.1.pdf

В результате указанных действий, должно запуститься приложение evince с открытым на просмотр файлом Керниган-С.pdf.

После завершения исследования шины D-Bus, следует:

оформить отчет по лаборатоной работе №12;

завершить оформление общего отчета по темам №7-№12;

приступить к процедуре сдачи результатов проделанных работ преподавателю.