*BSD News Article 28503


Return to BSD News archive

Xref: sserve comp.os.linux.misc:11038 comp.unix.bsd:13620
Newsgroups: comp.os.linux.misc,comp.unix.bsd
Path: sserve!newshost.anu.edu.au!munnari.oz.au!bunyip.cc.uq.oz.au!harbinger.cc.monash.edu.au!yeshua.marcam.com!MathWorks.Com!europa.eng.gtefsd.com!darwin.sura.net!nih-csl!yog-sothoth.dcrt.nih.gov!jwa
From: jwa@yog-sothoth.dcrt.nih.gov (James W. Adams)
Subject: 4.4BSD-Lite (Was: BSD vs. Linux)
Message-ID: <1994Mar15.231819.6874@alw.nih.gov>
Sender: postman@alw.nih.gov (AMDS Postmaster)
Organization: National Institutes of Health, Bethesda, MD
References: <2lqdmn$153@pdq.coe.montana.edu> <DHOLLAND.94Mar13163925@husc7.harvard.edu> <2m2kem$f29@mhaau.inhouse.compuserve.com>
Date: Tue, 15 Mar 1994 23:18:19 GMT
Lines: 370

In article <2m2kem$f29@mhaau.inhouse.compuserve.com> dneedham@csi.compuserve.com (Douglas Wade Needham) writes:
>[...]
>Now all I am really waiting (re: drooling) for is for it to be moved over
>to BSD4.4 now that the suit is settled. 8)  Just MHO.

All this hoopla over 4.4BSD-Lite has me a bit confused.  According to
the release announcement letter for 4.4BSD-Alpha, 4.4 Lite was to be
essentially Net-2 with bug fixes, some enhancements and support for
additional architectures, with no new kernel files and only a few
additional programs.  Most of the real improvements in 4.4BSD were in
the kernel interfaces and filesystems, code which the letter distinctly
implied would *not* be in 4.4 Lite.

Since the so-called "settlement" doesn't permit distribution of
4.4BSD-Encumbered without the customary USL source license, it seems to
me that most of this work will end up benefiting only those whose
pockets are deep enough to have a USL UNIX source license.

Has this situation changed, or am I correct in assuming that the change
in BSDI from Net-2 to 4.4-Lite will result in minimal functional
benefit?

For the sake of discussion, I have included the relevant portions of the
4.4 Alpha release announcement below:


-----------------------------------------------------------------------

Licensing info:  Pauline Schwartz
                 Distribution Coordinator
                 Computer Systems Research Group
                 Computer Science Division, EECS
                 University of California
                 Berkeley, California 94720
                 (510) 642-7780
                 pauline@cs.berkeley.edu
                 
-----------------------------------------------------------------------



UNIVERSITY OF CALIFORNIA, BERKELEY

COMPUTER SYSTEMS RESEARCH GROUP
COMPUTER SCIENCE DIVISION, EECS
BERKELEY, CALIFORNIA 94720
(510) 642-7780


Dear Colleague:

July 7, 1992

We are happy to send you information about our June 1992 release of
4.4BSD-alpha.  This release represents our expectations for the final
interfaces that will be present in 4.4BSD.  Our goal in making this
release available is to get feedback on any problems in the design or
implementation of the new facilities, and to allow adventurous sites to
gain experience with the new interfaces in 4.4BSD.

This distribution is NOT intended to be used on production systems; nor
is it intended for sites without enough local expertise to find and fix
any problems that are encountered. It is intended to be used to provide
an advance look at some of the facilities and interfaces that we will be
distributing in 4.4BSD. We are interested in getting feedback on the
problems that you find and also any compatibility problems that you
encounter in converting your applications to run on this release. While
we hope that the interfaces in this release will not change before the
final release of 4.4BSD, we will make changes that we feel are necessary
to fix problems that arise during the alpha release period (at least in
part based on feedback from this test group). Where possible, we will
minimize changes that will break applications ported to this release.
The code in this distribution may be redistributed and used in released
products. However, you are strongly encouraged to upgrade any code that
you use from this distribution to the similarly-licensed distribution of
the 4.4BSD code within one year of its release.

Only limited support can be provided by our group.  Specifically, we
cannot provide help with installation of this software on other
systems, although we are, of course, interested in hearing of problems
that you encounter.

We are planning on releasing two versions of the software,
4.4BSD-Encumbered and 4.4BSD-Lite. The 4.4BSD-Encumbered distribution is
available only to sites with UNIX/32V, System III, or System V source
licenses with USL/AT&T. The 4.4BSD-Encumbered distribution is a complete
distribution in the style of 4.3BSD and contains the complete source for
the Berkeley Distribution.

The 4.4BSD-Lite distribution will be a distribution that is copyrighted
by the University of California and others, but may be freely
redistributed. It will be available to anyone and requires no previous
license either from USL/AT&T or The Regents of the University of
California. Its license agreement and content will be similar to that of
the two BSD Networking Releases. The 4.4BSD-Lite distribution will
contain only a few additional programs and no additional kernel files
from the Second Networking release done in June 1991. However, it will
contain support for additional architectures and will have many bug fixes
and performance enhancements. The distribution will include both software
developed at Berkeley and also much of software contributed by
authors outside Berkeley.

Only the 4.4BSD-Encumbered distribution is available at this time. The
4.4BSD-Lite distribution is not available at this time; we will send out
a mailing to notify you when it is available.

The enclosed information is designed to serve two purposes. The first
purpose is to acquaint you with the details of our distribution so you
can decide whether you would like to receive it.  The second purpose is
to tell you how to obtain our distribution.

What is 4.4BSD?

This software distribution is provided on one 6250bpi 1/2" 9-track tape
or one 8mm Exabyte cassette only. The 4.4BSD-Encumbered distribution
contains complete source as well as binaries for the HP9000/300 series of
workstations. The 4.4BSD-Lite distribution will contain only freely
redistributable sources. As the sources do not comprise a complete
system, no binaries will be included.

The architectures that are supported include:

HP 9000/300 68000-based workstations

Intel 386/486-based machines (ISA/AT or EISA bus only)

Sony News MIPS-based workstations

Omron Luna 68000-based workstations

DECstation 3100 and 5000 MIPS-based workstations

Sparcstation I & II SPARC-based workstations

The distribution does not include the machine support for the Tahoe and
VAX architectures found in previous BSD distributions. Our primary
development is on the HP9000/300 series machines. The other
architectures are being developed and supported by people outside the
university. Consequently, we are not able to directly test or maintain
these other architectures, so cannot comment on their robustness,
reliability, or completeness.

The major new facilities available in the 4.4BSD release are a new
virtual memory system, a log-structured filesystem, enhancement of the
local filesystems to support files and filesystems that are up to 2^63
bytes in size, the addition of ISO/OSI networking support, a freely
redistributable implementation of NFS, and the conversion to and
addition of the IEEE Std1003.1 ("POSIX") facilities and many of the
IEEE Std1003.2 facilities. In addition, many new utilities and additions
to the C library are present as well.  The kernel sources have been
reorganized to collect all machine-dependent files for each architecture
under one directory, and most of the machine-independent code is now
free of code conditional on specific machines. The user structure and
process structure have been reorganized to eliminate the statically-
mapped user structure and to make most of the process resources
sharable by multiple processes. The system and include files have been
converted to be compatible with ANSI C, including function prototypes
for most of the exported functions. There are numerous other changes
throughout the system.

The new virtual memory implementation is derived from the MACH operating
system developed at Carnegie-Mellon, and was ported to the BSD kernel
at the University of Utah. The MACH virtual memory system call interface
has been replaced with the "mmap"-based interface described in the
"Berkeley Software Architecture Manual" (see UNIX Programmer's Manual,
Supplementary Documents, PS1:6). The interface is similar to the
interfaces shipped by several commercial vendors such as Sun, Convex
Computer Corp. and USL/AT&T. The integration of the new virtual
memory is functionally complete, but still has serious performance
problems under heavy memory load. The internal kernel interfaces have
not yet been completed and the memory pool and buffer cache have not yet
been merged. Some of these changes are expected before the release of
4.4BSD.

The ISO/OSI Networking consists of a kernel implementation of transport
class 4 (TP-4), connectionless networking protocol (CLNP), and
802.3-based link-level support (hardware-compatible with Ethernet). We
also include support for ISO Connection-Oriented Network Service, X.25,
TP-0. The session and presentation layers are provided outside the kernel
by the ISO development environment (ISODE). Included in this development
environment are file transfer and management (FTAM), virtual terminals
(VT), a directory services implementation (X.500), and miscellaneous
other utilities.

A new virtual filesystem interface has been added to the kernel to
support multiple filesystems. In comparison with other interfaces, the
Berkeley interface has been structured for more efficient support of
filesystems that maintain state (such as the local filesystem). The
interface has been extended with support for stackable filesystems done
at UCLA. These extensions allow for filesystems to be layered on top of
each other and allow new vnode operations to be added without requiring
changes to existing filesystem implementations.

In addition to the local "fast filesystem", we have added an
implementation of the network filesystem (NFS) that fully
interoperates with the NFS shipped by Sun and its licensees. Because our
NFS implementation was implemented using only the publicly available
NFS specification, it does not require a license from Sun to use in
source or binary form. By default it runs over UDP to be compatible with
Sun's implementation. However, it can be configured on a per-mount basis
to run over TCP. Using TCP allows it to be used quickly and efficiently
through gateways and over long-haul networks. Using an extended
protocol, it supports Leases to allow a limited callback mechanism that
greatly reduces the network traffic necessary to maintain cache
consistency between the server and its clients.

A new log-structured filesystem has been added that provides near
disk-speed output and fast crash recovery. It is still experimental in
the alpha release, though we hope to have enough experience with it to
recommend it for production use by the time of the final 4.4BSD release.
We have also added a memory-based filesystem that runs in pageable
memory, allowable large temporary filesystems without requiring dedicated
physical memory.

The quota system has been rewritten to support both user and group
quotas (simultaneously if desired). Quota expiration is based on time
rather than the previous metric of number of logins over quota. This
change makes quotas more useful on fileservers onto which users seldom
login.

The 4.4BSD distribution contains most of the interfaces specified in the
IEEE Std1003.1 system interface standard. The biggest area of change is a
new terminal driver. The terminal driver is similar to the System V
terminal driver with the addition of the necessary extensions to get the
functionality previously available in the 4.3BSD terminal driver. 4.4BSD
also adds the IEEE Std1003.1 job control interface, which is similar to
the 4.3BSD job control interface, but adds a security model that was
missing in the 4.3BSD job control implementation. Other additions
include IEEE Std1003.1 signals, FIFOs, byte-range file locking, and saved
user and group identifiers.

There are several new tools and utilities included in this release. A
new version of make allows much-simplified makefiles for the system
software and allows compilation for multiple architectures from the same
source tree (which may be mounted read-only). Notable additions to the
libraries include functions to traverse a filesystem hierarchy,
database interfaces to btree and hashing functions, a new, fast
implementation of stdio and a radix sort function. The additions to the
utility suite include greatly enhanced versions of programs that display
system status information, implementations of various traditional
tools described in the IEEE Std1003.2 standard, and many others.

We have been tracking the IEEE Std1003.2 shell and utility work and have
included prototypes of many of the proposed utilities. Because most of
the traditional utilities have been replaced with implementations
conformant to the POSIX standards, you should realize that the utility
software may not be as stable, reliable or well documented as in
traditional Berkeley releases. In particular, almost the entire manual
suite has been rewritten to be freely redistributable and, in many
instances, it does not correctly reflect the current state of the
software. It is also worth noting that, in rewriting this software, we
have generally been rewarded with significant performance
improvements. Most of the libraries and header files have been converted
to be compliant with ANSI C. The default compiler (gcc) is a superset of
ANSI C, but supports traditional C as a command-line option. The system
libraries and utilities all compile with either ANSI or traditional C.

Work has also progressed in several other areas. Several important
enhancements have been added to the TCP/IP protocols including TCP
header prediction and serial line IP (SLIP) with header compression. The
routing implementation has been completely rewritten to use a
hierarchical routing tree with a mask per route to support the arbitrary
levels of routing found in the ISO protocols. The routing table also
stores and caches route characteristics to speed the adaptation of the
throughput and congestion avoidance algorithms.

The Kerberos (version 4) authentication software has been integrated
into much of the system (including NFS) to provide the first real
network authentication on BSD.

This release includes several important structural kernel changes. The
kernel uses a new internal system call convention; the use of global
("u-dot") variables for parameters and error returns has been
eliminated, and interrupted system calls no longer abort using non-local
goto's (longjmp's). A new sleep interface separates signal handling from
scheduling priority, returning characteristic errors to abort or restart
the current system call. This sleep call also passes a string describing
the process state, which is used by the ps(1) program. The old sleep
interface can be used only for non-interruptible sleeps. The sleep
interface (tsleep) can be used at any priority, but is only
interruptible if the PCATCH flag is set. When interrupted, tsleep
returns EINTR or ERESTART.

Many data structures that were previously statically allocated are now
allocated dynamically. These structures include mount entries, file
entries, user open file descriptors, the process entries, the vnode
table, the name cache, and the quota structures.

The End of BSD from Berkeley

As you may already have heard, the CSRG is going to go away after the
final release of 4.4BSD. For the following reasons, clearly the CSRG
cannot continue in its present form.

Funding has become increasingly time-consuming and difficult. We are
spending more and more of our time obtaining funding, time that we would
prefer to spend working on BSD. As many of you are intimately aware,
computer corporations are actively seeking ways to reduce discretionary
outlays. Also, as UNIX vendors have developed their own research
groups, the work of the CSRG has become less necessary to them.
Finally, making BSD freely redistributable has resulted in fewer
distributions sold, as other organizations sell our releases for less
money.

Support within the University of California has declined as BSD has
become less widely used internally. Victims of our own success, many of
the features once found only in BSD are now available from every
vendor.

The system has become too large and complex for a group of four to
architect and maintain. In particular, losing Mike Karels has made it
obvious to us that the group is below critical mass for developing and
distributing a complete UNIX system.

We are making the 4.4BSD-alpha distribution available now. We will spend
the summer and some part of the fall cleaning up the release and make
the final 4.4BSD release available in the fall. When the final release
happens is mostly dependent on when our current funding runs out. At
that time we will close down the group. We would really like to have six
months to finish up 4.4BSD. The amount of time that we get is largely a
function of how many of you purchase the alpha distribution. So, if you
are planning to get 4.4BSD when it comes out, please consider buying an
alpha distribution with an upgrade option instead. That way your money
will go to support the final 4.4BSD release.

BSD has always been a community effort, and, as a community effort, does
not rely on a small group of people in Berkeley to keep it going. BSD
will not go away, but will live on through the free software and
commercial efforts of many people. We thank you for your support over
the years, your funding, and, of course, the software you've contributed
to make the BSD system what it is today!

How to obtain 4.4BSD-Encumbered

To obtain 4.4BSD-Encumbered we require execution of the Berkeley License
Agreement (6/92). In addition, foreign licensees must execute Addendum
Number One for Foreign Licensees in ordering 4.4BSD-Encumbered. The fee
is $2000.00 for 4.4BSD-Encumbered.

Because we are a research and development organization and not a
commercial organization, we make our research results available for a
small license fee. We distribute only the whole system "As Is" and cannot
send individual pieces of the system. We are required by the University
of California to have a formal license arrangement with each
organization to which we distribute. All material is considered licensed
material regardless of its availability from other sources that make
such material publicly available. In addition, for 4.4BSD-Encumbered,
we are required to secure a copy of the AT&T Software Agreement with
your organization and confirm it with AT&T before the software can be
shipped.

[...details of licensing edited out for brevity]



                                 Sincerely yours,


                                 Marshall Kirk McKusick
                                 Research Computer Scientist
                                 Computer Systems Research Group




--
  James W. Adams     --     Bioinformatics and Molecular Analysis Section
  Building 12A, Room 2013              jwa@alw.nih.gov, uunet!nih-csl!jwa
  National Institutes of Health
  Bethesda, MD 20892                          "Spay the Children"