4.4BSD Documents

This is just a snapshot off the 4.4BSD Lite Documents which are part of the FreeBSD operating system. Some Documents are missing due the AT&T copyright. You can get them all in the printed version from O'Reilly, but it's not worth the trouble. They're pretty out-of-date.

The troff documents are converted to HTML with unroff, a Scheme-based, programmable, extensible troff translator with a back-end for the Hypertext Markup Language. The -me documents do not look good formatted.

The sources are available from the FreeBSD FTP Server with the FTP protocol and the CVSweb script.

Other Unix documents: Unix Seventh Edition Manual, Volume 2.

Wolfram Schneider <wosch@FreeBSD.org>, Mar 1997.


Contents of Paper (Postscript, PDF, ASCII)
Berkeley Pascal (Postscript, PDF, ASCII)
Berkeley Pascal PX Implementation Notes Version 2.0 Performance Effects of Disk Subsystem Choices for VAX** Systems Running 4.2BSD UNIX. William N. Joy, M. Kirk McKusick. Revised January, 1979.
Disk Performance (Postscript, PDF, ASCII)
Performance Effects of Disk Subsystem Choices for VAX** Systems Running 4.2BSD UNIX. Bob Kridle, Marshall Kirk McKusick. Revised July 27, 1983.
Tune the 4.2BSD Kernel (Postscript, PDF, ASCII)
Using gprof to Tune the 4.2BSD Kernel. Marshall Kirk McKusick. Revised May 21, 1984 (?).
New Virtual Memory (Postscript, PDF, ASCII)
A New Virtual Memory Implementation for Berkeley. Marshall Kirk McKusick, Michael J. Karels. Revised 1986.
Kernel Malloc (Postscript, PDF, ASCII)
Design of a General Purpose Memory Allocator for the 4.3BSD UNIX Kernel. Marshall Kirk McKusick, Michael J. Karels. Reprinted from: Proceedings of the San Francisco USENIX Conference, pp. 295-303, June 1988.
Release Engineering (Postscript, PDF, ASCII)
The Release Engineering of 4.3BSD. Marshall Kirk McKusick, Michael J. Karels, Keith Bostic. Revised 1989.
Beyond 4.3BSD (Postscript, PDF, ASCII)
Current Research by The Computer Systems Research Group of Berkeley. Marshall Kirk McKusick, Michael J Karels, Keith Sklower, Kevin Fall, Marc Teitelbaum, Keith Bostic. Revised February 2, 1989.
Memory Based Filesystem (Postscript, PDF, ASCII)
A Pageable Memory Based Filesystem. Marshall Kirk McKusick, Michael J. Karels, Keith Bostic. Revised 1990.
Filesystem Interface (Postscript, PDF, ASCII)
Toward a Compatible Filesystem Interface. Michael J. Karels, Marshall Kirk McKusick. Conference of the European Users' Group, September 1986. Last modified April 16, 1991.
System Performance (Postscript, PDF, ASCII)
Measuring and Improving the Performance of Berkeley UNIX. Marshall Kirk McKusick, Samuel J. Leffler, Michael J. Karels. Revised April 17, 1991.
Not Quite NFS (Postscript, PDF, ASCII)
Not Quite NFS, Soft Cache Consistency for NFS. Rick Macklem. Reprinted with permission from the "Proceedings of the Winter 1994 Usenix Conference", January 1994, San Francisco.
Malloc(3) malloc (Postscript, PDF, ASCII)
Malloc(3) in modern Virtual Memory environments. Poul-Henning Kamp. Revised April 5, 1996.
Jail(2) (Postscript, ASCII)
Jails: Confining the omnipotent root. Poul-Henning Kamp and Robert N. M. Watson. This paper was presented at the 2nd International System Administration and Networking Conference "SANE 2000" May 22-25, 2000 in Maastricht.
The case for struct bio (Postscript, ASCII)
A road map for a stackable BIO subsystem in FreeBSD. Poul-Henning Kamp. Revised July 2000.

UNIX Programmer's Supplementary Documents (PSD)

Title of PSD (Postscript, PDF, ASCII)
Contents of PSD (Postscript, PDF, ASCII)

Documents of Historical Interest

PSD:1 The Unix Time-Sharing System
Dennis Ritchie and Ken Thompson's original paper about UNIX, reprinted from Communications of the ACM. (encumbered)
PSD:2 Unix Implementation
Ken Thompson's description of the implementation of the Version 7 kernel and file system. (encumbered)
PSD:3 The Unix I/O System
Dennis Ritchie's overview of the I/O System of Version 7; still helpful for those writing device drivers. (encumbered)
PSD:4 Unix Programming - Second Edition
Describes the programming interface to the UNIX version 7 operating system and the standard I/O library. Should be supplemented by Kernighan and Pike, ``The UNIX Programming Environment'', Prentice-Hall, 1984 and especially by the Programmer Reference Manual section 2 (system calls) and 3 (library routines). (encumbered)
PSD:5 Berkeley Software Architecture Manual (4.4 Edition) (Postscript, PDF, ASCII)
A concise and terse description of the system call interface provided in Berkeley Unix, as revised for 4.4BSD. This will never be a best seller.

Languages in common use

PSD:6 The C Programming Language - Reference Manual
Official statement of the syntax of C. Should be supplemented by ``The C Programming Language,'' B.W. Kernighan and D.M. Ritchie, Prentice-Hall, 1978, that contains a tutorial introduction and many examples. (encumbered)
PSD:7 Berkeley Pascal User's Manual
An implementation of this language popular for learning to program. (Not provided in FreeBSD.)
PSD:8 A Portable Fortran 77 Compiler
A revised version of the document which originally appeared in Volume 2b of the Bell Labs documentation; this version reflects the work done at Berkeley. (encumbered)
PSD:9 Introduction to the f77 I/O Library
A description of the revised input/output library for Fortran 77, reflecting work carried out at Berkeley. (Not provided in FreeBSD.)

Programming Tools

PSD:10 Debugging with GDB: The GNU Source-Level Debugger
How to debug programs using the source level gdb debugger (or how to debug programs without having to know much about machine language). (A TeXinfo version is provided separately.)
PSD:11 A Tutorial Introduction to ADB
How to debug programs using the assembly-language level adb debugger. (encumbered)
PSD:12 Make - A Program for Maintaining Computer Programs (Postscript, PDF, ASCII)
Indispensable tool for making sure large programs are properly compiled with minimal effort.
PSD:13 An Introduction to the Revision Control System (Postscript, PDF, ASCII)
Functions of RCS (Postscript, PDF, ASCII)
RCS is a user-contributed tool for working together with other people without stepping on each other's toes. An alternative to sccs for controlling software changes.
PSD:14 An Introduction to the Source Code Control System
A useful introductory article for those users with installations licensed for SCCS. (encumbered)
PSD:15 YACC: Yet Another Compiler-Compiler
Converts a BNF specification of a language and semantic actions written in C into a compiler for that language. (encumbered)
PSD:16 LEX - A Lexical Analyzer Generator
Creates a recognizer for a set of regular expressions: each regular expression can be followed by arbitrary C code to be executed upon finding the regular expression. (encumbered)
PSD:17 The M4 Macro Processor
M4 is a macro processor useful in its own right and as a front-end for C, Ratfor, and Cobol.
PSD:18 gprof - a Call Graph Execution Profiler (Postscript, PDF, ASCII)
A program to show the call graph and execution time of a program. Indispensable aid for improving the running time of almost everything.

Programming Libraries

PSD:19 Screen Updating and Cursor Movement Optimization (Postscript, PDF, ASCII)
Describes the curses package, an aid for writing screen-oriented, terminal-independent programs.

General Reference

PSD:20 An Introductory 4.4BSD Interprocess Communication Tutorial (Postscript, PDF, ASCII)
How to write programs that use the Interprocess Communication Facilities of 4.4BSD.
PSD:21 An Advanced 4.4BSD Interprocess Communication Tutorial (Postscript, PDF, ASCII)
The reference document (with some examples) for the Interprocess Communication Facilities of 4.4BSD.
PSD:22 RPCGEN Programming Guide (Postscript, PDF, ASCII)
Manual for the ONC RPC stub-generating program, provided by Sun Microsystems.
PSD:23 Remote Procedure Call Programming Guide (Postscript, PDF, ASCII)
A tutorial introduction to programming the ONC RPC system, provided by Sun Microsystems.
PSD:24 External Data Representation: Sun Technical Notes (Postscript, PDF, ASCII)
Technical details about the design of the XDR component of ONC RPC, provided by Sun Microsystems.
PSD:25 External Data Representation Standard: Protocol Specification (Postscript, PDF, ASCII)
The Internet RFC specifying ONC XDR, provided by Sun Microsystems.
PSD:26 Remote Procedure Calls: Protocol Specification (Postscript, PDF, ASCII)
The Internet RFC specifying ONC RPC, RFC 1050, as provided by Sun Microsystems.
PSD:27 Network File System: Version 2 Protocol Specification (Postscript, PDF, ASCII)
The Internet RFC specifying NFS, as provided by Sun Microsystems. Note that the NFS-compatible filesystem itself, while compliant with this specification, was not provided by Sun.
PSD:28 CVS II: Parallelizing Software Development (Postscript, PDF, ASCII)
CVS (Concurrent Versions System) is a front end to the RCS revision control system which extends the notion of revision control from a collection of files in a single directory to a hierarchical collection of directories each containing revision controlled files.

UNIX System Manager's Manual (SMM)

Title of SMM (Postscript, PDF, ASCII)
Contents of SMM (Postscript, PDF, ASCII)
SMM:1 Installing and Operating 4.4BSD (Postscript, PDF, ASCII)
The definitive reference document for those occasions when you find you need to start over again.
SMM:2 Building 4.4BSD Kernels with Config (Postscript, PDF, ASCII)
In-depth discussions of the use and operation of the config program, and how to build your very own Unix kernel.
SMM:3 Fsck - The UNIX File System Check Program (Postscript, PDF, ASCII)
A reference document for using the fsck program during times of file system distress.
SMM:4 Disc Quotas in a UNIX Environment (Postscript, PDF, ASCII)
A light introduction to the techniques for limiting the use of disc resources.
SMM:5 A Fast File System for UNIX (Postscript, PDF, ASCII)
A description of the 4.4BSD file system organization, design and implementation.
SMM:6 The 4.4BSD NFS Implementation (Postscript, PDF, ASCII)
An overview of the design, implementation, and use of NFS on 4.4BSD.
SMM:7 Line Printer Spooler Manual (Postscript, PDF, ASCII)
This document describes the structure and installation procedure for the line printer spooling system.
SMM:8 Sendmail Installation and Operation Guide (Postscript, PDF, ASCII)
The last word in installing and operating the sendmail program.
SMM:9 Sendmail - An Internetwork Mail Router (Postscript, PDF, ASCII)
An overview document on the design and implementation of sendmail.
SMM:10 Name Server Operations Guide for BIND
Setting up and operating the name to Internet addressing software. If you have a network this will be of interest.
A documentation for BIND Release 4.9.4 is avaialble from http://www.kvikkjokk.com/docs/bind/bog.html
SMM:11 Timed Installation and Operation Guide (Postscript, PDF, ASCII)
Describes how to maintain time synchronization between machines in a local network.
SMM:12 The Berkeley UNIX Time Synchronization Protocol (Postscript, PDF, ASCII)
The protocols and algorithms used by timed, the network time synchronization daemon.
SMM:13 AMD - The 4.4BSD Automounter
Automatically mounting file systems on demand.
SMM:14 Installation and Operation of UUCP
Describes the implementation of uucp; for the installer and administrator.
SMM:15 A Dial-Up Network of UNIX Systems
Describes UUCP, a program for communicating files between UNIX systems.
SMM:16 On the Security of UNIX
Hints on how to break UNIX, and how to avoid your system being broken.
SMM:17 Password Security - A Case History
How the bad guys used to be able to break the password algorithm, and why they cannot now (at least not so easily).
SMM:18 Networking Implementation Notes, 4.4BSD Edition (Postscript, PDF, ASCII)
A concise description of the system interfaces used within the networking subsystem.

UNIX User's Supplementary Documents (USD)

Title of USD (Postscript, PDF, ASCII)
Contents of USD (Postscript, PDF, ASCII)

Getting Started

USD:1 Unix for Beginners - Second Edition
An introduction to the most basic uses of the system.
USD:2 Learn - Computer-Aided Instruction on UNIX (Second Edit)
Describes a computer-aided instruction program that walks new users through the basics of files, the editor, and document prepararation software.

Basic Utilities

USD:3 An Introduction to the UNIX Shell
Steve Bourne's introduction to the capabilities of sh, a command interpreter especially popular for writing shell scripts.
USD:4 An Introduction to the C shell (Postscript, PDF, ASCII)
This introduction to csh, (a command interpreter popular for interactive work) describes many commonly used UNIX commands, assumes little prior knowledge of UNIX, and has a glossary useful for beginners.
USD:5 DC - An Interactive Desk Calculator
A super HP calculator, if you do not need floating point.
USD:6 BC - An Arbitrary Precision Desk-Calculator Language
A front end for DC that provides infix notation, control flow, and built-in functions.

Communicating with the World

USD:7 Mail Reference Manual (Postscript, PDF, ASCII)
Complete details on one of the programs for sending and reading your mail.
USD:8 The Rand MH Message Handling System
This system for managing your computer mail uses lots of small programs, instead of one large one.

Text Editing

USD:9 A Tutorial Introduction to the Unix Text Editor
An easy way to get started with the line editor, ed.
USD:10 Ex Reference Manual (Version 3.7) (Postscript, PDF, ASCII)
The final reference for the ex editor.
USD:11 Advanced Editing on Unix (Postscript, PDF, ASCII)
The next step.
USD:12 An Introduction to Display Editing with Vi (Postscript, PDF, ASCII)
The document to learn to use the vi screen editor.
USD:13 Vi Reference Manual (Postscript, PDF, ASCII)
The definitive reference for the nvi editor.
USD:14 Jove Manual for UNIX Users
Jove is a small, self-documenting, customizable display editor, based on EMACS. A plausible alternative to vi.
USD:15 SED - A Non-interactive Text Editor
Describes a one-pass variant of ed useful as a filter for processing large files.
USD:16 AWK - A Pattern Scanning and Processing Language (Second Edition)
A program for data selection and transformation.

Document Preparation

USD:17 Typing Documents on UNIX: Using the -ms Macros with Troff
Describes and gives examples of the basic use of the typesetting tools and ``-ms'', a frequently used package of formatting requests that make it easier to lay out most documents.
USD:18 A Revised Version of -ms (Postscript, PDF, ASCII)
A brief description of the Berkeley revisions made to the -ms formatting macros for nroff and troff.
USD:19 Writing Papers with nroff using -me (Postscript, PDF, ASCII)
Another popular macro package for nroff.
USD:20 -me Reference Manual (Postscript, PDF, ASCII)
The final word on -me.
USD:21 NROFF/TROFF User's Manual
Extremely detailed information about these document formatting programs.
USD:22 A TROFF Tutorial
An introduction to the most basic uses of troff for those who really want to know such things, or want to write their own macros.
USD:23 A System for Typesetting Mathematics
Describes eqn, an easy-to-learn language for high-quality mathematical typesetting.
USD:24 Typesetting Mathematics - User's Guide (Second Edition)
More details about how to use eqn.
USD:25 Tbl - A Program to Format Tables
A program for easily typesetting tabular material.
USD:26 Refer - A Bibliography System
An introduction to one set of tools used to maintain bibliographic databases. The major program, refer, is used to automatically retrieve and format the references based on document citations.
USD:27 Some Applications of Inverted Indexes on the UNIX System
Mike Lesk's paper describes the refer programs in a somewhat larger context.
USD:28 BIB - A Program for Formatting Bibliographies
This is an alternative to refer for expanding citations in documents.
USD:29 Writing Tools - The STYLE and DICTION Programs
These are programs which can help you understand and improve your writing style.


USD:30 A Guide to the Dungeons of Doom (Postscript, PDF, ASCII)
An introduction to the popular game of rogue, a fantasy game which is one of the biggest known users of VAX cycles.
USD:31 Star Trek (Postscript, PDF, ASCII)
You are the Captain of the Starship Enterprise. Wipe out the Klingons and save the Federation.


KAME Project is a joint effort of seven companies in Japan to provide a free IPv6 and IPsec (for both IPv4 and IPv6) stack for BSD variants to the world.
Implementation (ASCII)


© 1995-1997 by FreeBSD Inc. All rights reserved.
URL: http://docs.FreeBSD.ORG/44doc/
E-Mail: www@FreeBSD.org
$Date: 2000/12/29 12:19:03 $