\s+4I. Accomplishments of the Berkeley UNIX Project\s-4
The last major release of Berkeley UNIX, in June, 1986, was 4.3BSD [CSRG86]. The release of 4.3BSD in April of 1986 addressed many of the performance problems and unfinished interfaces present in 4.2BSD [Leffler84] [McKusick85]. Projects completed since that time have been made available in a July, 1988 test release known as the 4.3BSD Tahoe release, named for the CCI Power 6/32 processor for which support was added.
\s+2I.1 4.3BSD\s-2
This section summarizes the work done at Berkeley between the September 1983 4.2BSD distribution of UNIX for the VAX\(dg .FS .vs 11 \(dg \s-2DEC\s0, \s-2VAX\s0, \s-2PDP\s0, \s-2MASSBUS\s0, \s-2UNIBUS\s0, \s-2Q-bus\s0 and \s-2ULTRIX\s0 are trademarks of Digital Equipment Corporation. .FE and the March 1986 4.3BSD release. Most of the changes between 4.2BSD and 4.3BSD fall into one of several categories. These are:
The major changes to the kernel are:
The performance of the system has been improved to be at least as good as that of 4.1BSD, and in many instances is better. The system is much better adapted to the larger physical memories of current computers. In addition to improving the performance of kernel operations, heavily used utilities were optimized and many user level programs were improved by rewriting C library routines for efficiency.
\s+2I.2 Work since the release of 4.3BSD\s-2
There have been several changes in the system that were included in the recent 4.3BSD Tahoe release.
The largest change has been the incorporation of support for the first non-VAX processor, the CCI Power 6/32 and 6/32SX. (This addition also supports the Harris HCX-7 and HCX-9, as well as the Sperry 7000/40 and ICL machines.) The Power 6 version of 4.3BSD is largely based on the compilers and device drivers done for CCI's 4.2BSD UNIX, and is otherwise similar to the VAX release of 4.3BSD. The entire source tree, including all kernel and user-level sources, has been merged using a structure that will easily accommodate the addition of other processor families. A MIPS M1000 has been donated to us, making the MIPS architecture a likely candidate for inclusion into a future BSD release.
Support has been added for the DEC VAX 8600/8650, VAX 8200/8250, MicroVAXII and MicroVAX 3200/3500/3600.
During the work on the CCI machine, it became obvious that disk geometry and filesystem layout information must be stored on each disk in a pack label. Disk labels were implemented for the CCI disks and for the most common types of disk controllers on the VAX. A utility was written to create and maintain the disk information, and other user-level programs that use such information now obtain it from the disk label. The use of this facility has allowed improvements in the file system's knowledge of irregular disk geometries such as track-to-track skew.
The Internet and the Berkeley collection of local-area networks have both grown at high rates in the last year. The Bay Area Regional Research Network (BARRNet) connecting several UC campuses, Stanford and NASA-Ames has recently become operational, increasing the complexity of the network connectivity. Both Internet and local routing algorithms are showing the strain of continued growth. We have made several changes in the local routing algorithm to keep accommodating the current topology, and are participating in the development of new routing algorithms and protocols.
A new general purpose kernel memory allocator has been added to replace many special purpose memory allocators. The 4.3BSD UNIX kernel used 10 different memory allocation mechanisms, each designed for the particular needs of the utilizing subsystem. These mechanisms have been replaced by a general purpose dynamic memory allocator that can be used by all of the kernel subsystems. The design of this allocator takes advantage of known memory usage patterns in the UNIX kernel and a hybrid strategy that is time-efficient for small allocations and space-efficient for large allocations. This allocator replaces the multiple memory allocation interfaces with a single easy-to-program interface, results in more efficient use of global memory by eliminating partitioned and specialized memory pools, and is quick enough (approximately 15 VAX instructions) that no performance loss is observed relative to the current implementations. [McKusick88].
The 4.2 fast file system [McKusick84] contained several statically sized structures, imposing limits on the number of cylinders per cylinder group, inodes per cylinder group, and number of distinguished rotational positions. The new ``fat'' filesystem allows these limits to be set at filesystem creation time. Old kernels will treat the new filesystems as read-only, and new kernels will accommodate both formats. The filesystem check facility, fsck, has also been modified to check either type.
\s+2I.3 Personnel\s-2
The investigators and researchers in this proposal have been involved in the Berkeley UNIX project for many years. Professor Susan L. Graham has experience as Project Director for the \s-2DARPA\s+2 tasking contract for Productivity Engineering in the \s-2UNIX\s+2 Environment, which has provided research and/or infrastructure support to most members of the Computer Science Division at various times. Professor Domenico Ferrari is a former departmental Associate Chair for Computer Science. Dr. Marshall Kirk McKusick has been the Research Computer Scientist associated with the project since 1984. Michael Karels has been the Principal Programmer associated with the project since 1983. Diane Leite has been on the staff of the Electronics Research Laboratory for seven years and is familiar with the various campus and government procedures. .bp