UUNNIIXX PPrrooggrraammmmeerr''ss SSuupppplleemmeennttaarryy DDooccuummeennttss ((PPSSDD)) 44..44 BBeerrkkeelleeyy SSooffttwwaarree DDiissttrriibbuuttiioonn June, 1993 This volume contains documents which supplement the manual pages in _T_h_e _U_N_I_X_(_R_) _P_r_o_g_r_a_m_m_e_r_'_s _R_e_f_e_r_e_n_c_e _M_a_n_u_a_l for the FreeBSD system as distributed by the FreeBSD Pro- ject. Documents ``(encumbered)'' are not distributed for legal reasons. DDooccuummeennttss ooff HHiissttoorriiccaall IInntteerreesstt The Unix Time-Sharing System PSD:1 Dennis Ritchie and Ken Thompson's original paper about UNIX, reprinted from Communications of the ACM. (encumbered) Unix Implementation PSD:2 Ken Thompson's description of the implementation of the Version 7 kernel and file system. (encum- bered) The Unix I/O System PSD:3 Dennis Ritchie's overview of the I/O System of Version 7; still helpful for those writing device drivers. (encumbered) Unix Programming - Second Edition PSD:4 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'', Pren- tice-Hall, 1984 and especially by the Programmer Reference Manual section 2 (system calls) and 3 (library routines). (encumbered) Berkeley Software Architecture Manual (4.4 Edition) PSD:5 A concise and terse description of the system call interface provided in Berkeley Unix, as revised PSD Contents for 4.4BSD. This will never be a best seller. LLaanngguuaaggeess iinn ccoommmmoonn uussee The C Programming Language - Reference Manual PSD:6 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) Berkeley Pascal User's Manual PSD:7 An implementation of this language popular for learning to program. (Not provided in FreeBSD.) A Portable Fortran 77 Compiler PSD:8 A revised version of the document which originally appeared in Volume 2b of the Bell Labs documenta- tion; this version reflects the work done at Berkeley. (encumbered) Introduction to the f77 I/O Library PSD:9 A description of the revised input/output library for Fortran 77, reflecting work carried out at Berkeley. (Not provided in FreeBSD.) PPrrooggrraammmmiinngg TToooollss Debugging with GDB: The GNU Source-Level Debugger PSD:10 How to debug programs using the source level _g_d_b debugger (or how to debug programs without having to know much about machine language). (A TeXinfo version is provided separately.) A Tutorial Introduction to ADB PSD:11 How to debug programs using the assembly-language level _a_d_b debugger. (encumbered) Make - A Program for Maintaining Computer Programs PSD:12 PSD Contents Indispensable tool for making sure large programs are properly compiled with minimal effort. An Introduction to the Revision Control System PSD:13 RCS is a user-contributed tool for working together with other people without stepping on each other's toes. An alternative to _s_c_c_s for controlling software changes. An Introduction to the Source Code Control System PSD:14 A useful introductory article for those users with installations licensed for SCCS. (encumbered) YACC: Yet Another Compiler-Compiler PSD:15 Converts a BNF specification of a language and semantic actions written in C into a compiler for that language. (encumbered) LEX - A Lexical Analyzer Generator PSD:16 Creates a recognizer for a set of regular expres- sions: each regular expression can be followed by arbitrary C code to be executed upon finding the regular expression. (encumbered) The M4 Macro Processor PSD:17 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 PSD:18 A program to show the call graph and execution time of a program. Indispensable aid for improv- ing the running time of almost everything. PPrrooggrraammmmiinngg LLiibbrraarriieess Screen Updating and Cursor Movement Optimization PSD:19 Describes the _c_u_r_s_e_s package, an aid for writing screen-oriented, terminal-independent programs. PSD Contents GGeenneerraall RReeffeerreennccee An Introductory 4.4BSD Interprocess Communication TutorPiSaDl:20 How to write programs that use the Interprocess Communication Facilities of 4.4BSD. An Advanced 4.4BSD Interprocess Communication TutorialPSD:21 The reference document (with some examples) for the Interprocess Communication Facilities of 4.4BSD. RPCGEN Programming Guide PSD:22 Manual for the ONC RPC stub-generating program, provided by Sun Microsystems. Remote Procedure Call Programming Guide PSD:23 A tutorial introduction to programming the ONC RPC system, provided by Sun Microsystems. External Data Representation: Sun Technical Notes PSD:24 Technical details about the design of the XDR com- ponent of ONC RPC, provided by Sun Microsystems. External Data Representation Standard: Protocol SpecifiPcSaDt:i2o5n The Internet RFC specifying ONC XDR, provided by Sun Microsystems. Remote Procedure Calls: Protocol Specification PSD:26 The Internet RFC specifying ONC RPC, RFC 1050, as provided by Sun Microsystems. Network File System: Version 2 Protocol Specification PSD:27 The Internet RFC specifying NFS, as provided by Sun Microsystems. Note that the NFS-compatible filesystem itself, while compliant with this spec- ification, was not provided by Sun. PSD Contents CVS II: Parallelizing Software Development PSD:28 CVS (Concurrent Versions System) is a front end to the RCS revision control system which extends the notion of revision control from a col- lection of files in a single directory to a hier- archical collection of directories each contain- ing revision controlled files.