Введение

Avahi — это бесплатная реализация сетевого взаимодействия с нулевой конфигурацией (zeroconf), включающая систему многоадресной рассылки DNS (multicast DNS) и обнаружения служб DNS (DNS Service Discovery). Она распространяется по лицензии GNU Lesser General Public License (LGPL). Avahi — это система, позволяющая программам публиковать и обнаруживать службы и хосты, работающие в локальной сети. Например, пользователь может подключить компьютер к сети, и Avahi автоматически начнет рекламировать сетевые службы, работающие на этом компьютере, упрощая доступ к ним.

Архитектура программного обеспечения

Avahi реализует спецификацию Apple Zeroconf, mDNS, DNS-SD и RFC 3927/IPv4LL. Другие реализации включают в себя фреймворк Bonjour от Apple (компонент mDNSResponder которого лицензирован под лицензией Apache). Avahi предоставляет набор языковых привязок (Python, Mono и др.) и поставляется с большинством дистрибутивов Linux и BSD. Благодаря своей модульной архитектуре, основные компоненты рабочих сред, такие как виртуальная файловая система GNOME и архитектура ввода/вывода KDE, уже интегрированы с Avahi.

Авахи против Бонжура

Проект Avahi начался в 2004 году, поскольку реализация Zeroconf от Apple, Bonjour, использовала лицензию Apple Public Source License, несовместимую с GPL. В 2006 году Apple перелицензировала некоторые части Bonjour под лицензией Apache. Производительность Avahi сопоставима с Bonjour, а иногда и превосходит её, однако Avahi может терять сервисы при одновременной обработке большого количества запросов.

История

Avahi был разработан Леннартом Поттерингом и Трентом Ллойдом. Это результат слияния в 2005 году оригинальной реализации mDNS/DNS-SD, созданной Поттерингом под названием "FlexMDNS", и оригинального кода Ллойда под названием "Avahi". Хотя большая часть современного кода происходит из первого проекта, название второго было использовано для объединенного проекта. Разработка "FlexMDNS" началась в конце 2004 года, а работа над оригинальным "Avahi" – в начале 2004 года. Изначально Avahi разрабатывался под эгидой freedesktop.org, но теперь стал самостоятельным проектом. Тем не менее, Avahi использует межпроцессное взаимодействие D-Bus, разработанное freedesktop.org. Название Avahi – это местное и научное латинское название рода шерстистых лемуров, семейства приматов, эндемиков Мадагаскара. Трент Ллойд нашел это название и ему понравилось, и оно прижилось. Логотип это отражает.