Some of my BSD work
I first learned of the open source BSD projects in grad school in the spring
of 1994. Having beta tested Mt Xinu's MORE/bsd operating system as an
undergrad on UDel's VAX systems I was naturally interested in learning how
BSD had evolved. I obtained and installed NetBSD on a Sparc1. I immediately
realized the potential of a free system like NetBSD as a vehicle for our
group's research efforts. So I got involved with BSD both for my benefit
and for the benefit of my research group.
Here are some of my more noteworthy contributions to BSD
(with newer projects listed first):
- assisted Chuck Silivers with his work on unifying the BSD UVM
virtual memory cache and file buffer caches (UBC).
- created the UVM virtual memory system to replace the old BSD VM
system. UVM is now a part of both NetBSD and OpenBSD.
- wrote code to unify the BSD kernel's management of contiguous and
non-contiguous physical memory. the new code is called
MACHINE_NEW_NONCONTIG (MNN for short).
- rewrote BSD "ypwhich" to allow you to specify a host to query.
- ported Chris Torek's vfprintf into BSD's subr_prf.c to provide
more formatting options for kernel printfs
(printf/sprintf/db_printf).
- ported the Efficient Networks ATM device driver to the Adaptec
version of the card (with Anne Hutton of ISI).
- wrote a device driver for the Efficient Networks ATM card.
- wrote an ATM framework to enable the use of ATM under BSD.
- fixed up Dale Rahn's MVME bootblocks for BSD so that they had a uniform
interface. I also converted the disk bootblocks from a one-level
bootstrap (which often overflowed and trashed the filesystem
superblock) into a two-level bootstrap like the NetBSD/sparc port has.
- fixed up Mats O Jansson's "ypserv" program so that it would work under
BSD.
- fixed up netbsd/sparc's bootblocks so that they would work on
a sun4 system (with
Gordon Ross
and Paul Kranenburg).
- fixed up netbsd/sparc's bootpath code so that a "generic" kernel
would be able to find its root filesystem properly.
- fixed up netbsd/sparc's message buffer to survive between boots
(doesn't seem to work on a sparc 2 though).
- wrote device driver for the Xylogics 450/451 SMD disk controller.
- wrote device driver for the Xylogics 753/7053 VME/SMD disk controller.
- ported the "if_ie" ethernet driver from netbsd/i386 to the VME "ie1" card
and the on-board "ie0" of the 4/200's and 4/100's.
- enabled VME DVMA devices to work properly on sun4 sparc systems (with
Theo de Raadt).
- ported netbsd to the Motorola MVME-147 system (68030 CPU donated to me
by a friend of Theo's).
- ported netbsd/sparc to the SUN-4/100 processor (with John Stone from
University of Missouri, Rolla).
- ported netbsd/sparc to the SUN-4/200 processor (CPU donated to me
by a friend of Theo's).
- ported netbsd/sparc to the SUN-4/300 processor. This work was
integrated into the sun4c part of the NetBSD/sparc source tree by
Theo de Raadt.
- ported netbsd/da30 to the heurikon 68030 single board VME processor.
This was part of a summer job I had at Supercomputer Research Center (SRC)
in Bowie, MD.
return to Chuck's home page