Giter VIP home page Giter VIP logo

kaypton / project.x Goto Github PK

View Code? Open in Web Editor NEW

This project forked from dank101/4.4bsd-lite2

0.0 0.0 0.0 44.69 MB

Upload of the source of 4.4BSD-Lite2

Shell 1.32% Ruby 0.01% C++ 5.29% Perl 1.81% C 84.46% Emacs Lisp 2.47% Objective-C 0.03% OCaml 0.06% Scala 0.01% Smalltalk 0.02% Fortran 0.31% R 0.01% Assembly 1.99% Scilab 0.01% OpenEdge ABL 0.20% Max 0.01% Awk 0.08% M 0.06% TeX 1.66% Crystal 0.22%

project.x's Introduction

4.4BSD-Lite2

Upload of the source of 4.4BSD-Lite2

Orginal Release message for 4.4BSD-Lite:

Dear Colleague:

We are delighted, at long last, to send you information about our March 1994 release of 4.4BSD-Lite. The University and UNIX System Laboratories have resolved the issues sur- rounding the second BSD Networking Release (Net/2) distribu- tion (see attached press release), and the University is now able to release 4.4BSD-Lite. We strongly recommend that you replace any Net/2 source or binary code with 4.4BSD-Lite.

The 4.4BSD-Lite software is copyrighted by the University
of California and others, but may be freely redistri- buted without fee. It is available to anyone and requires no previous license from AT&T, Novell/USL, or The Regents of the University of California. The distribution includes both software developed at Berkeley and much software con- tributed by authors outside Berkeley. The code in this dis- tribution may be redistributed and used in released products without fee, if the due credit, copyright notice, and other requirements described in the license and the source files are met.

This packet is intended to serve two purposes. The first is to acquaint you with the details of our distribu- tion so you may decide if you wish to purchase it. The second is to inform you how to obtain our distribution.

Distribution contents

The distribution is a source distribution only, and does not contain program binaries for any architecture. It will not be possible to compile or run this software without a pre-existing system that is already installed and running. In addition, the distribution does not include sources for a complete system. It includes source code and manual pages for the C library, approximately 90% of the utilities dis- tributed as part of 4.4BSD, and most of the kernel (the same subsystems that were deleted in Net/2 are still missing in 4.4BSD-Lite - support for executing files, doing physical I/O, managing the buffer cache, handling process tracing, terminal character I/O, and doing accounting). Because the Computer Systems Research Group has shut down (other than a brief reunion to put together this release), there will not be anyone available at Berkeley to assist with problems, so sites are encouraged to ensure enough local expertise to find and fix any problems that are encountered.

We have attempted to make the system as compliant with the ANSI C and IEEE POSIX 1003.1 and 1003.2 standards as was possible at the time of its release. We have not run it through any of the verification test suites, thus, you should not claim conformance with either standard without first validating the code.

This software distribution is only available on two 6250bpi 1/2" 9-track tapes or one 8mm Exabyte cassette. The 4.4BSD-Lite distribution contains source for the follow- ing architectures:

 +    HP 9000/300 68000-based workstations,

 +    DECstation 3100 and 5000 MIPS-based workstations,

 +    Sparcstation I & II  SPARC-based  workstations  (Please
 note that the distribution does not support the Sparcs-
 tation 10.),

 +    Sony News MIPS-based workstations,

 +    Omron Luna 68000-based workstations,

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

The distribution does not include the machine support for the Tahoe and VAX architectures found in previous BSD dis- tributions. Our primary development environment is the HP9000/300 series machines. The other architectures are 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. More specifi- cally, the support for the x86 architectures is known to be unstable.

The major new facilities available in the 4.4BSD-Lite release are a new virtual memory system, the addition of ISO/OSI networking support, a new virtual filesystem inter- face supporting filesystem stacking, a freely redistribut- able implementation of NFS, a log-structured filesystem, enhancement of the local filesystems to support files and filesystems that are up to 2**63 bytes in size, an ISO CDROM 9660 filesystem with Rockridge extensions, enhanced security and system management support, 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 tools and additions to the C library are present. 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 shareable by multiple processes. The system and include files have been converted to be compatible with ANSI C, including function prototypes for 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 University, and was ported to the BSD kernel at the Univer- sity 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 the UNIX Programmer's Manual, Supplementary Documents, PSD:5). The interface is similar to the interfaces shipped by several commercial vendors such as Sun, Novell/USL, and Convex Computer Corp., and as described by POSIX 1003.4. 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 been merged.

The ISO/OSI Networking consists of a kernel implementa- tion of transport class 4 (TP-4), connectionless networking protocol (CLNP), and 802.3-based link-level support (hardware-compatible with Ethernet*). We also include sup- port 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 inter- face has been extended with support for stackable filesys- tems 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 con- sistency 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 4.4BSD-Lite release, so we do not recommend it for production use. We have also added a memory-based filesystem that runs in pageable memory, allow- ing large temporary filesystems without requiring dedicated physical memory.

The local fast filesystem has been enhanced to do clustering which allows large pieces of files to be allo- cated contiguously resulting in near doubling of filesystem throughput. The filesystem interface has been extended to allow files and filesystems to grow to 2**63 bytes in size. 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 system security has been greatly enhanced by the addition of additional file flags that permit a file to be marked as immutable or append only. Once set, these flags can only be cleared by the super-user when the system is running single user. To protect against indiscriminate reading or writing of kernel memory, all writing and most reading of kernel data structures must be done using a new sysctl interface. The information to be accessed is described through an extensible ``Management Information Base (MIB).

The 4.4BSD-Lite 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 meets the POSIX interface with the addition of the necessary extensions to get the functionality previously available in the 4.3BSD terminal driver. 4.4BSD-Lite also adds the IEEE Std1003.1 job con- trol 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, data- base interfaces to btree and hashing functions, a new, fast implementation of stdio and radix and merge sort functions. The additions to the utility suite include greatly enhanced versions of programs that display system status information, new 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 utili- ties 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 reflect the POSIX defined interfaces, and in some 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 tradi- tional 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. Ethernet multicast support is now available. The routing implementation has been com- pletely 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 ker- nel 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 inter- rupted system calls no longer abort using non-local goto's (longjmp's). A new sleep interface separates signal han- dling 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 descrip- tors, the process entries, the vnode table, the name cache, and the quota structures.

How to obtain 4.4BSD-Lite

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

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.

Specifically, for 4.4BSD-Lite, we must receive from your organization the following material before the distri- bution can be sent:

 +    Two original signed and executed copies of the Berkeley
 License Agreement (3/94) between your company or insti-
 tution and The Regents of the University of  California
 along  with Exhibit A properly filled out.  For Foreign
 licensees, there is an Addendum to the  License  Agree-
 ment  that  must  also  be  executed.  Please have this
 person's name and title typed in the available space in
 addition  to  the  signature.   One  signed copy of the
 Berkeley License Agreement  will  be  returned  to  you
 after  it  has  been  executed  by  The  Regents of the
 University of California.

  +    A check from a U.S. bank for $1000.00 must be  received
      before  the distribution can be sent.  Checks should be
      made payable to ``The Regents of the University of Cal-
      ifornia, Computer Systems Research Group.'' If you must
      issue a Purchase Order, together with your  prepayment,
      please  issue one that is blank-backed.  If this is not
      possible, insert and initial in the body  of  the  Pur-
      chase  Order the following clause: ``The terms and con-
      ditions of this Purchase Order are not accepted by  The
      Regents  of  the University of California.  The revised
      Berkeley  License  Agreement  (3/94)  prevails.''  Wire
      transfers are strongly discouraged.

 +    The attached Site Information  Form  completely  filled
 out.   Your  copy  of  the  signed  4.4BSD-Lite License
 Agreement will be sent to  the  person  listed  as  the
 administrative  contact.   The distribution itself will
 be sent to the technical contact.  All  information  is
 kept  confidential;  it is for our use in notifying you
 of important bug fixes.  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:

    Pauline Schwartz, 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 listed on the Site Information Form. We cannot pro- vide 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 outside the continental United States pay the collect shipping charges. If the destination is one where collect shipment cannot be made by the carrier, then advance payment of the shipping charges will be required.

The most expedient way to ensure that your full distri- bution is sent as quickly as possible is to include in a single package two original copies of the appropriate Berke- ley License Agreement completed and properly signed (without change), the appropriate check properly made out to The Regents of the University of California, Computer Systems Research Group and a completely filled out Site Informa- tion Form and to send this single package to the address noted above.

Please note that if you modify the Berkeley License Agreement, you may experience a delay of three months or more before receiving an acceptance or denial of the changes. We reserve the right to cancel your application if we have not received the requested paperwork within 60 days from the date it was sent to us.

Special Cases

University of California Sites. If you are a part of the University of California, the following items must be sent to the Computer Systems Research Group: 1) a letter of authorization signed by the Director or Head of Department requesting 4.4BSD-Lite, stating that you have read and understood the Berkeley License Agreement (3/94) and that your organization will abide by it; 2) an IOC for $1,000.00; and 3) a Site Information Form.

A Special Note

The procedures and rules set out in this document are University constraints that must be followed for the distri- bution 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 questions about the licensing process after reading this letter, you may call Pauline Schwartz at (510) 642-7780, write to her, or contact her via electronic mail at [email protected].

                     Sincerely yours,


                     Marshall Kirk McKusick
                     Keith Bostic
                     Computer Systems Research Group

project.x's People

Contributors

dank101 avatar kaypton 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.