Netatalk

Netatalk (pronounced "ned-uh-talk") is a free, open-source implementation of the Apple Filing Protocol (AFP). It allows Unix-like operating systems to serve as file servers for Macintosh computers running macOS or Classic Mac OS.

Netatalk was originally developed by the Research Systems Unix Group at the University of Michigan for BSD-derived Unix systems and released in 1990. Apple had introduced AppleTalk soon after the release of the original Macintosh in 1985, followed by the file sharing application AppleShare (which was built on top of AFP) in 1987. This was an early example of zero-configuration networking, gaining significant adoption in educational and small to mid size office environments in the late 80s. Netatalk emerged as a part of the software ecosystem around AppleTalk.

In 1986 Columbia University published the Columbia AppleTalk Package (CAP), which was an open source implementation of AppleTalk originally written for BSD 4.2, allowing Unix servers to be part of AppleTalk networks. CAP also had its own implementation of AFP/AppleShare, but Netatalk appearing in 1990 claimed better performance due to software design advantages. CAP and Netatalk were also interoperable, the latter being able to be run on an AppleTalk backend provided by CAP.

As part of transitioning the software into an open source community project, the codebase was moved to SourceForge for revision control in July 2000, then re-licensed under the terms of the GNU General Public License with version 1.5pre7 in August 2001.

Since Classic Mac OS used a forked file system, unlike the host operating systems where Netatalk would be running, Netatalk originally implemented the AppleDouble format for storing the resource fork separately from the data fork when a Mac OS file was transferred to the Unix-like computer's file system. This was required in order not to ruin most files by discarding the resource fork when copied to the Netatalk served AppleShare volume. With the release of Netatalk 3.0, the backend was re-implemented to use the Extended Attributes format that Apple had introduced with Mac OS X for backwards compatibility with Classic Mac OS resource forks.

Development History
The original developer of Netatalk was Wesley Craig at the University of Michigan. In 1997 Adrian Sun created a popular fork, coding the initial implementation of the then-new AppleShare IP (AFP over TCP/IP) network layer. By the time the project started transitioning into an open source model in 2000, the "ASUN" fork had been merged back into Netatalk proper.

In October 2004 Netatalk 2.0 was released, which brought major improvements, including: support for Apple Filing Protocol version 3.1 (providing long UTF-8 filenames, file sizes > 2 gigabytes, full Mac OS X compatibility), CUPS integration, Kerberos V support allowing true "single sign-on", reliable and persistent storage of file and directory IDs and countless bug fixes compared to previous versions.

Since version 2.0.5, Netatalk supports the use of Time Machine over a network in a similar fashion to Apple's own Time Capsule. Starting with version 2.2, Netatalk supports AFP protocol level 3.3, which is inter-operable with all subsequent OS versions through at least macOS Ventura (13.1).

Up until version 2, Netatalk implemented the AppleTalk (DDP) protocol suite, allowing Unix-like operating systems to serve also as print (PAP via a CUPS backend) and time (Timelord) servers for Macintosh computers. In addition, networked Apple IIe and Apple IIGS computers can be netbooted from a Netatalk shared volume. In fact, this version contains an entire suite of tools for inspecting and manipulating AppleTalk networks, as well as reading and writing files in Macintosh formats on a Unix-like operating system. For this reason, version 2 is still being actively developed and new versions released.

Version 3.0 of Netatalk was released in July 2012 and added ini style configuration, and Mac OS X compatible Extended Attributes as default, while removing AppleTalk networking support. The latest version supports the AFP level 3.4, introduced in OS X Mountain Lion.

Netatalk 3.1, released in October 2013, added Spotlight support in addition to improved SMB interoperability.

Currently Netatalk runs on the Linux, FreeBSD, OpenBSD, NetBSD, Solaris, illumos, and macOS operating systems.

Commercial Use
Netatalk is (or was previously) integrated into a range of NAS solutions, including Buffalo NAS systems, Exanet ExaStore, Iomega's Home Media Network Hard Drive, IXsystems TrueNAS, LaCie NAS OS, Lime Technology unRAID, Napp-it, Netgear ReadyNAS, QNAP NAS, Synology DiskStation, Thecus NAS, and more.

In 2010, a company called NetAFP run by a group of Netatalk maintainers started providing commercial support for enterprise deployments of Netatalk. The company merged with German Samba vendor SerNet in December 2013, signaling the end of commercial support for Netatalk in favor of SMB, which Apple had made the primary file sharing protocol with the release of Mac OS X Mavericks that same year. The NetAFP website was shut down in early 2022.

Logo
While a project at the University of Michigan, Netatalk's logo was the head of the BSD Daemon on a daisy chained serving tray, mimicking the icon design language that Apple used for AppleTalk and AppleShare in Classic Mac OS.

Coinciding with the release of Netatalk 2.0, the logo was stylized into the Daemon head silhouette with overlaid networking cables logo that the project is presently using.