Avahi (software)
Encyclopedia
Avahi is a free
Free software
Free software, software libre or libre software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with restrictions that only ensure that further recipients can also do...

 zeroconf implementation, including a system for multicast DNS
Multicast DNS
Multicast DNS is a way of using familiar DNS programming interfaces, packet formats and operating , in a small network where no conventional DNS server has been installed....

/DNS-SD service discovery
Service discovery
Service discovery protocols are network protocols which allow automatic detection of devices and services offered by these devices on a computer network....

. It is licensed under the GNU Lesser General Public License
GNU Lesser General Public License
The GNU Lesser General Public License or LGPL is a free software license published by the Free Software Foundation . It was designed as a compromise between the strong-copyleft GNU General Public License or GPL and permissive licenses such as the BSD licenses and the MIT License...

 (LGPL).

Avahi allows programs to publish and discover services and hosts running on a local network with no specific configuration. For example, a user can plug their computer into a network and Avahi automatically finds printers to print to, files to look at and people to talk to, as well as advertising the network service
Network service
Network services are the foundation of a networked computing environment. Generally network services are installed on one or more servers to provide shared resources to client computers.- Network services in LAN :...

s running on the machine.

Technical details

Avahi implements the Apple Zeroconf
Zeroconf
Zero configuration networking , is a set of techniques that automatically creates a usable Internet Protocol network without manual operator intervention or special configuration servers....

 specification, mDNS
Multicast DNS
Multicast DNS is a way of using familiar DNS programming interfaces, packet formats and operating , in a small network where no conventional DNS server has been installed....

, DNS-SD and RFC 3927/IPv4LL
Link-local address
A link-local address is an Internet Protocol address that is intended only for communications within the segment of a local network or a point-to-point connection that a host is connected to. Routers do not forward packets with link-local addresses....

. Other implementations include Apple's Bonjour
Bonjour (software)
In computing, Bonjour is Apple Inc.'s trade name for its implementation of Zeroconf, a group of technologies that includes service discovery, address assignment, and name resolution...

 framework (the mDNSResponder component of which is licensed under the Apache License
Apache License
The Apache License is a copyfree free software license authored by the Apache Software Foundation . The Apache License requires preservation of the copyright notice and disclaimer....

).

Avahi provides a set of language bindings (Python
Python (programming language)
Python is a general-purpose, high-level programming language whose design philosophy emphasizes code readability. Python claims to "[combine] remarkable power with very clear syntax", and its standard library is large and comprehensive...

, Mono
Mono (software)
Mono, pronounced , is a free and open source project led by Xamarin to create an Ecma standard compliant .NET-compatible set of tools including, among others, a C# compiler and a Common Language Runtime....

, etc.) and ships with most Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...

 and *BSD distributions. Because of its modularized architecture, major desktop components like GNOME
GNOME
GNOME is a desktop environment and graphical user interface that runs on top of a computer operating system. It is composed entirely of free and open source software...

's Virtual File System
GVFS
GVFS is the virtual filesystem for the GNOME desktop, which allows users easy access to remote data via SFTP, FTP, WebDAV, SMB, and local data via HAL integration, OBEX and others....

 and the KDE
KDE
KDE is an international free software community producing an integrated set of cross-platform applications designed to run on Linux, FreeBSD, Microsoft Windows, Solaris and Mac OS X systems...

 input/output architecture
KIO
KIO is part of the KDE architecture. It provides access to files, web sites and other resources through a single consistent API. Applications, such as Konqueror which are written using this framework can operate on files stored on remote servers in exactly the same way as they operate on those...

 already integrate Avahi.

Avahi vs. Bonjour

The Avahi project was originally started due to Apple's Zeroconf implementation, Bonjour
Bonjour (software)
In computing, Bonjour is Apple Inc.'s trade name for its implementation of Zeroconf, a group of technologies that includes service discovery, address assignment, and name resolution...

, being licensed with the non GPL compatible Apple Public Source License
Apple Public Source License
The Apple Public Source License is the open source and free software license under which Apple's Darwin operating system was released. A free software and open source license was voluntarily adopted to further involve the community from which much of Darwin originated.The first version of the Apple...

. Since then, parts of Bonjour have been relicensed under the less controversial Apache License
Apache License
The Apache License is a copyfree free software license authored by the Apache Software Foundation . The Apache License requires preservation of the copyright notice and disclaimer....

. However, Avahi had already become the de-facto standard implementation of mDNS/DNS-SD on free operating system
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...

s such as Linux.

Avahi's performance is recognized as being similar to that of Bonjour, sometimes exceeding it, however Avahi was found to lose services when managing large numbers of requests simultaneously.

Stuart Cheshire
Stuart Cheshire
Stuart Cheshire is the author of Bolo, a networked tank game, originally written for the BBC Micro and later ported to the Apple Macintosh....

 (creator of Zeroconf) has stated in 2005 that Apple works with the Avahi team and is impressed with their progress; so much so that Avahi might "overtake Apple's implementation".

History

Avahi has been developed by Lennart Poettering and Trent Lloyd. It is the result of a merger of Poettering's original mDNS/DNS-SD implementation called "FlexMDNS", and Lloyd's original code called "Avahi" that happened in 2005. While most of today's code originates from the former project, the name of the latter was used for the joint project. Development on "FlexMDNS" started in late 2004, and work on the original "Avahi" began in early 2004.

Avahi was originally developed under the freedesktop.org
Freedesktop.org
freedesktop.org is a project to work on interoperability and shared base technology for free software desktop environments for the X Window System on Linux and other Unix-like operating systems. It was founded by Havoc Pennington from Red Hat in March 2000.The organisation focuses on the user....

 umbrella, but has now become a separate project. Avahi, however, makes use of freedesktop.org's D-Bus
D-Bus
In computing, D-Bus is a simple inter-process communication open-source system for software applications to communicate with one another. Heavily influenced by KDE2–3's DCOP system, D-Bus has replaced DCOP in the KDE 4 release. An implementation of D-Bus supports most POSIX operating...

 IPC layer.

The name Avahi is the Malagasy native name and scientific Latin name of a genus of woolly lemur
Woolly lemur
The woolly lemurs, also known as avahis or woolly indris, are nine species of strepsirrhine primates. Like all other lemurs, they live only on the island of Madagascar....

, a family of primate
Primate
A primate is a mammal of the order Primates , which contains prosimians and simians. Primates arose from ancestors that lived in the trees of tropical forests; many primate characteristics represent adaptations to life in this challenging three-dimensional environment...

s indigenous to Madagascar
Madagascar
The Republic of Madagascar is an island country located in the Indian Ocean off the southeastern coast of Africa...

. Trent Lloyd found the name, liked it, and it stuck. The logo reflects this.

See also

  • freedesktop.org
    Freedesktop.org
    freedesktop.org is a project to work on interoperability and shared base technology for free software desktop environments for the X Window System on Linux and other Unix-like operating systems. It was founded by Havoc Pennington from Red Hat in March 2000.The organisation focuses on the user....

     - the site that formerly hosted Avahi


Standards
  • Zeroconf - the standard upon which Avahi is based.


Other Implementations
  • Bonjour (software)
    Bonjour (software)
    In computing, Bonjour is Apple Inc.'s trade name for its implementation of Zeroconf, a group of technologies that includes service discovery, address assignment, and name resolution...

     - a mDNS implementation by Apple Inc., used in Mac OS X
    Mac OS X
    Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...

    , iTunes
    ITunes
    iTunes is a media player computer program, used for playing, downloading, and organizing digital music and video files on desktop computers. It can also manage contents on iPod, iPhone, iPod Touch and iPad....

    , and other software.


Protocols providing similar functionality
  • Service Discovery
    Service discovery
    Service discovery protocols are network protocols which allow automatic detection of devices and services offered by these devices on a computer network....

     - list of protocols that provide similar functionality


Other Links
  • Lightweight Directory Access Protocol
    Lightweight Directory Access Protocol
    The Lightweight Directory Access Protocol is an application protocol for accessing and maintaining distributed directory information services over an Internet Protocol network...

  • Network Information Service
    Network Information Service
    The Network Information Service, or NIS is a client–server directory service protocol for distributing system configuration data such as user and host names between computers on a computer network...

  • OSGi
    OSGi
    The Open Services Gateway initiative framework is a module system and service platform for the Java programming language that implements a complete and dynamic component model, something that does not exist in standalone Java/VM environments...

     Alliance

External links

  • Avahi project
  • Avahi talk and slides by Poettering/Lloyd at linux.conf.au
    Linux.conf.au
    linux.conf.au is Australasia's regional Linux and Open Source conference. It is a roaming conference, held in a different city every year, coordinated by Linux Australia and organised by local volunteers....

    2007.
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK