licensing alive 1994

vi (via Elvis) nvi

nvi was created by Keith Bostic as a freely redistributable replacement for the original vi editor, which was encumbered by AT&T licensing. Using Elvis as a starting point, nvi became the default vi implementation on all major BSD systems.

What it is

nvi was derived from Elvis 1.8 but extensively rewritten for 4.4BSD compatibility. It implemented the POSIX 1003.2 vi specification and maintained bug-for-bug compatibility with the original vi. The code was written in C and used the curses library for terminal handling.

The story

The original vi editor was created by Bill Joy at UC Berkeley as part of BSD Unix, but it contained AT&T-licensed code that prevented free redistribution. As part of the broader effort to create a freely redistributable BSD (which also led to the replacement of other AT&T-encumbered utilities), Keith Bostic undertook the creation of nvi -- a 'bug for bug compatible' replacement for Joy's vi.

Bostic used Steve Kirkendall's Elvis (version 1.8) as a starting point, creating nvi with the explicit goal of being a clean-room replacement that could be included in 4.4BSD-Lite without any AT&T licensing concerns. The first public release came in Spring 1994 as part of the 4.4BSD distribution.

When FreeBSD and NetBSD resynchronized with the 4.4BSD-Lite2 codebase, they adopted nvi as their default vi implementation, a role it continues to hold today. Unlike Vim, which added extensive new features, nvi deliberately remained close to the original vi specification, making it the most faithful freely-available vi clone.

Timeline

Bostic begins work on replacing AT&T-encumbered BSD utilities

nvi first released as part of 4.4BSD

FreeBSD and NetBSD adopt nvi as default vi

Bostic releases nvi 1.79, his last version

Key people

Keith Bostic
Creator and maintainer
Elan Amir
Contributed curses integration
Steve Kirkendall
Created Elvis, which nvi was based on
Sven Verdoolaege
Later maintainer

Impact

nvi was a critical component of the effort to create a fully free BSD Unix, removing the last AT&T-licensed utility from the distribution. It remains the default vi on FreeBSD, NetBSD, and OpenBSD to this day, demonstrating that licensing-driven forks can achieve long-term stability even without adding flashy features.

Lesson: Licensing-driven forks serve a critical infrastructure role even when they lack the glamour of feature-driven forks. nvi's deliberate conservatism -- maintaining compatibility rather than innovating -- was the right choice for its role as a system default editor in BSD.