Advanced Programming in the Unix Environment
Encyclopedia
Advanced Programming in the Unix Environment is a computer programming
Computer programming
Computer programming is the process of designing, writing, testing, debugging, and maintaining the source code of computer programs. This source code is written in one or more programming languages. The purpose of programming is to create a program that performs specific operations or exhibits a...

 book by W. Richard Stevens
W. Richard Stevens
William Richard Stevens was one of the most famous and widely acclaimed authors of UNIX and TCP/IP books.-Biography:...

 describing the application programming interface
Application programming interface
An application programming interface is a source code based specification intended to be used as an interface by software components to communicate with each other...

 of the UNIX
Unix
Unix is a multitasking, multi-user computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna...

 family of operating system
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...

s. The book illustrates UNIX application
Application software
Application software, also known as an application or an "app", is computer software designed to help the user to perform specific tasks. Examples include enterprise software, accounting software, office suites, graphics software and media players. Many application programs deal principally with...

 programming in the C programming language
C (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....

.

The first edition of the book was published by Addison-Wesley
Addison-Wesley
Addison-Wesley was a book publisher in Boston, Massachusetts, best known for its textbooks and computer literature. As well as publishing books, Addison-Wesley also distributed its technical titles through the Safari Books Online e-reference service...

 in 1992. It covered programming for the two popular families of the Unix operating system, the Berkeley Software Distribution
Berkeley Software Distribution
Berkeley Software Distribution is a Unix operating system derivative developed and distributed by the Computer Systems Research Group of the University of California, Berkeley, from 1977 to 1995...

 (in particular 4.3 BSD and 386BSD) and AT&T's UNIX System V
UNIX System V
Unix System V, commonly abbreviated SysV , is one of the first commercial versions of the Unix operating system. It was originally developed by American Telephone & Telegraph and first released in 1983. Four major versions of System V were released, termed Releases 1, 2, 3 and 4...

 (particularly SVR4). The book covers system call
System call
In computing, a system call is how a program requests a service from an operating system's kernel. This may include hardware related services , creating and executing new processes, and communicating with integral kernel services...

s for operations on single file descriptor
File descriptor
In computer programming, a file descriptor is an abstract indicator for accessing a file. The term is generally used in POSIX operating systems...

s, special calls like ioctl
Ioctl
In computing, ioctl, short for input/output control, is a system call for device-specific operations and other operations which cannot be expressed by regular system calls. It takes a parameter specifying a request code; the effect of a call depends completely on the request code. Request codes are...

 that operate on file descriptors, and operations on files and directories. It covers the stdio section of the C standard library
C standard library
The C Standard Library is the standard library for the programming language C, as specified in the ANSI C standard.. It was developed at the same time as the C POSIX library, which is basically a superset of it...

, and other parts of the library as needed. The several chapters concern the APIs that control processes
Process (computing)
In computing, a process is an instance of a computer program that is being executed. It contains the program code and its current activity. Depending on the operating system , a process may be made up of multiple threads of execution that execute instructions concurrently.A computer program is a...

, process group
Process group
In POSIX-conformant operating systems, a process group denotes a collection of one or more processes. Process groups are used to control the distribution of signals. A signal directed to a process group is delivered individually to all of the processes that are members of the group.Process groups...

s, daemons
Daemon (computing)
In Unix and other multitasking computer operating systems, a daemon is a computer program that runs as a background process, rather than being under the direct control of an interactive user...

, inter-process communication
Inter-process communication
In computing, Inter-process communication is a set of methods for the exchange of data among multiple threads in one or more processes. Processes may be running on one or more computers connected by a network. IPC methods are divided into methods for message passing, synchronization, shared...

, and signals
Signal (computing)
A signal is a limited form of inter-process communication used in Unix, Unix-like, and other POSIX-compliant operating systems. Essentially it is an asynchronous notification sent to a process in order to notify it of an event that occurred. When a signal is sent to a process, the operating system...

. One chapter is devoted to the Unix terminal control and another to the pseudo terminal
Pseudo terminal
In some operating systems, including Unix, a pseudo terminal is a pseudo-device pair that provides a text terminal interface without an associated device, such as a virtual console, computer terminal or serial port...

 concept and to libraries like termcap
Termcap
Termcap is a software library and database used on Unix-like computers. It enables programs to use display computer terminals in a device-independent manner, which greatly simplifies the process of writing portable text mode applications...

 and curses
Curses (programming library)
curses is a terminal control library for Unix-like systems, enabling the construction of text user interface applications.The name is a pun on the term “cursor optimization”. It is a library of functions that manage an application's display on character-cell terminals .- Overview :The curses API...

 that build atop it. Stevens adds three chapters giving more concrete examples of Unix programming: he implements a database library, communicates with a PostScript
PostScript
PostScript is a dynamically typed concatenative programming language created by John Warnock and Charles Geschke in 1982. It is best known for its use as a page description language in the electronic and desktop publishing areas. Adobe PostScript 3 is also the worldwide printing and imaging...

 printer, and with a modem. The book does not cover network programming: this is the subject of Stevens' 1990 book UNIX Network Programming and and his subsequent three-volume TCP/IP Illustrated
TCP/IP Illustrated
TCP/IP Illustrated is the name of a series of 3 books written by W. Richard Stevens. Unlike traditional books which explain the RFC specifications, Stevens goes into great detail using actual network traces to describe the protocol, hence its 'Illustrated' title.The first book in the series,...

.

Stevens died in 1999 leaving a second edition incomplete. With the increasing popularity and technical diversification of Unix derivatives, and largely compatible systems like the Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...

 environment, the code and coverage of Stevens' original became increasingly outdated. Working with Stevens' unfinished notes, Stephen A. Rago completed a second edition which Addison-Wesley published in 2005. This added support for FreeBSD
FreeBSD
FreeBSD is a free Unix-like operating system descended from AT&T UNIX via BSD UNIX. Although for legal reasons FreeBSD cannot be called “UNIX”, as the direct descendant of BSD UNIX , FreeBSD’s internals and system APIs are UNIX-compliant...

, Linux, Sun's Solaris, and Apple's Darwin
Darwin (operating system)
Darwin is an open source POSIX-compliant computer operating system released by Apple Inc. in 2000. It is composed of code developed by Apple, as well as code derived from NeXTSTEP, BSD, and other free software projects....

, and added coverage of multithreaded programming with POSIX Threads
POSIX Threads
POSIX Threads, usually referred to as Pthreads, is a POSIX standard for threads. The standard, POSIX.1c, Threads extensions , defines an API for creating and manipulating threads....

. The second edition features a foreword by Dennis Ritchie
Dennis Ritchie
Dennis MacAlistair Ritchie , was an American computer scientist who "helped shape the digital era." He created the C programming language and, with long-time colleague Ken Thompson, the UNIX operating system...

 and a Unix-themed Dilbert
Dilbert
Dilbert is an American comic strip written and drawn by Scott Adams. First published on April 16, 1989, Dilbert is known for its satirical office humor about a white-collar, micromanaged office featuring the engineer Dilbert as the title character...

strip by Scott Adams
Scott Adams
Scott Raymond Adams is the American creator of the Dilbert comic strip and the author of several nonfiction works of satire, commentary, business, and general speculation....

.

The book has been widely lauded as well-written, well-crafted, and comprehensive. It received a "hearty recommendation" in a Linux Journal
Linux Journal
Linux Journal is a monthly technology magazine published by Belltown Media, Inc. of Houston, Texas. The magazine focuses specifically on Linux, allowing the content to be a highly specialized source of information for open source enthusiasts.-History:...

review

OSNews
OSNews
OSNews is a computing news web site with a focus on operating systems and their related technologies that launched in 1997. The content is managed by a group of editors and the owner. The managing editor of OSNews is Thom Holwerda . David Adams is a publisher for OSNews, and also contributes...

describes it as "one of the best tech books ever published" in a review of the second edition.

Editions

  • Advanced Programming in the UNIX environment, first edition, W. Richard Stevens, Addison-Wesley, 1992, ISBN 0-201-56317-7
  • Advanced Programming in the UNIX environment, second edition, W. Richard Stevens and Stephen A. Rago, Addison-Wesley, 2005, ISBN 0-201-43307-9

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK