Released in November 1993. 1.1.5.1 was released in July 1994.
2.0-RELEASE was announced on 22 November 1994. The final release of FreeBSD 2, 2.2.8-RELEASE, was announced on 29 November 1998. FreeBSD 2.0 was the first FreeBSD to be claimed legally free of AT&T Unix code with approval of Novell. It was the first version to be widely used at the beginnings of the spread of Internet servers.
2.2.9-RELEASE was released April 1, 2006 as a fully functional April Fools' Day prank (after SEVENTY-SEVEN months of tireless work by the FreeBSD developers, users, their children, and their pets).
FreeBSD 3.0-RELEASE was announced on 16 October 1998. The final release, 3.5-RELEASE, was announced on 24 June 2000. FreeBSD 3.0 was the first branch able to support symmetric multiprocessing (SMP) systems, using a Giant lock and marked the transition from a.out to ELF executables. USB support was first introduced with FreeBSD 3.1, and the first Gigabit network cards were supported in 3.2-RELEASE.
4.0-RELEASE appeared in March 2000 and the last 4-STABLE branch release was 4.11 in January 2005 supported until 31 January 2007. FreeBSD 4 was lauded for its stability and was a favorite operating system for ISPs and web hosting providers during the first dot-com bubble, and is widely regarded as one of the most stable and high performance operating systems of the whole Unix lineage. Among the new features of FreeBSD 4, kqueue(2)
was introduced (which is now part of other major BSD systems).
After almost three years of development, the first 5.0-RELEASE in January 2003 was widely anticipated, featuring support for advanced multiprocessor and application threading, and for the UltraSPARC and IA-64 platforms. The first 5-STABLE release was 5.3 (5.0 through 5.2.1 were cut from -CURRENT). The last release from the 5-STABLE branch was 5.5 in May 2006.
The largest architectural development in FreeBSD 5 was a major change in the low-level kernel locking mechanisms to enable better symmetric multi-processor (SMP) support. This released much of the kernel from the MP lock, which is sometimes called the Giant lock. More than one process could now execute in kernel mode at the same time. Other major changes included an M:N native threading implementation called Kernel Scheduled Entities. In principle this is similar to Scheduler Activations. Starting with FreeBSD 5.3, KSE was the default threading implementation until it was replaced with a 1:1 implementation in FreeBSD 7.0.