Git Product home page Git Product logo

hzieedu / 4.3bsd-reno Goto Github PK

View Code? Open in Web Editor NEW

This project forked from dank101/4.3bsd-reno

0.0 0.0 0.0 23.84 MB

The source of the BSD version moving to POSIX complacence

Shell 1.54% JavaScript 1.97% Ruby 0.15% C++ 0.27% Python 0.04% Perl 25.34% C 67.14% PHP 0.01% Erlang 0.22% Objective-C 0.07% Io 0.01% Scala 0.04% Nu 0.01% Groovy 0.01% Eiffel 0.07% Fortran 0.91% R 0.03% D 0.07% Assembly 2.02% Ada 0.08%

4.3bsd-reno's Introduction

4.3BSD-Reno

The source of the BSD version moving to POSIX complacence

Original Release Message:

Dear Colleague:

We are happy to send you information about our June, 1990 test release of the Fourth Berkeley Software Distribution, 4.3BSD-Reno. This release represents an intermediate point in the development of 4.4BSD; several new facilities have been completed and are ready for external use, while other new facilities slated for the 4.4BSD release have not yet been integrated. Our goal in making this release available is to get feedback on any problems in the design or implementation of the new facilities, as well as to allow adventurous sites to gain experience with these portions of 4.4BSD.

This distribution is NOT intended to be used on production systems; nor is it intended for sites without sufficient 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 anticipate in trying to convert your applications to run on this release. The interfaces in this release will change before the release of 4.4BSD (at least in part based on feedback from this test group). Thus, you should not expect applications ported to this release to work unchanged on 4.4BSD.

Unlike past test releases, 4.3BSD-Reno is being made generally available to 4.3BSD licensees, and 4.3BSD-Reno may be redistributed and used in released products (within the usual licensing constraints). However, you will have to upgrade any code that you use from 4.3BSD-Reno to the 4.4BSD code within one year of the release of 4.4BSD. We appreciate your help in this debugging effort and look forward to hearing from you. Please send your comments to [email protected]. We regret that changes documents are not available; the next section outlines the major changes available in 4.3BSD-Reno.

The license to 4.3BSD-Reno is simply an Addendum to the 4.3BSD License. Sites without a 4.3BSD license may obtain both 4.3BSD and 4.3BSD-Reno simultaneously, but must sign a 4.3BSD license as well as the Addendum. Contact the distribution office for 4.3BSD licensing information. 4.3BSD is available only to sites with UNIX/32V, System III, or System V source licenses with AT&T. We are actively working to decrease the amount of AT&T code in the system. We expect that we will provide a subset of 4.4BSD without the AT&T code to sites without requiring an AT&T license. However, we are not prepared to make that determination for this release, so we are providing only tapes with the complete system at this time.

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.3BSD-Reno?

The distribution consists of one 6250 bpi or three 1600 bpi magnetic tapes containing full sources and documentation plus one set of binaries. You may specify VAX and/or Tahoe (CCI Power 6/32) binaries.

The three major new facilities available in the 4.3BSD-Reno release are the addition of ISO/OSI networking support, a freely redistributable implementation of NFS, and the conversion to and addition of the POSIX.1 facilities. There are numerous other changes throughout the system.

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*). The session and presentation layers will be 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. Although generally similar to Sun's vnode interface, the Berkeley interface has been structured for more efficient support of filesystems that maintain state (such as the local filesystem). 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. We have also added a memory-based filesystem that runs in pageable memory, which allows 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.3BSD-Reno distribution contains most of the interfaces specified in the POSIX.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.3BSD-Reno also adds the POSIX 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 POSIX signals, FIFO's, and saved user and group identifiers. We have been tracking the POSIX shell and utility work and have included prototypes of many of the proposed utilities. Finally, we have converted about 80% of the libraries and header files to be compliant with ANSI 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 (except NFS) to provide the first real network authentication on BSD.

The hardware supported by 4.3BSD-Reno is:

 +    VAX (86x0, 78x, 750, 730; MicroVAX II, 3200/3500/3600; 82x0)
 +    Tahoe (CCI Power 6/32, 6/32SX; Unisys 7000/xx; Harris  HCX7,
      HCX9)
 +    HP 9000/300 series

In addition, kernel support for the Intel i386 and many AT-bus peripherals has been added recently; contact the distribution office for a list of supported hardware if necessary.

For this distribution, binaries will be available for only the VAX and Tahoe architectures. The 4.4BSD distribution will probably be available for all the above architectures as well as several machines based on the MIPS processor.

The reason that this distribution is not labeled 4.4BSD-alpha is because it does not contain several major interfaces that we plan to have available for that distribution. These include:

 +    A  new  virtual  memory  system  using  the  mmap  interface
 described  in  the 4.3BSD architecture document.  The interface
 is similar to the interface shipped in several  commercial
 versions of UNIX such as SunOS 4.0.
 +    Support for ISO Connection-Oriented Network  Service,  X.25,
 TP-0.
 +    A new internal  network  layering  (``bstreams'')  combining
 features of the current socket layering and of Streams.
 +    Fixes, tuning, fixes, documentation, and fixes.

This release does include several important structural kernel changes. The most pervasive change is to eliminate the user structure fields u.u_error, u.u_u_r.r_val1, and u.u_ap by using a new internal system call convention: error = (*callp)(proc, args, retval);

We are also reducing the use of other global variables with the intent to eventually eliminate all references to the user area except for the per-process runtime stack. Thus, all substructures will eventually be referenced via the proc structure.

Another major change is the introduction of a new sleep interface: error = tsleep(wchan, pri|PCATCH, wstring, timeout);

The old sleep interface can be used only for non-interruptible sleeps. The tsleep interface can be used at any priority, but is only interruptible if the PCATCH flag is set. When interrupted, tsleep returns EINTR or ERESTART; all non-local goto's (longjmp's) have been eliminated from the kernel.

Many data structures that were previously statically allocated are now allocated dynamically. These structures include the mount table, the vnode table, the name cache, and the quota structures.

How to obtain the 4.3BSD-Reno release

All previous 4.3BSD licensees will be able to receive the 4.3BSD Reno release simply by executing the steps outlined below. 4.2BSD licensees who have not yet upgraded to 4.3BSD will be required to do so as well as following the steps outlined below for the Reno distribution. For further information on ordering the standard 4.3BSD distribution, contact our distribution office at the address given below.

Because we are a research and development organization and not a commercial organization, we make our research results available for a fee which covers only our costs for the distribution. We distribute only the whole system and cannot send individual pieces of the system. Because the software is distributed ``As Is'' and is partially derived from licensed material, we are required to have a formal license arrangement with each organization to which we distribute.

Specifically, we must receive from your organization the following material before the distribution can be sent:

 +    Two appropriate signed Addenda for the Reno distribution  if
 you  are  a  4.3BSD  licensee.  Add  to that the appropriate
 Addendum to receive the upgrade if you are a  4.2BSD  license.
 For new licenses, two executed copies of the Berkeley
 License Agreement  (4/86)  with  the  appropriate  Addendum,
 i.e.,  for foreign or US government sites, plus the Addendum
 for the Reno distribution.  We require  two  copies  of  all
 Agreements/Addenda with original signatures, one of which is
 returned to the Licensee.  The name of the  organization  on
 the  Addendum  No.  Three  must  be  the  same as that which
 appears on the Software  Agreement  with  AT&T  (or  Western
 Electric).  The  Addendum No. Three must be signed by a duly
 authorized person who holds a position that is at  the  same
 level  or  a higher level of authority as that which appears
 on the AT&T Software Agreement. Please  have  this  person's
 name  and  title typed in the available space in addition to
 the signature.
 +    A check from a U.S. bank for $495.00 U.S. (for a single 6250
 BPI  tape  of  4.3BSD-Reno)  or  $595.00 (for three 1600 BPI
 tapes of  4.3BSD-Reno)  payable  to  ``The  Regents  of  the
 University  of California'' must be received before the distribution
 can be sent.  If you must issue a Purchase  Order,
 please  issue one that is blank-backed.  If this is not possible,
 insert and initialize in the  body  of  the  Purchase
 Order  the  following  clause: ``The terms and conditions of
 this Purchase Order are not accepted by The Regents  of  the
 University  of  California.   The  revised  Berkeley License
 Agreement (4/86) governs.''  For  4.2  licensees  that  have
 updated  to 4.3BSD, substitute ``The terms and conditions of
 this Purchase Order are not accepted by The Regents  of  the
 University  of  California.   The  revised  Berkeley License
 Agreement (6/83) and Addendum Number Three govern.''
 +    A completed Site Information Form.  The distribution  itself
 will be sent to the technical contact.  The site information
 is kept confidential and is for our use in identifying sites
 with  specific  configurations.   Please note that we cannot
 ship to post office boxes; therefore, please have the technical
 contact's address supplied without use of a post office
 box.

A checklist is included to aid you in assembling this material. All the above material must be sent to:

    Distribution Coordinator
    Computer Systems Research Group
    Computer Science Division, EECS
    University of California
    Berkeley, California 94720

Once all these items have been received and are in proper order, the distribution will be sent to the technical address indicated on the Site Information Form that you provided when you placed your order; we cannot provide delivery dates. Once the material is assembled and packaged, the distribution is shipped by commercial carrier. Order of shipment will be based on time of arrival of the properly completed paperwork. Because of the differential in costs of shipping outside the United States, we ask that organizations beyond the North American continent pay the collect shipping charges.

The most expedient way to insure that your full distribution is sent as quickly as possible is to include in a single package the signed appropriate Addenda (without modification) for the Reno distribution plus any other necessary signed legal papers, depending on your licensing status, the appropriate check properly made out to ``The Regents of the University of California,'' and a completely filled-out Site Information Form, and to send this single package to the address noted above.

Large Organizations

Many large organizations have multiple entities that act independently from one another and are licensed independently from AT&T. Others have the parent organization licensed by AT&T and copies of the software distribution sent to each independent entity. The Berkeley License Agreement must be executed with the organization holding the appropriate AT&T Software Agreement.

If your organization has an AT&T license and chooses not to redistribute internally, please contact us for a copy of the letter of authorization to be executed by the parent company.

Special Cases

University of California Sites. If you are a part of the University of California, and do not already have an AT&T source license for your CPU, you must use the following procedure: ask Pam True (415) 642-6348 at Berkeley Campus Materiel Management for an application for an additional CPU authorization under The Regents of the University of California's Software Agreement with AT&T. We will receive the completed application from Materiel Management. If you have previously obtained a Berkeley License for your CPU or have an AT&T source license for your CPU, you do not need to contact the Materiel Management Office.

In all cases, the following items must be sent to the Computer Systems Research Group: 1) a letter signed by the Director or Head of Department requesting 4.3BSD-Reno, stating that you have read and understood the Berkeley License Agreement and that your organization will abide by it, 2) an IOC for $495.00 or $595.00 (1600 BPI), and 3) a Site Information Form if the contact information has changed.

DARPA Sites. The research on which the Berkeley Software Distributions are based has been sponsored by DARPA (Defense Advanced Research Projects Agency). Provision has been made for prepayment of distribution costs for a few designated DARPA sites. In place of the check for $495.00 or $595.00, you should include a letter from your Program Manager stating that you are designated as such a site. However, you must comply with all other requirements in applying for the distribution.

A Special Note

The procedures and rules set out in this document are University and AT&T constraints that must be followed in order for the distribution of software to be possible. The Computer Systems Research Group has no control over these constraints and must reject your application if material submitted is not in order.

If You Have Read Everything and Still Need Help

If you have questions about the licensing process after reading this letter, you may call the distribution group at (415) 642-7780, write to them at the address above, or contact them via electronic mail at [email protected] or ucbvax!bsd-dist. They will not be able to answer technical questions.

                     Sincerely yours,

                     Mike Karels
                     Computer Systems Research Group
                     July 6, 1990

4.3bsd-reno's People

Contributors

dank101 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.