4.4BSD Programmer's Supplementary Documents (PSD)
Documents of Historical Interest
The Unix Time-Sharing System
Dennis Ritchie and Ken Thompson's original paper about UNIX, reprinted
from Communications of the ACM.
Ken Thompson's description of the implementation of the Version 7
kernel and file system.
The Unix I/O System
Dennis Ritchie's overview of the I/O System of Version 7; still helpful for
those writing device drivers.
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).
Berkeley Software Architecture Manual (4.4 Edition)
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
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.
Berkeley Pascal User's Manual
An implementation of this language popular for learning to program.
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.
Introduction to the f77 I/O Library
A description of the revised input/output library for Fortran 77,
reflecting work carried out at Berkeley.
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 Tutorial Introduction to ADB
How to debug programs using the assembly-language level adb debugger.
Make - A Program for Maintaining Computer Programs
Indispensable tool for making sure large programs are properly
compiled with minimal effort.
An Introduction to the Revision Control System
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.
An Introduction to the Source Code Control System
A useful introductory article for those users with
installations licensed for SCCS.
YACC: Yet Another Compiler-Compiler
Converts a BNF specification of a language and semantic actions
written in C into a compiler for that language.
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.
The M4 Macro Processor
M4 is a macro processor useful in its own right and as a
front-end for C, Ratfor, and Cobol.
gprof: a Call Graph Execution Profiler
A program to show the call graph and execution time of a program.
Indispensable aid for improving the running time of almost everything.
Screen Updating and Cursor Movement Optimization
Describes the curses package, an aid for writing screen-oriented,
An Introductory 4.4BSD Interprocess Communication Tutorial
How to write programs that use the Interprocess Communication Facilities
An Advanced 4.4BSD Interprocess Communication Tutorial
The reference document (with some examples) for the Interprocess Communication
Facilities of 4.4BSD.