USENIX Technical Program - Abstract - USENIX 99
Porting Kernel Code to Four BSDs and Linux
Craig Metz, ITT Systems and Sciences Corporation
The U.S. Naval Research Laboratory develops and
maintains a freely available IPv6 and IP Security distribution.
All of the software builds and runs on
BSD/OS, FreeBSD, NetBSD, and OpenBSD, and a
growing portion of the software builds and runs on
Linux. Each of the four BSDs has evolved signicantly
from their original 4.4BSD-Lite ancestor, and increasingly
more of that evolution is along divergent paths.
Linux shares no signicant ancestry with the BSDs,
but is still a POSIX system, which means that many of
the same high-level facilities are available even though
their implementation might be completely different.
This paper discusses many of the differences and
many of the similarities we encountered in the internals
of these systems. It also discusses the techniques
and glue software that we developed for isolating and
abstracting the differences so that we could build a significant
base of system code that is portable between
all five systems.