Bibliography
This section lists commercial books and articles that
provide details on specific issues of interest to users of the REAL/IX
system. This list is provided for reference only; it is not comprehensive
and MODCOMP does not guarantee the accuracy of any of the items listed.
MODCOMP Publications
Furht, Borko, John Parker, Dan Grostick, Hagai Ohel,
Tom Kapish, Ted Zuccarelli, Orlando Perdomo, "Performance of
REAL/IX - Preemptive Real Time UNIX." Operating Systems Review,
October 1989 (23:4).
Grostick, Dan, "How Determinism Can Be Achieved
with UNIX." Computer Technology Review, November 1989,
p. 14.
Rabbat, Guy, Borko Furht, and Ronald Kibler, "Three-Dimensional
Computer Performance." Computer, vol. 21, July 1988, pp.
59-60. Discusses the theory of three-dimensional performance measurements
for realtime systems.
Industry Standards Publications
American National Standards Institute, Inc. (ANSI),
American National Standard for Information Systems - Programming
Language C, ANSI Std. X3.159-1989. Specifies the form and establishes
the interpretation of programs expressed in the programming language
C.
The Institute of Electrical and Electronics Engineers,
Inc. (IEEE), IEEE Standard Portable Operating System Interface
for Computer Environments (POSIX), IEEE Std. 1003.1-1988. Defines
the standard operating system interface and environment to support
application portability at the source code level.
Commands and Utilities
Darwin, Ian F., Checking C Programs with lint.
(Nutshell Handbooks: 1988). Provides a description of the lint
utility and examples of linted code. Describes approaches to
dealing with the information provided by executing the lint utility.
Sage, Russell G., The Waite Group, Tricks of the
UNIX Masters. (Howard W. Sams). Discusses the UNIX environment,
file and task management, devices and file systems, communications,
security.
Todino, Grace and John Strang, Learning the UNIX
Operating System. (Nutshell Handbooks: 1987). Gives basic
information on using the basic system.
UNIX in a Nutshell (for System V). (Nutshell Handbooks:
1987). Introduces UNIX system commands, shell and pattern-matching
syntax, editors, text formatter commands, make, and sccs.
The "New to UNIX" column in UNIX World
offers discussions on basic topics required to fully utilize the
system's capabilities.
Working in the Shell
Bolsky, Morris I. and David G. Korn, The Kornshell
Command and Programming Language. (Prentice-Hall: 1988). Describes
and gives instructions for using the Korn shell (/bin/ksh).
Hansen, Augie, "An Introduction to Regular Expressions."
UNIX World, March 1989, pp. 127-133. Regular expressions are
string specifiers used with the UNIX system shells and editors as
well as utilities such as awk and the grep family. This
article discusses ways of using ambiguous expressions to find text
in files.
Hansen, Augie, "Using Text Patterns." UNIX
World, April 1989, pp. 119-125. Discusses advanced ways of using
regular expressions with the vi editor.
Hansen, Augie, "Lost and Found." UNIX World,
August 1989, pp. 127-133. Discusses commands that can help you find
a file if you have forgotten its name or directory location.
Levitt, Jason, "The Korn Shell: an Emerging Standard."
UNIX World, September 1986, pp. 74-81. Describes the Korn Shell
which combines the functionality of the Bourne Shell programming language
and the C Shell user interaction mechanisms.
Sage, Russ, "The Art of UNIX Tooling." UNIX
World, December 1987, pp. 91-99. Using shell scripts to combine
regular system commands, add capabilities to utilities and create
tools.
Editors and Text Formatters
AT&T, UNIX System V Documentor's Workbench Reference
Manual. (Prentice-Hall: 1989). Provides reference information
and tutorials for the nroff and troff macro packages
and preprocessors.
AT&T, UNIX System V Documentor's Workbench User's
Guide. (Prentice-Hall: 1989). Provides technical discussions and
command summaries, in manual page format, for the nroff and
troff macro packages and preprocessors.
Barron, David and Mike Rees, Text Processing and
Typesetting with UNIX. (Addison-Wesley Publishing Company, Inc.:
1987). Introduces the UNIX text formatting utilities nroff
and troff, and the macro packages -mm and -ms and
the related preprocessors.
Dougherty, Dale and Tim O'Reilly, UNIX Text Processing.
(Howard Sams: 1987). Introduces the UNIX system facilities for text
processing and how to use general tools such as sed, awk,
and make to manage book composition and production.
Gehani, Narain, Document Formatting and Typesetting
on the UNIX System. (Silicon Press: 1984). Gives detailed instructions
and reference materials on using the troff text formatter with
mm macros and related commands such as the table and picture
preprocessors and tools for checking the text and macros.
Hansen, Augie, "Get Raw with Batch Editing."
UNIX World, April 1990, pp. 137-142. Explains how to use
ed and sed to edit files in shell scripts.
Lamb, Linda, Learning the vi Editor. (Nutshell
Handbooks: 1987). A guide to using the vi screen editor, including
basic information for novices and a discussion of the advanced features
that are available.
Roddy, Kevin P., UNIX NROFF/TROFF: A USER'S GUIDE.
(CBS College Publishing: 1987). Combines tutorial and reference manual
material for the UNIX text formatting utilities nroff and troff,
and the macro packages -me and -ms.
Vaughan, Elizabeth. "SED: Streamlining Your Editing."
UNIX World, April 1987, pp. 77-83.
Zintz, Walter, "vi Tips for Power Users."
UNIX World, April 1990, pp. 109-114. Discusses how to use the
abbreviation tools in vi to execute a complex command sequence
with one command.
Electronic Mail and Communication
Utilities
Hansen, Augie, "Understanding E-Mail." UNIX
World, January 1990, pp. 155-161. Gives basic instructions for
using the standard electronic mail facilities.
Todino, Grace and Dale Dougherty, Using uucp and
Usenet. (Nutshell Handbooks: 1987). Shows how to communicate with
UNIX and other systems using uucp, cu, and tip,
how to find out the status of a file transfer request, and how to
read and post articles to the Usenet (Netnews).
Programming Topics
Bent, Wilson H. Jr., "Compiling Stubborn Programs."
UNIX World, November 1987, pp. 113-122. Describes ways to convince,
coerce, or deceive stubborn software for the purpose of compiling.
Bentley, Jon Louis, Writing Efficient Programs.
(Prentice-Hall: 1982). This book discusses a number of programming
practices that improve the efficiency of programs. While based on
Pascal, the concepts are applicable to all high-level programming
languages.
Kernighan, Brian W. and Rob Pike, The UNIX Programming
Environment. (Prentice-Hall: 1984). Introduces the fundamental
elements of the traditional UNIX programming environment, including
the file system, the shell and shell programming, filters, using standard
I/O, and system calls. It also includes chapters on program development
and document preparation.
Knuth, Donald E., The Art of Computer Programming.
Vol. 1, Fundamental Algorithms. (Addison-Wesley: 1975). Introduces
the fundamental concepts and information structures of algorithms
applicable to computer programming. Analyzes algorithms used for linking
and allocating processes, lists, and trees.
Lapin, J.E., Portable C and UNIX System Programming.
(Prentice-Hall: 1987). This book gives a history of the UNIX operating
system and summarizes the major differences between the different
versions, discusses the general issues involved in portability, and
gives specific suggestions for writing portable C code.
Swartz, Ray, "Creating Database Tools." ,
July 1988, pp. 131-134. Discusses how to create data bases that can
be easily accessed by standard system tools.
Swartz, Ray, "Reading and Writing Fixed-Length
Records." UNIX World, August 1988, pp. 121-127. Discusses
how to create files that use fixed-length records, required for many
data files, within the context of the free-form files used on UNIX
operating systems.
In addition, the "Wizard's Grabbag" column
in UNIX World offers interesting discussions on a variety of
programming topics.
Project Management
Arthur, Jay, "Programmer Productivity and the UNIX
System." UNIX World, July 1986, pp. 26-33. Describes how
to increase programmer productivity using the UNIX tools.
Harter, Richard, "Version Management and Change
Control." UNIX World, June 1989, pp. 95-102. Discusses
the underlying concepts of change control systems such as SCCS.
Talbott, Steve, "Managing Projects With make."
UNIX World, September 1987, pp. 79-87. Describes how to maintain
and update files using the make command.
curses
Rochkind, Marc J., Advanced C Programming for Displays.
(Prentice-Hall: 1988). Presents step-by-step analyses of characters
and their attributes, the physical screen and keyboard, windows, and
virtual screens and keyboards, plus samples of code that uses curses
to generate formatted screens.
Strang, John, Programming with Curses. (Nutshell
Handbooks: 1986). Gives basic information on using the curses library.
Wood, Patrick, "Programming with curses."
UNIX World, March 1989, pp. 97-110; April 1989, pp. 91-101.
Discusses the curses library for creating screen-oriented programs
and gives examples of programs that use it. Part I discusses basic
input and output functions; Part II introduces windows and pads.
awk
Aho, Alfred V, Brian W. Kernighan, and Peter J. Weinberger,
The AWK Programming Language. (Prentice-Hall: 1988). Written
by the developers of the awk language, this book describes
the functionality and gives guidelines for using this versatile tool.Dougherty,
Dale, "AWK: A Not So Awkward Tool." UNIX World, May 1987,
pp. 83-89; June 1987, pp. 81-89; July 1987, pp. 83-88. A three-part
series that describes the awk command for processing lists
and tables, developing applications, and acronym list manipulation.
Using the Internet Protocol Software
Romkey, John, "Networking with BSD-Style Sockets."
UNIX World, July 1989: pp. 95-108; August 1989: pp. 97-108.
Part I gives an overview of the TCP/IP network facilities and sockets;
Part II gives an example of a TCP/IP application that uses sockets.
Comer, Douglas, Internetworking with TCP/IP - Principles,
Protocols, and Architecture. (Prentice-Hall: 1988), pp. 263-289.
REAL/VU Programming
Nye, Adrian, "The X Window System Protocol."
UNIX World, September 1989, pp. 105-113. Describes the protocol
used by the REAL/VU X software.
Wood, Patrick, "Introduction to Xlib Programming,"
UNIX World, October 1989: pp. 119-129; November 1989:. Examines
the low-level C language programming interface to the REAL/VU X product
with many examples of programs that use Xlib.
Young, Doug, "Programming with the X Toolkit."
UNIX World, January 1990: pp. 123-136; Explains the capabilities
of the X Toolkit that is included in the REAL/VU X product.
Kernel Level Programming
Bach, Maurice J. and Steven J. Buroff, "Multiprocessor
UNIX Operating Systems," AT&T Bell Laboratories Technical
Journal, 63, No. 8 (October 1984), pp. 151-167. This is the paper
in which Bach and Buroff introduce a kernel semaphore mechanism used
to make a multiprocessor version of AT&T's UNIX System V.
Bach, Maurice J., The Design of the UNIX Operating
System. (Prentice-Hall, 1986). A technical discussion of the internals
of the UNIX System V operating system.
Dijkstra, E. W., "Solution of a Problem in Concurrent
Programming Control," CACM, 8, No.9 (September 1965), pp. 569-578.
Dijkstra, E. W., "Cooperating Sequential Processes,"Programming
Languages, F. Genuys, ed. (New York: Academic Press: 1968) pp.
43-112.
Pajari, George, "Writing UNIX Device Drivers."
UNIX World, January 1988 pp. 91-101; February 1988, pp. 99-105;
March 1988, pp. 89-95. A three-part article describing: a RAMdisk
driver, an interrupt-driven terminal device driver, and methods of
debugging drivers and handling interrupts, respectively.
Patterson, David and John Hennessy, Computer Architecture:
A Quantitative Approach. (Morgan Kaufmann: 1990). Provides good
general background on architectural features such as caches, busses,
and interrupts. Kernel developers who need to improve their understanding
of such topics may find this interesting.
C Language
Curry, David A., Learning the UNIX Operating System-A
Guide to System Programming. (Nutshell Handbooks: 1989). Describes
nearly all system calls and library routines provided by the operating
system. A number of examples and "real world" applications
are provided for study. The main focus of this book is on the 4.2BSD
and 4.3BSD releases of the UNIX operating system. Where serious differences
exist, both the Berkeley and AT&T System V environments are described.
Kernighan, Brian W. and Dennis M. Ritchie, , first edition.
(Prentice-Hall: 1978). This is the original definition of the C programming
language. C16/C32 are based on this version of C.
Moore, F. Richard, Programming in C with a Bit of
UNIX. (Prentice-Hall: 1985). Provides an introduction to programming
in C on the UNIX operating system for people with minimum background
in computers and programming. This book was originally written as
a chapter in a textbook on computer music, and has particular appeal
to users coming to computers from a humanities background.
Plum, Thomas, Learning to Program in C. (Prentice-Hall:
1983). Provides an introduction to (or refresher on) the C programming
language.
Plum, Thomas, C Programming Guidelines. (Plum
Hall: 1984). Organized in reference manual fashion, this book suggests
programming practices that lead to C code that is can be maintained
and ported reasonably.
Tondo, Clovis L. and Scott E Gimpel, The C Answer
Book. (Prentice-Hall: 1985). This book gives solutions to the
exercises in the Kernighan/Ritchie book above.
Administrative Topics
Birns, Peter and David Lukas, "Automating System
Processes Using cron and at." UNIX World, April 1988,
pp. 101-107. Describes the use of the cron and at UNIX
utilities that time events and make administration easier.
Fiedler, David and Bruce H. Hunter,UNIX System Administration.
(Hayden Books: 1987). Provides instructions and guidelines for administering
any of the UNIX operating systems.
O'Reilly, Tim and Grace Todino, Managing uucp and
Usenet. (Nutshell Handbooks: 198?). Provides detailed information
on how to set up UUCP, including information on RS-232 cabling, talking
with modems, installing and administering Netnews facilities.
Strang, John, Tim O'Reilly, and Linda Mui, termcap
and terminfo. (Nutshell Handbooks: 1988). Describes the syntax
and capabilities of the terminfo database (and the related
termcap database) used to support a wide variety of terminals
with standard UNIX system drivers. The new edition of this book includes
information on converting between termcap and terminfo.
Wood, Patrick, "Writing and Installing terminfo
and termcap Entries." UNIX World, June 1988, pp. 133-139.
Provides an introduction to setting up terminfo entries.