Состав CDEmu, принцип работы
Содержание:
1. Установка;
2.Состав CDEmu, принцип работы (Вы читаете данный раздел);
3. Работа с CDEmu.
Разработчики CDEmu умело воспользовались возможностями, которые предоставляет Linux. Функциональность программы в целом представлена на схеме (см. рис. выше). В пространство ядра добавляется модуль VHBA (Virtual (SCSI) Host Bus Adapter), который эмулирует работу SCSI-контроллера.
В пространстве пользователя функционируют остальные компоненты CDEmu:
- cdemu-daemon эмулирует непосредственно виртуальные приводы и работает с образами дисков, используя возможности библиотеки libMirage (включает парсеры образов дисков);
- демон управляется клиентом cdemu-client и графическим ап-плетом gCDEmu;
- дополнительная утилита MIRAGE Image Analyzer позволяет быстро ознакомиться с возможностями библиотеки libMirage.
Рассмотрю некоторые технические детали каждого из компонентов. CDEmu daemon написан на C с использованием Glib, работает с D-Bus, что позволяет использовать различные языки программирования при написании клиентов. Запуск демона может быть осуществлен на уровне сессии или на системном уровне: в первом случае создается отдельная шина для каждого сеанса пользователя, а во втором - используется системная, т.е. доступная всем. Демон, представляющий собой реализацию виртуального устройства, получает SCSI-команды из модуля ядра, обрабатывает их и передает результат обратно.
Библиотека libMirage (написана на языке C и Glib) обеспечивает унифицированный доступ к различным форматам образов дисков. Поддерживаются:
- B6T (BlindWrite 5-6 - здесь и далее указанно название программы, использующей указанный формат);
- C2D (WinOnCD);
- CCD (CloneCD);
- CDI (DiscJuggler);
- CIF (Easy CD Creator);
- CUE (CDRwin);
- DAA (PowerISO);
- ISO;
- MDS (Alcohol 120%);
- NRG (Nero Burning ROM);
- TOC (Cdrdao).
Кроме того, поддерживаются плагины, что обеспечивает легкость добавления, например, парсеров новых форматов данных. Библиотека имеет API, описание которого доступно на http://cdemu.sourceforge.net/reference/index.html.
Связующим звеном между демоном пространства пользователя и ядром Linux является модуль VHBA - Virtual (SCSI) Host Bus Adapter. Как уже говорилось, основная задача модуля - эмуляция устройств в ядре. Кроме того, VHBA создает специальное символьное устройство для взаимодействия с пространством пользователя.
«Первый» представитель клиентской части - это CDEmu CLI client (утилита cdemu), простой инструмент командной строки, ориентированный на управление работой демона. Апплет для GNOME - GCDEmu - можно добавить, кликнув правой кнопкой мыши на панели рабочей среды, потом «Добавить на панель...», выделить «gCDEmu Applet -- Добавить». Пример работы с gCDEmu представлен на рис. ниже. Помимо загрузки в вирту-альный дисковод образов и их выгрузки он выводит информацию о состоянии виртуальных устройств, отображает уведомления демона.
И несколько слов об утилите MIRAGE Image Analyzer. Ее интерфейс основан на GTK+, и она позволяет отображать структуру образа диска, созданного с использованием библиотеки libMirage. Таким образом, основная область применения - демонстрация возможностей API. Кроме того, ее можно использовать, чтобы проверить, корректно ли образ диска обрабатывается в libMirage.
1. Установка;
2.
3. Работа с CDEmu.
Разработчики CDEmu умело воспользовались возможностями, которые предоставляет Linux. Функциональность программы в целом представлена на схеме (см. рис. выше). В пространство ядра добавляется модуль VHBA (Virtual (SCSI) Host Bus Adapter), который эмулирует работу SCSI-контроллера.
В пространстве пользователя функционируют остальные компоненты CDEmu:
- cdemu-daemon эмулирует непосредственно виртуальные приводы и работает с образами дисков, используя возможности библиотеки libMirage (включает парсеры образов дисков);
- демон управляется клиентом cdemu-client и графическим ап-плетом gCDEmu;
- дополнительная утилита MIRAGE Image Analyzer позволяет быстро ознакомиться с возможностями библиотеки libMirage.
Рассмотрю некоторые технические детали каждого из компонентов. CDEmu daemon написан на C с использованием Glib, работает с D-Bus, что позволяет использовать различные языки программирования при написании клиентов. Запуск демона может быть осуществлен на уровне сессии или на системном уровне: в первом случае создается отдельная шина для каждого сеанса пользователя, а во втором - используется системная, т.е. доступная всем. Демон, представляющий собой реализацию виртуального устройства, получает SCSI-команды из модуля ядра, обрабатывает их и передает результат обратно.
Библиотека libMirage (написана на языке C и Glib) обеспечивает унифицированный доступ к различным форматам образов дисков. Поддерживаются:
- B6T (BlindWrite 5-6 - здесь и далее указанно название программы, использующей указанный формат);
- C2D (WinOnCD);
- CCD (CloneCD);
- CDI (DiscJuggler);
- CIF (Easy CD Creator);
- CUE (CDRwin);
- DAA (PowerISO);
- ISO;
- MDS (Alcohol 120%);
- NRG (Nero Burning ROM);
- TOC (Cdrdao).
Кроме того, поддерживаются плагины, что обеспечивает легкость добавления, например, парсеров новых форматов данных. Библиотека имеет API, описание которого доступно на http://cdemu.sourceforge.net/reference/index.html.
Связующим звеном между демоном пространства пользователя и ядром Linux является модуль VHBA - Virtual (SCSI) Host Bus Adapter. Как уже говорилось, основная задача модуля - эмуляция устройств в ядре. Кроме того, VHBA создает специальное символьное устройство для взаимодействия с пространством пользователя.
«Первый» представитель клиентской части - это CDEmu CLI client (утилита cdemu), простой инструмент командной строки, ориентированный на управление работой демона. Апплет для GNOME - GCDEmu - можно добавить, кликнув правой кнопкой мыши на панели рабочей среды, потом «Добавить на панель...», выделить «gCDEmu Applet -- Добавить». Пример работы с gCDEmu представлен на рис. ниже. Помимо загрузки в вирту-альный дисковод образов и их выгрузки он выводит информацию о состоянии виртуальных устройств, отображает уведомления демона.
И несколько слов об утилите MIRAGE Image Analyzer. Ее интерфейс основан на GTK+, и она позволяет отображать структуру образа диска, созданного с использованием библиотеки libMirage. Таким образом, основная область применения - демонстрация возможностей API. Кроме того, ее можно использовать, чтобы проверить, корректно ли образ диска обрабатывается в libMirage.