Релиз FreeRDP 1.0, форка проекта rdesktop
17 января 2012 года
После года разработки увидел свет релиз проекта FreeRDP 1.0, предназначенного для организации подключения к терминальным серверам Windows по протоколу RDP и продолжающего развитие RDP-клиента Rdesktop. От Rdesktop проект FreeRDP отличается решением проблем с переключением раскладок, поддержкой особенностей новых версий Windows (Windows 7, Windows 2008), реализацией технологии кэширования битовых карт, переработкой поддержки проброса устройств (доступ к звуковым картам, принтерам, USB-накопителям) и другими дополнительными возможностями.
В процессе подготовки FreeRDP 1.0 основные компоненты проекта были полностью переписаны. Если ветка FreeRDP 0.x лишь продолжала развитие кода rdesktop, то FreeRDP 1.x отныне может рассматриваться как полностью самостоятельный и не пересекающийся с rdesktop проект. Наиболее важным изменением, связанным с переработкой кода, является переход на новую лицензию. Начиная с версии FreeRDP 1.0 код распространяется под лицензией Apache, в то время как прошлые версии были доступны под лицензией GPLv2.
Изначально намеченный план по выпуску ещё одного релиза в ветке FreeRDP 0.x - 0.9, отменён. Вместо поддержки устаревшей ветки разработчики решили приложить все свои усилия к развитию переписанной кодовой базы FreeRDP 1.x. Несмотря на то, что список новшеств в версии FreeRDP 1.0 впечатляет, у разработчиков остаётся множество планов, которые ещё предстоит реализовать в будущих выпусках. Например, среди приоритетных задач на будущее упоминается обеспечение поддержки протокола RDP8 и реализация возможности работы FreeRDP в роли RDP-сервера, а не только клиента.
Основные новшества FreeRDP 1.0:
- Поддержка технологии RemoteFX, позволяющей оптимизировать трансляцию клиенту видео и текста, а также обеспечить задействование средств 3D-акселерации (DirectX) через предоставление доступа к виртуализированному представлению физического GPU для гостевых систем, запущенных под управлением гипервизора Hyper-V. В FreeRDP подготовлена реализация как декодера RemoteFX, так и кодировщика, при создании которых задействованы оптимизации с использованием инструкций SSE2 (Intel) и NEON (ARM);
- Реализация RDP-расширения NSCodec с реализацией кодека, обеспечивающего быстрое и эффективное кодирование изображений;
- Поддержка работы с сервисом RemoteApp, предоставляющим доступ к приложениям, размещённым на стороне сервера, но работающим с полной интеграцией в окружение клиента (доступ не к целому рабочему столу, а к отдельному приложению по RDP, с которым пользователь работает как с обычным локальным приложением);
- Поддержка перенаправления мультимедиа потоков (Multimedia Redirection) с использованием FFmpeg, что позволяет увеличить эффективность передачи звукового и видео контента поверх протокола RDP. При использовании Multimedia Redirection с сервера по сети передаётся изначально сжатый мультимедиа поток, декодирование которого осуществляется на стороне клиента;
- Поддержка аутентификации с использованием NTLMv2, реализация функций проверки валидности сертификатов и обеспечение работы других механизмов безопасности RDP, соответствующих требованиям FIPS;
- Представлена реализация трёх клиентских интерфейсов: xfreerdp - официальный клиент для работы в X11, поддерживающий RemoteApp и реализующий работу GDI поверх X11. dfreerdp - клиент с поддержкой работы поверх DirectFB с программной реализацией GDI (libfreerdp-gdi). wfreerdp - клиент для платформы Windows. В качестве графического интерфейса также предлагается использовать универсальное приложение Remmina, написанное с использованием библиотеки GTK+ и поддерживающее расширение функциональности через подключение плагинов (доступны плагины с поддержкой протоколов RDP, VNC, NX, XDMCP и SSH).
- Представлена экспериментальная реализация RDP-сервера xfreerdp-server, пока поддерживающего только работу через RemoteFX и трансляцию событий от мыши и клавиатуры;
- Добавлены новые виртуальные каналы для проброса различных устройств между клиентом и сервером:
- cliprdr - перенаправление буфера обмена для приложений, вызываемых через RemoteApp;
- drdynvc - реализация динамических виртуальных каналов, в качестве примера представлен канал audin для проброса звука (поддерживается ALSA и PulseAudio)
- tsmf - проброс мультимедиа потоков (поддерживается FFmpeg, ALSA и PulseAudio);
- rdpdr - проброс различных типов устройств, таких как диск, параллельный порт, последовательный порт, принтер (поддерживается CUPS) и устройства для чтения смарт-карт;
- rdpsnd - проброс звука (поддерживается ALSA и PulseAudio).
- Новая система сборки, основанная на использовании cmake;
- Переработанная внутренняя архитектура проекта. Ядром выступает библиотека libfreerdp-core с серверной и клиентской реализацией базового протокола. Операции кэширования вынесены в библиотеку libfreerdp-cache. Распаковка битмапов и операции кодирвоания/декодирования контента реализованы в библиотеке libfreerdp-codec. В libfreerdp-kbd реализованы функции работы с клавиатурными раскладками, в libfreerdp-channels функции управления виртуальными каналами, в libfreerdp-gdi представлена переносимая реализация GDI, в libfreerdp-rail функции поддержки RemoteApp, в libfreerdp-utils - вспомогательные функции.
Источники править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.