⌨ Labor omnia vincit ☮

KNetworkManager

Posted in KDE by anaumov on 01.12.2009

Одна из немногих программных утилит, которая используется на мобильных устройствах, является инструментом беспроводных сетей, но почему-то это одно из последних приложений которые появились в KDE 4. С осеннего урожая 2009 GNU/Linix дистрибутивов, готовый к использованию клиент для широко используемой системы NetworkManager, наконец совершает свой дебют.

Почему так долго?

Есть несколько причин. Оригинальный клиент для NetworkManager‘а был апплетом для GNOME и был разработан вместе с демоном. Из-за этого интерфейсы NetworkManager‘а для разработчиков других клиентов были только частично зарегистрированы. Система NetworkManager состоит из демона, который получает сетевые параметры от пары служб настройки. Этот сервис предоставляет информацию о конфигурации, помещая объекты Connection в системную шину. Клиент посылает команды демону, чтобы активизировать эти подключения. По этой причине, одна из первых задач состоит в том, чтобы взять интерфейс D-Bus documentation system от Telepathy и связать его с интерфейсом D-Bus NetworkManager‘а.

Другая причина состояла в том, что существующий knetworkmanager-kde3 нуждался во многих усовершенствованиях пользовательского интерфейса. Другими словами – уже просто не вписывалсяся с другими приложениями KDE 4. Он использовал D-bus Qt3, что так же требовало изменений, вплодь до полного обновления. Актуальный код KNetworkManager‘а для KDE4 имеет только несколько основных схожих алгоритмов со своим предшественником. И наконец, knetworkmanager-kde3 для NM 0.6 и 0.7 был разработан полностью в синтазе с дистрибутивом и никогда не был объеденен с основными модулями KDE. Это привело к тому, что не так немного программистов присоединялось к проекту, и большая часть необходимой работы была сделана инженерами SuSE.

Новое начало… ложный рассвет

Will Stephenson из KDE Team (в Novell/SUSE Linux) взял на себя ответственность за новый клиент для NM в 2007 году от другой группы разработчиков и начал переписывать основные уровни D-Bus, используя новые соединения D-Bus для Qt4. В январе 2008 на встече, посвященной выходу KDE 4, он встретился с Полом Селеста (Celeste Paul), Кристофером Бловелтом (Christopher Blauvelt), Себастьяном Кюглером (Sebastian Kügler) и другими, чтобы разработать концепт для нового юзер-френдли клиента NM. Он должен был быть спроектирован как родной Plasma-апплет для NM в KDE 4.1, который использовался бы и в других дистрибутивах.

У этого клиента было ОЧЕНЬ много недостатков, главным образом потому, что группа потеряла очень много времени, решая проблемы со схемами размещения в новых классах QGraphicsView, вместо того, чтобы обеспечить стабильную функциональность апплета, а дизайну дать развиваться постепенно с течением времени. Тогда, в мае 2009, KDE eV предложил спонсировать хак-спринт в Осло, где собрались семь разработчиков, и в ходе которого были внесены существенные изменения, облегчающие дальнейшую разработку. В течение лета 2009 эти изменения были еще более усовершенствованны и протестированны. Из-за проблем, с которыми программисты сталкивались в прошлом, команда решила дальше разрабатывать проект “слоями”. К примеру, стандартный апплет системного трея был написан так, чтобы он мог работать как независимый процесс, т.е. никакая ошибка не могла отразиться на работе в Plasma-апплете, несмотря на то, что последний использует большие куски кода в библиотеках стандартного апплета.

Возможности KNetworkManager

Итак, что же предлагает нам новый KNetworkManager? Ну по крайней мере КNetworkManager предоставляет пользователю управлением работы с сетями %) Системный демон получает запросы и команды от пользовательских программ. Это – то, что предлагает нам гномовский nm-applet. Но так как мы создавали новый апплет учитывая опыт работы с knetworkmanager-kde3 и nm-applet, мы решили улучшить дизайн, чтобы сделать клиент настолько пригодным и простым для использования, насколько это возможно. Например, если доступно много WiFi сетей, и апплет будет показывать весь их список, пользователю может быть неудобно найти необходимую. Вместо этого апплет показывает только те из сетей, которые пользователь использовал прежде. Чтобы установить соединение с другой сетью, или ранее используемой скрытой сетью, диалог показывает прокручиваемый список, который может быть легко фильтрован с помощью строки поиска. Даже учитывая, что KNetworkManager не использует по умолчанию QGraphicsView, который использует Plasma для своего UI, все же стандартный Qt придает ему привлекательный интерфейс с меню, которое показывает качество беспроводного соединения и детальную информацию о безопасности, в то время как другие конструкции по-прежнему используют макеты. Пользователь может подключиться к сети одним нажатием во всплывающем меню, которое работает вместе с KDE System Settings, и сообщит которому об этом подключении, что облегчает поиск активных соединений, т.е. их можно будет найти не только в меню KNetworkManager, но и средствами KDE.

Но это еще не все, что нам удалось сделать. Благодаря модульной структуре кода, мы смогли пригласить еще одного разработчика (Пол Марчук), который независимо улучшал уже готовый код, в то время как основная работа продолжается. Такие вещи как: установка заказных иконок для подключения, подсказки с перестраиваемой конфигурацией для специалистов и для новичков, конфигурация UI для адресов IP, который ‘лучше чем OS X’, делали новички в KDE. Или другие хитрости, как например – как хранить пароли и другие секреты безопасности, или сообщение, что бы вводить пароли каждый раз, или, к примеру, сканер беспроводных сетей, который позволяет пользователю видеть, какие точки доступа находятся поблизости.

Пару слов о Plasmа

Некоторых читателей заинтерисует вопрос, касательно Plasma апллета. Он еше не готов и будет представлен позднее. Дизайн Осло Sprint отделаяет UI от конфигурации интерфейсов и D-Bus, которые делают основную работу, так что 90% кода KNetworkManager будет использоваться непосредственно апплетом Plasma. Между тем, Себастьян Кюглер продолжает улучшать код. Мы ожидаем, что Plasma будет выпущена как часть KDE 4.4.

Что еще предпологается сделать

Хотя мы надеемся, что пользователи openSUSE 11.2, Kubuntu 9.10 и Fedora 12 согласятся, что KNetworkManager удобен в использовании и является основным инструментом для мобильных широкополосных сетей 3G, все же еще многое предсоит сделать и исправить. Из-за недоработки во многих сетевых конфигурациях, существует много ошибок и неточностей в работе, над которыми мы не перестаем работать. Окончательный набор иконок для апплета готовит группа разработчикв Oxygen. Усовершенствования для KDE 4.4 будут включать минимальный UI, для создания новых подключений, показывая только необходимые поля паролей, и улучшая проверку соединений с сетями, к которым пользователь подключается в первые. В Mobile Broadband будет улучшена включением базы данных от провайдеров, интерфейс ModemManager будет предоставлять силу соединения совместимую с сотовым. IPv6 конфигурация должна быть доступна в ближайшее время, так что будет предусмотрена возможность создания и редактирования подключений еще до того как пользователь вошел в сеть. Использование Nepomuk позволит выполнять такие запросы как, к примеру: какие файлы я вчера загрузил в офисе? Наконец, мы надеемся, что другие сетевые менеджеры, такие как wicd, ConnMan и внутренние инструментальные средства, используемые в Mandriva и Pardus, будут написанны так, чтобы пользователю KDE было бы уютно работать не зависимо от того какой дисрибутив он использует.

Разработчики работают во благо KDE

Большая часть работы над программированием стека для KNetwotkManager была выполнена Виллом Стифенсоном (Will Stephenson), сотрудником Novell, но важно сказать, что эта открытый и свободный проект, целью которого является удобство работы с сетями для пользователей всех дистрибутивов операционной системы GNU/Linux.

В течение разработки мы кооперировали с разработчиками Fedora и Kubuntu. Мы работали вместе над исправлением ошибок, обменивались патчами, а так же вместе вносили улучшения и исправления в дерево исходных кодов.

Исходники проекта находится на SVN-сервере KDE, и будут постепенно двигаться в направление Extragear. Документация для разработчиков размещенна на TechBase.

Мы надеемся, что наше сотрудничесво послужит примером для других программистов, будь-то студенты-энтузиасты или сотрудники компаний, занимающиеся разработкой open source. Мы надеемся и впредь делать KDE лучше. Вместе.

4 Responses

Subscribe to comments with RSS.

  1. rommel said, on 17.12.2009 at 00:40

    Привет!
    Попользовался где-то месяц новым NM, реально лучше старого!
    Но есть одна раздражающая штука, которая привела к тому, что перешел на управление сетью через ifup, – стоит Ethernet-LAN, прописан статический Ай-Пи. Но при этом нетворкменеджер, после старта КДЕ еще некоторое время тупит, ждет автораздачи (показывает выбранным пункт АВТО). И только спустя несколько секунд выбирает настроенный профиль со статическим Ай-Пи и говорит, что сеть включена.
    Проблема в том, что за эти секунды встают всякие аськи со скайпами, которые вписаны в автозагрузку, а сети-то нет.. вот они и умирают не родившись. И приходится перезапускать их, потому что команды “онлайн” они в данном случае уже не понимают.
    В общем, ИМХО, какая-то недоделка.
    P.S. KDE 4.3.8 / Suse 11.2

  2. Илья said, on 23.12.2009 at 08:27

    А я испытал проблемы с VPN-соединением из knetworkmanager. Соединение типа PPTP поднялось один раз, два и дальше никак. Да и иконка соединения какая-то неадекватная. Пользуюсь nm-applet’ом от Гнома. С ним все чудесно работает.
    Kubuntu 9.10, KDE 4.3.2

    • Alex said, on 09.01.2010 at 05:22

      Подозреваю, что в этом случае проблема была не в knetworkmanager.

  3. Lexx said, on 29.12.2009 at 15:56

    Ага, но есть, мне кажется и другие варианты


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: