Aho, Alfred V., Brian W. Kernighan, and Peter J. Weinberger.
The AWK Programming Language. Reading, MA: Prentice-Hall, 1988. Written by the developers of the awk(C) language, this book describes awk's functionality and gives guidelines for using this versatile tool.

Arthur, Jay.
``Programmer Productivity and the Unix [sic] System.'' UNIX/World (July 1986): 26-33. Describes how to increase programmer productivity using the UNIX tools.

AT&T Bell Laboratories.
UNIX System Readings and Applications. Englewood Cliffs, NJ: Prentice-Hall, 1987. Reprints of the July-August 1978 and October 1984 issues of the AT&T Bell Laboratories Technical Journal containing articles about the UNIX operating system by early developers. These articles help the user to understand the historical development of the UNIX operating system.

STREAMS Primer and STREAMS Programmer's Guide. Englewood Cliffs, NJ: Prentice-Hall, 1987. AT&T's original documents which explain the STREAMS interface. The UNIX System V/386 Release 3.2 implementation is identical to the AT&T implementation, although AT&T supports some non-STREAM kernel functions that are not supported on UNIX System V/386 Release 3.2.

Bach, Maurice J.
The Design of the UNIX Operating System. Englewood Cliffs, NJ: Prentice-Hall, 1986. A technical discussion of the internals of the UNIX System V operating system, written shortly before System V, Release 3. Somewhat outdated, but still very useful.

Banahan, Mike and Andy Rutter.
The UNIX Book. New York, NY: John Wiley and Sons, 1983. A general guide to the features and capabilities of the UNIX operating system.

Bent, Wilson H. Jr.
``Compiling Stubborn Programs.'' UNIX/World (November 1987): 113-122. Describes strategies for getting difficult software to compile.

Bentley, Jon Louis.
Programming Pearls. Reading, MA: Addison-Wesley, 1986.

More Programming Pearls: Confessions of a Coder. Reading, MA: Addison-Wesley, 1988.

Writing Efficient Programs. Englewood Cliffs, NJ: Prentice-Hall, 1982. Discusses numerous programming practices that improve the efficiency of programs. While based on PASCAL, the concepts are applicable to all high-level programming languages.

Bolsky, Morris I. and David G. Korn.
The Korn Shell Command and Programming Language. Englewood Cliffs, NJ: Prentice-Hall, 1989. This book is the specification of the Korn shell language and a reference handbook for ksh, the program that implements the Korn shell language. Contains a tutorial for using ksh as an interactive command language and as a programming language. Includes examples illustrating the features of ksh, and many chapters have exercises. Also contains a quick reference summary of the Korn shell language.

Bourne, S. R.
The UNIX System. Reading, MA: Addison-Wesley, 1982.

Christian, Kaare.
The UNIX Operating System. New York, NY: Wiley-Interscience, 1983.

Date, C.J.
An Introduction to Database Systems, Vol. 1, 5th printing. Reading, MA: Addison-Wesley Pub. Co., 1990. Provides an introduction to database theory, design, and implementation.

Dougherty, Dale,
``AWK: A Not So Awkward Tool.'' UNIX/World (May 1987): 83-89; (June 1987): 81-89; (July 1987): 83-88. A three-part series that describes the awk(C) command for processing lists and tables, developing applications, and acronym list manipulation.

Dowd, Kevin.
High Performance Computing. Sebastopol, CA: O'Reilly & Associates, 1993. Discusses the basics of modern workstation architecture, understanding and writing performance benchmarks, and methods for improving performance of critical applications.

Ellis, M. and Bjarne Stroustrup.
The Annotated C++ Reference Manual. Reading, MA: Addison-Wesley, 1990.

Feit, Sidnie.
TCP/IP: Architecture, Protocols, and Implementation. New York, NY: McGraw-Hill, 1992. Explains how to implement a TCP/IP network. Includes detailed instructions, many examples, and reference information. Covers core protocols plus additional services and products: NFS, NIS, BIND, ARP, RIP, KERBEROS, SNMP, program interfaces. How to invoke network services, plan your name/address structure, troubleshoot network problems, connect with bridges and routers.

Gauthier, R.
Using the UNIX System. Reston, VA: Reston Publishing Company, 1981.

Gircys, Gintaras R.
Understanding and Using COFF. (Nutshell Series). Sebastopol, CA: O'Reilly & Associates, 1988.

Gofton, Peter W.
Mastering UNIX Serial Communications. San Francisco, CA: Sybex, 1990. An introduction to serial communication facilities on SCO XENIX and UNIX systems. Includes a section for programmers with chapters entitled ``System Calls to Access Serial Devices'' and ``Programming Tips and Techniques.''

Goodheart, Berny.
UNIX Curses Explained. Englewood Cliffs, NJ: Prentice-Hall, 1991.

Harbison, Samuel P. and Guy L. Steele.
C: A Reference Manual, second edition. Englewood Cliffs, NJ: Prentice-Hall, 1987. An explanation of the C language. Includes an index and cross-references within the text.

Intel486(TM) Microprocessor Hardware Reference Manual. Describes the 486 architecture for use by hardware designers and system programmers.

Intel486(TM) Microprocessor Family, Programmer's Reference Manual. 1992. Provides information about the 486 architecture for applications and system programmers. Includes information about the instruction set, the FPU, and compatibility with other Intel microprocessors.

Kernighan, Brian W. and P.J. Plauger.
Software Tools. Reading, MA: Addison-Wesley, 1976.

The Elements of Programming Style. New York, NY: McGraw Hill, 1978.

Kernighan, Brian W. and Dennis M. Ritchie.
The C Programming Language, second edition. Englewood Cliffs, NJ: Prentice-Hall, 1988. The first edition of this book is the definitive definition of the C programming language. The second edition describes ANSI version of the C programming language, which is provided with Microsoft's 6.0 C compiler that is called by the cc(CP) command in the 3.2.3 Development System software (see Tondo for a related book).

Kernighan, Brian W. and Rob Pike.
The UNIX Programming Environment. Englewood Cliffs, NJ: Prentice-Hall, 1984. Introduces the fundamental elements of the traditional UNIX programming environment, including the filesystem, the shell and shell programming, filters, using standard I/O, and system calls. It also includes chapters on program development and document preparation. This is one of the classic books about the programming philosophy for UNIX operating systems, although it is now somewhat dated. When it was published, there was only one shell available, networking and graphical user interfaces were not an issue, and many other features that have become standard were not yet included.

Kettle, Peter and Steve Statler,
Writing Device Drivers for SCO UNIX: A Practical Approach. Addison-Wesley, Summer 1992. Discusses how to write device drivers for UNIX System V version 4, including carefully graded exercises for writing a simple line discipline a real STREAMS driver, and other commonly-requested driver problems. The book includes answers to the exercises that are targeted explicitly to the Version 4 product, as well as background information about the kernel in the Intel 80x86 processors.

Koenig, Andrew.
C Traps and Pitfalls. Reading, MA: Addison-Wesley, 1988.

Lapin, J.E.
Portable C and UNIX Programming. UNIX Prentice-Hall, 1987. Gives a history of UNIX operating systems and summarizes the major differences between the different versions. Also discusses the general issues involved in portability and gives specific suggestions for writing portable C code. Written before System V, Release 4, and SUNOS were available, the general information covered is useful.

Levine, John.
lex & yacc. Sebastopol, CA: O'Reilly & Associates, Second edition, 1992. Shows programmers how to use the lex(CP) and yacc(CP) utilities in program development. The second edition contains revised tutorial sections for novice users and reference sections for advanced users.

Lewine, Donald.
POSIX Programming Manual. Sebastopol, CA: O'Reilly and Associates, 1991. This book contains two separate parts: a programming guide and a reference guide that present information about the POSIX standard for application programmers. The programming guide section presents an overview of developing POSIX applications and is also appropriate for programmers who are new to the UNIX operating system and need to learn the application interface. The reference guide lists all POSIX library functions in alphabetical order, all data structures and their members, all error codes, and standard header files and the information they define.

Lomuto, Ann Nicols and Nico Lomuto.
A UNIX Primer. Englewood Cliffs, NJ: Prentice-Hall, 1983. Beginner's guide to the UNIX Operating System.

Mason, Tony and Doug Brown.
lex & yacc (Nutshell Series). Sebastopol, CA: O'Reilly & Associates, 1990.

McGilton and Morgan.
Introducing the UNIX System. New York, NY: McGraw-Hill, 1983.

Miller, Chris D. F. and R. D. Boyle.
UNIX for Users. Rockville, MD: Blackwell Scientific Publications, 1984.

O'Reilly, Tim.
X Toolkit Intrinsics Reference Manual, Volume 5. (X Window Systems). Sebastopol, CA: O'Reilly & Associates, 1990.

Pajari, George.
Writing UNIX Device Drivers. Addison-Wesley, 1991. Provides details and a hands-on, nuts and bolts approach to writing drivers for SCO operating systems. The book includes a sample SCSI disk driver, information about intelligent serial I/O adapters, STREAMS for token ring, and so forth. A diskette of sample drivers and exercises is available separately.

Plum, Thomas, and Jim Brodie.
Efficient C. Cardiff, NJ: Prentice-Hall, 1985.

Learning to Program in C. Cardiff, NJ: Prentice-Hall, 1983. Provides an introduction to (or refresher on) the C programming language.

C Programming Guidelines. Englewood Cliffs, NJ: Prentice-Hall, 1984. Organized in reference manual fashion, this book suggests programming practices that lead to C code that is reasonably portable and maintainable.

Rao, Bindu R.
C++ and the OOP Paradigm. New York, NY: McGraw-Hill, 1992. Introduces C++ and object oriented programming with examples in C++.

Rochkind, Marc.
Advanced UNIX Programming. Englewood Cliffs, NJ: Prentice-Hall, 1985. Provides information and examples for using the classic UNIX system calls. Many system calls have been added since this book was published, but this introduces the basics. This book is especially useful if you are dealing with XENIX programs; it contains information about features such as XENIX semaphores and XENIX file locking. The Stevens and Lewine books listed in this bibliography are more up-to-date general UNIX programming guides.

Rosenberry, Ward, David Kenney, and Gerry Fisher,
Understanding DCE. Sebastopol, CA: O'Reilly & Associates, 1992. A technical and conceptual overview of OSF's Distributed Computing Environment (DCE) for programmers and technical managers, marketing, and sales people.

Schreiner, Axel T. and H. George Friedman, Jr.
Introduction to Compiler Construction with UNIX. Englewood Cliffs, NJ: Prentice-Hall, 1985. Describes lex(CP) and yacc(CP).

Directory. A listing of add-on software and hardware products available for SCO systems.

Programming Tools Guide. Provides generally useful information about the programming and debugging tools and their use in developing and maintaining software, as well as tracking down and eradicating problems in C and assembly language programs. The C compiler, its use in practice, explanations of compiler error messages, and implementation-defined behavior of the ANSI compiler are all presented. In addition, the book includes information about using dbXtra(CP) to debug C and C++ programs in a Motif-based windowing environment. Shipped as part of the Development System documentation set.

Developer's Topics. A collection of technical papers about topics of interest to users of the Development System. Many of these papers include extensive examples that illustrate SCO features added to the porting base.

Programmer's Reference Manual. A set that includes two volumes of manual pages for the UNIX Development System, including sections (CDMT), (CP), (FP), and (S), a volume for the X Window libraries, one volume for the Motif library, and manual pages for special networking libraries. The printed books are shipped as part of the Development System documentation set; all man pages are available online through the man(C) command and the DocView documentation server.

Character User Interfaces Guide. Introduces the facilities that are available for developing user interfaces and gives detailed instructions for using curses(S), the Extended Terminal Interface (ETI), and writing user interfaces that can be run on ASCII terminals. This book includes numerous examples of curses programs. Shipped as part of the Development System documentation set.

Schwaderer, W. D.
C Programmer's Guide to NetBIOS. Howard W. Sams and Company, 1988.

Shirley, John.
Guide to Writing DCE Applications. Sebastopol, CA: O'Reilly & Associates, 1992. A hands-on programming guide to OSF's Distributed Computing Environment (DCE) for first-time DCE programmers. Designed to help new DCE users make the transition from conventional, nondistributed applications programming to distributed DCE programming. Includes programming examples.

Sobell, Mark G.
A Practical Guide to UNIX System V. The Benjamin/Cummings Publishing Company, Inc 1985. Describes the UNIX operating system and Bourne shell programming.

Stevens, W. Richard.
Advanced Programming in the UNIX Environment. Reading, MA 1992. A general purpose programming guide that presents information about using the system calls and C library routines that are common to most UNIX systems. The book provides information about the features that are specified in the ANSI C standard, the XPG standard, and the POSIX 1003.1 standard, with special emphasis on the USL UNIX System V, Release 4 and the 4.4 BSD release. The book includes a large number of code examples, including code for a database library, a program that communicates with a PostScript printer, a modem dialer, and pseudo terminals. Each chapter ends with a set of exercises to test and reinforce the knowledge learned in the chapter; Appendix C contains solutions to these exercises.

UNIX Network Programming. Englewood Cliffs, NJ: Prentice-Hall, 1990. Describes how to write applications that run over the various network protocols supported on UNIX operating systems. In addition to basic networking concepts, contains many code examples illustrating how to write applications that use STREAMS, sockets, Interprocess Communications facilities, Transport Level Interface, Internet, and File Transfer Protocol.

Stroustrup, Bjarne.
The C++ Programming Language. Reading, MA: Addison-Wesley, 1987.

Taylor, Dave.
Global Software. Discusses the issues in creating software for the growing international market including cultural and linguistic differences affecting the user interface to monetary, time, and date standards. The book provides information about planning and programming (with an extensive collection of actual program examples) as well as about marketing and presentation. Design errors and common pitfalls are pointed out to help readers avoid the same mistakes. The author also discusses export restrictions and other aspects of the politics surrounding international distribution. A clear and understandable explanation of what types of encryption software can and cannot be legally distributed outside of the United States is an added bonus to this work.

Terplan, Kornel.
Effective Management of Local Area Networks. New York, NY: McGraw-Hill, 1992. Provides information about network management strategies, standardization, tools, and products for network designers, LAN operators, and people who select components and technology for LAN's, MAN's, and WAN's. Includes information about solving problems, automating database support, and maintaining uninterrupted operations.

Tondo, Clovis L. and Scott E. Gimpel.
The C Answer Book, second edition. Englewood Cliffs, NJ: Prentice-Hall, 1985. Gives solutions to the exercises in the Kernighan/Ritchie C Programming Language book. The 1985 edition accompanies the 1978 Kernighan/Ritchie.

X/Open Company Limited,
X/Open Portability Guide. Englewood Cliffs, NJ: Prentice-Hall, 1989.

Volume 1:
XSI Commands and Utilities

Volume 2:
XSI System Interface and Headers

Volume 3:
XSI Supplementary Definitions

In addition to the supplementary definitions (a basic glossary of terms used throughout the XPG), defines methods for implementing internationalization, the curses(S) interface, and source code transfer methods.

Volume 4:
Programming Languages

Volume 5:
Data Management

Volume 6:
Window Management

Volume 7:
Networking Services

Young, Douglas A.
The X Window System®: Programming and Applications with Xt, OSF/Motif® Edition. Englewood Cliffs, NJ: Prentice-Hall, 1990. Describes the concepts of the X Window System and OSF/Motif, and describes how to write application programs using these libraries. Includes numerous code examples to illustrate the principles discussed.

Weiner, Richard S. and Lewis Pinson,
Introduction to Object Oriented Programming and C++. Reading, MA: Addison-Wesley, 1988.

Next topic: Periodicals
Previous topic: Bibliography

© 2003 Caldera International, Inc. All rights reserved.
SCO OpenServer Release 5.0.7 -- 11 February 2003