x11vnc - x11vnc

редактировать
x11vnc
Исходный автор (ы) Карл Рунге
Разработчик (и) libvnc team
Первоначальный выпуск2001
Стабильный выпуск 0.9.16 / 5 января 2019 г.; 21 месяц назад (05.01.2019)
Репозиторий github.com / LibVNC / x11vnc
Платформа Unix, Linux
Доступно вАнглийский
Тип Удаленное администрирование
Лицензия Стандартная общественная лицензия GNU
Веб-сайтlibvncserver.sourceforge.net Измените это в Викиданных

x11vnc это программа сервера Virtual Network Computing (VNC). Он обеспечивает удаленный доступ с удаленного клиента к компьютеру, на котором размещен сеанс X Window и программное обеспечение x11vnc, постоянно опрашивая буфер кадра X-сервера на предмет изменений. Это позволяет пользователю управлять своим рабочим столом X11 (KDE, GNOME, Xfce и т. Д.) С удаленного компьютера либо на собственная сеть пользователя или через Интернет, как если бы пользователь сидел перед ним. x11vnc также может опрашивать устройства с буфером кадра, отличные от X11, такие как веб-камеры или карты ТВ-тюнеров, iPAQ, Neuros OSD, Консоль Linux и графический дисплей Mac OS X. x11vnc является частью проекта LibVNCServer и является бесплатным программным обеспечением, доступным по Стандартной общественной лицензии GNU. x11vnc был написан Карлом Рунге.

x11vnc не создает дополнительный дисплей (или рабочий стол X) для удаленного управления. Вместо этого он использует существующий дисплей X11, отображаемый на мониторе Unix-подобного компьютера в реальном времени, в отличие от других альтернатив Linux, таких как TightVNC Сервер. Однако можно использовать Xvnc или Xvfb для создания «виртуального» дополнительного дисплея и подключить к нему x11vnc, что обеспечивает доступ X-11 к безголовым серверам.

x11vnc имеет функции безопасности который позволяет пользователю установить пароль доступа или использовать имена пользователей и пароли Unix. Он также имеет варианты подключения через безопасную ссылку SSL. Предоставляется программа просмотра SSL Java VNC апплет, которая обеспечивает безопасные соединения из веб-браузера. Также поддерживается тип безопасности VeNCrypt SSL / TLS VNC.

Многие из UltraVNC расширений VNC поддерживаются x11vnc, включая передачу файлов.

Содержание
  • 1 Алгоритм опроса
  • 2 Внедрение ввода
  • 3 Интересные применения
  • 4 Эмуляция Xvnc
  • 5 Кэширование на стороне клиента
  • 6 См. Также
  • 7 Ссылки
  • 8 Внешние ссылки
Алгоритм опроса

x11vnc сохраняет копию X-сервера буфер кадра в RAM. Программный интерфейс X11 XShmGetImageиспользуется для извлечения данных из кадрового буфера пикселей. x11vnc сравнивает буфер кадра X-сервера с его копией, чтобы увидеть, какие области пикселей изменились (и, следовательно, должны быть отправлены в средства просмотра VNC). Чтение данных пикселей из физического буфера кадра может быть намного медленнее, чем запись в него (потому что графические устройства не оптимизированы для чтения), и поэтому последовательная проверка пикселей за пикселями часто будет слишком медленной.

Чтобы улучшить ситуацию, x11vnc читает полные строки пикселей, разделенных 32 пикселями по вертикали. Как только он доходит до нижней части экрана, он снова запускается в верхней части с немного другим смещением. После 32 таких проходов он покрывает весь экран. Этот метод позволяет x11vnc обнаруживать изменения на экране примерно в 32 раза быстрее, чем при последовательной проверке (если только изменения не очень маленькие, скажем, высотой всего 1 пиксель). Если присутствует расширение X11 DAMAGE, x11vnc использует его, чтобы подсказывать, на чем сосредоточить свой опрос, тем самым еще быстрее находя изменения и снижая нагрузку на систему.

Внедрение ввода

Когда x11vnc получает события ввода пользователя (нажатия клавиш, движение указателя и щелчки кнопки указателя) от программы просмотра VNC, он должен синтетически внедрить их в X-сервер. Для этого используются программные интерфейсы X11 XTestFakeKeyEvent, XTestFakeMotionEventи XTestFakeButtonEventрасширения XTEST.

Для устройств, не управляемых X11 (таких как графический дисплей Mac OS X ), должны использоваться другие программные интерфейсы. x11vnc также предоставляет интерфейс, в котором пользователь может предоставить свою собственную программу ввода данных.

Интересные применения

Часто системы специального назначения создаются с использованием X Window System для управления графическим отображением. x11vnc можно использовать для экспорта системного дисплея для удаленного доступа VNC. Это позволяет осуществлять удаленный мониторинг, управление и устранение неисправностей специальной системы. Иногда это избавляет от необходимости отправлять техника на удаленный объект или позволяет пользователям управлять оборудованием со своей рабочей станции или ноутбука. Известно, что x11vnc работает на следующих типах систем: Электронный микроскоп, МРТ и Радиология система анализа изображений, Электростанция и пульты управления нефтяной платформой, контроль распределения материалов, испытания систем самообороны корабля, системы ЯМР, аналитический микроскоп кремниевая пластина, а также управление освещением для театров и концертов. x11vnc используется для экспорта дисплеев X11 в встроенных системах, таких как КПК на базе Linux и ПК домашнего кинотеатра.

Если x11vnc не может быть запущен в системе специального назначения, иногда его можно запустить на соседнем компьютере и опрашивать буфер кадров X-сервера по сети. Таким образом можно получить доступ к проприетарным устройствам X-терминала через x11vnc.

Эмуляция Xvnc

Хотя x11vnc в основном используется для X-серверов, связанных с физическим графическим оборудованием, он также может подключаться к виртуальным X-серверам (чьи буферы кадра существуют только в ОЗУ), например Xvfb или сеанс Sun Ray. x11vnc имеет параметры (-createи -svc) для автоматического запуска Xvfb, возможно, от имени пользователя Unix, который вошел в систему. Интерактивный ответ x11vnc и Xvfb может быть не таким быстрым, как Xvnc, однако этот режим включает функции, которых нет в Xvnc, такие как шифрование SSL и имена пользователей и пароли Unix.

Кэширование на стороне клиента

Протокол RFB (VNC) выглядит странно по сравнению с другими протоколами сетевой графики, такими как X11 и RDP, в котором отсутствует положение о кэшировании данных пикселей на стороне зрителя. Хотя это упрощает реализацию клиента, за интерактивный ответ приходится платить. Например, для каждого повторного экспонирования окна или области фона необходимо, чтобы его (сжатые) пиксельные данные повторно передавались по сети. Этот эффект особенно заметен для окон со сложными областями или областями фотографий (например, окно веб-браузера), которые часто отображаются в виде значков, деиконифицируются или повторно отображаются.

x11vnc имеет экспериментальную и несколько грубую реализацию кэширования на стороне клиента. Он включается с помощью параметра -ncache. При создании буфера кадра RFB в этом режиме x11vnc выделяет очень большую рабочую область ниже верхней части, которая используется для фактических (на экране) данных пикселей. Затем x11vnc может использовать команду RFB CopyRect, чтобы указать зрителю перемещать прямоугольники с пиксельными данными в рабочую область и из нее. Эти движения выполняются локально на стороне зрителя. Таким образом, x11vnc может управлять временной областью для хранения и извлечения данных пикселей без повторной отправки их по сети.

Режим кэширования на стороне клиента x11vnc может дать заметные улучшения интерактивного ответа для многих действий.

SSVNC 1.0.29, подключенный к удаленному Debian 7 Linux Xsession

Поскольку он использует существующую команду RFB CopyRect, схема будет работать с любым (т.е. немодифицированным) VNC зритель. Однако есть и недостатки. Во-первых, он потребляет большой объем памяти. Для хорошей производительности следует использовать рабочую область в 10-20 раз больше, чем фактический экран. Таким образом, вместо использования 5 МБ для буфера кадров с истинным цветом 1280x1024, будет использоваться около 100 МБ (как на стороне клиента VNC, так и на стороне сервера). Это не такая большая проблема на современных компьютерах, но это было бы невозможно на низких запоминающее устройство. Во-вторых, программа просмотра VNC может обрабатывать рабочую область способами, которые сбивают с толку пользователя, например, отображая ее пользователю или автоматически перемещаясь в нее, если мышь достигает нижней части реального экрана. Средство просмотра Unix VNC в SSVNC автоматически скрывает рабочую область. Наконец, эвристика x11vnc для кэширования и повторного использования данных пикселей окна несовершенна и может привести к неожиданному миганию содержимого окна и другим нежелательным эффектам.

См. Также
  • Портал бесплатного программного обеспечения с открытым исходным кодом
Ссылки
Внешние ссылки
Последняя правка сделана 2021-06-22 06:08:39
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте