Cover V03, I02


Books: A User's Report

Elizabeth Zinkann

This month I have included reviews on Building UNIX System V Software, by Israel Silverberg (Prentice Hall); The Instant Internet Guide, by Brent Heslop and David Angell (Addison-Wesley); Solaris Advanced System Administrator's Guide, by Janice Winsor; Software Portability with imake, by Paul DuBois (O'Reilly & Associates, Inc.); and an update on The Internet Companion Plus, by Tracy LaQuey with Jeanne C. Ryer (Addison-Wesley).

The Internet Companion Plus
by Tracy LaQuey with Jeanne C. Ryer
ISBN 0-201-62719-1

Since I first reviewed The Internet Companion by Tracy LaQuey with Jeanne C. Ryer (Addison-Wesley), it has become an international bestseller. The Internet Companion Plus possesses the same excellent information as The Internet Companion, including the historical anecdotes and the foreword by Vice President Al Gore. However, it also provides InterCon's WorldLink software, which enables the reader to directly access the Internet. The diskette is available in both IBM and Macintosh formats. This book has always been one of my favorites on the Internet and the software only enhances its value.

Building UNIX System V Software
by Israel Silverberg
Prentice Hall
ISBN 0-13-370008-9

In an effort to produce perfect software, computer programmers have turned to the software engineering field. While studying the principles used in software engineering, programmers have discovered that the development process is as important as the development tools. With Building UNIX System V Software, Silverberg recognizes the importance of the process, while concentrating on the build aspect of the procedure. He has devised a formula for transforming the inputs into the output:

source files + tools + build instructions = software package

He modifies this slightly as the book progresses. The book's main thrust focuses on the build instructions, with a brief explanation of the tools employed in the process. Although Building UNIX System V Software can exist as a standalone text, it is also a complement to Silverberg's previous work, Source File Management with SCCS (Prentice Hall, ISBN 0-13-829771-1). The topics do overlap and the set provides a good approach to software management.

In the first chapter, the author addresses the idea of building software and defines the terms connected with it. Silverberg's primary concept is that "building software refers not only to the building of a single component, but to the building of the total set of components related to a single application."

Every time the same source files, tools, and build instructions are used, the same results should be achieved. The author describes other requirements of the build process as well as its characteristics. The second chapter discusses the objectives of the build process within the UNIX environment.

UNIX possesses a utility, make, that can contain the build instructions easily. Silverberg describes some of the benefits of make at the beginning of Chapter 3, then devotes four chapters to the make utility. Chapter 3 explains the basics of creating makefiles. The following chapter discusses how make is executed, its default operation, its options, and its arguments. Some of the topics include environmental variables, macro definition precedence, name changing for the description file, and the selection of target names. Chapter 5 concentrates on creating more advanced and more efficient makefiles. It adds more internal macros, demonstrates how to combine like make rules, and addresses the use of archive libraries, include files, and special targets. Silverberg also introduces inference rules and explains how to use them. The final chapter on make uses the information from the three previous chapters to build makefiles for the source file management package described in the first chapter.

Silverberg next addresses the need for tools management and a separate tools library, comparable to the source library for source files. He discusses tool design criteria and how to install a software package in the tools library. The following chapter describes software package administration, including installation, removal, and configuration tasks. Both the maintenance and configuration scripts presented can be used with or without the luxury of the sysadm command.

The final chapters of Building UNIX System V Software discuss macro preprocessors, commands that will modify an object file, and building a library file. The epilogue presents a review and the source tree for the resulting software package. The example software package introduced in Chapter 1 has been modified throughout the book to produce a new software package. This evolution appears in Appendices B through H. The epilogue also focuses on the relationship to source file management.

Silverberg's writing style is clear and the concepts are illustrated through examples. Since he uses one specific example and modifies it as the text progresses, the sample files are easy to follow, even though they become more complex. Important notes about the topic appear in boxed format, so that the reader will not overlook them. Each chapter has an introduction and a summary. Building UNIX System V Software merits an examination by the system administrator and the programmer. The chapters on make alone prove this a worthwhile text.

The Instant Internet Guide: Hands-On Global Networking
by Brent Heslop and David Angell
ISBN 0-201-62707-8

Heslop and Angell have produced a book on that ultimate network, the Internet. They explain the best way to use it, whether you work for a large corporation or a small business, or are an individual user. "Instant" describes the book well. The authors present a rapid approach to the most recent information available on the Internet, utilizing hands-on techniques. The Instant Internet Guide is also the first book that discusses the menu-based programs on the Internet.

The authors begin with a basic chapter on the Internet. In addition to information regarding login and logout procedures and a brief discussion on the three types of connections, they include a section on "netiquette." This addresses adding emphasis (without the benefits of formatting), tracing, copying, and proofreading any message before you send it. They introduce several terms that are familiar, but not necessarily connected with the Internet, such as triage, shouting, and flaming. For example, the use of all uppercase letters is termed SHOUTING; however, it is best not to use all lowercase letters, either (unless your name is e.e. cummings).

The menu-based e-mail program pine is discussed in Chapter 2. Heslop and Angell describe the program as "widely available on the Internet" and often used by service providers. (If you cannot access pine and your provider won't install it, the authors also include instructions on mail and mailx later in the book.) This chapter examines how to use pine step-by-step, from creating folders and composing and sending e-mail to receiving, reading, and replying to mail messages. Other features in pine allow the user to personalize messages with a .signature file. Cc, Bcc, and Fcc allow the user to send a copy of the message to other people and to note how the copy was sent. Heslop and Angell also provide a table containing information about sending mail to other networks and where to obtain additional information on this topic. Other subjects covered include the pico (pine composer) editor, the spell-checker, cancelling a message, attaching existing files, and how to maintain an e-mail address book.

In addition to e-mail, the Internet offers network news discussions. To access the newsgroups, the user needs a news reader program. One of these programs, tin, provides a menu interface for reading, downloading, and posting. Since newsgroups are hierarchically built, the tin program is similarly structured. It features three levels, from the general to the specific. These include the newsgroup, the thread (or discussion), and the article levels. Threads can be defined as "a chain of related articles." The Instant Internet Guide explains how to use tin, whether it involves marking a thread or unsubscribing to a newsgroup. (You can also resubscribe to an unsubscribed newsgroup.) It describes how to work with compressed files and how to decrypt an article. Heslop and Angell tell the user different ways to participate in newsgroups and how to customize tin.

The authors also present chapters on telnet, which searches online resources, and ftp, which transfers files. They describe utilities that help you find resources, such as archie, gopher, veronica, WAIS, and the World-Wide Web (W3). For those about to traverse the Internet without a UNIX background, a chapter entitled "UNIX in About an Hour" features the necessary UNIX basics. The appendix provides information about types and costs of Internet access, a list of service providers, and questions to ask about them.

This is an upbeat book about the Internet. It contains three types of extra information in the form of Tips, Cautions, and FYIs (For Your Information). Heslop and Angell cover topics and terms that have not previously been covered in Internet books. The chapters on pine and tin contain a number of example menu screens. The authors not only provide information, but also list a number of sites to visit free of charge. This is one of the most practical books on the Internet that I have read. It can be used by every level of user and should be declared a standard text for any Internet traveler.

Solaris Advanced System Administrator's Guide
by Janice Winsor
Ziff-Davis Press
ISBN 1-56276-131-5

In her sequel to the Solaris System Administrator's Guide, Janice Winsor addresses six complex topics: mail services, NIS+, automount services, the Solaris 2.x Service Access Facility (SAF), application software, and shell programming. The appendices discuss volume management and the serial port manager, both new with Solaris system software.

The Introduction to the book should be read for at least two reasons: 1) it contains information about the root path referenced in the book; and 2) it displays Solaris system evolution in table format. In addition, it provides a brief description of each chapter's content as well as some terminology.

The first chapter describes the background of mail services and defines its terminology. It also details the components of mail services, noting which are new with SVR4. The following chapter describes four mail configurations and the requirements for each case. Chapter 3 features the set-up, testing, administration, and troubleshooting of mail services. Finally, Winsor discusses the sendmail program.

NIS+, a network information service, is available with Solaris 2.x. Its primary features include simplicity and better security. The author provides a table displaying the differences between NIS and NIS+. She examines how NIS+ works, introduces the commands, and explains how to set up an NIS+ client on a system where NIS+ has been previously installed. The automounter, which mounts and unmounts directories from other systems, works in conjunction with NIS+. Coverage of the subject includes not only automount terminology, but also automount maps, how the automounter works, and even recommended policies.

Part 4 of this book focuses on the Service Access Facility (SAF). It begins with an overview and then describes the port monitors and services used by the Service Access Facility. The author explains how to set up and administer the SAF for modems, terminals, and printers.

The rest of the book features application software and shell programming. Whether you are trying to install, delete, or administer applications, this book can assist you. It even tells you "how to access files from a CD-ROM drive." Solaris 2.x can use the Bourne, Korn, and C shells. Winsor itemizes the basic programming tenets of each shell, explains how shells work, and provides a comparison of each shell's syntax. She also presents examples of shell scripts in the final chapter.

This book should be read by every Solaris system administrator, but especially administrators who must expand or modify their current systems. Where the author doesn't provide all of the information pertaining to a topic, she names a source that will include the needed data. Output, tables, screen layouts, and diagrams accompany the text when appropriate. In sum, this is a well-written and worthwhile sequel.

Software Portability with imake
by Paul DuBois
O'Reilly & Associates, Inc.
ISBN 1-56592-055-4

Program development in UNIX is usually accomplished with the make utility. A makefile can easily supervise the build and install processes. However, makefiles are not portable and rewriting them for different systems can be difficult and time-consuming. The tool imake addresses this problem differently. Instead of creating a Makefile that includes machine dependencies, the designer writes an Imakefile which contains the targets, but not any machine dependencies. The dependencies reside in different configuration files in a separate directory. The tool imake reads the machine-independent Imakefile and generates a Makefile using the configuration files. Since the Imakefile contains the targets and the configuration files provide the machine dependencies, the resulting Makefile contains both, just as a makefile created for a single system would do.

Following an introduction to imake, DuBois presents a tutorial which describes how to write a simple makefile and how to generate a makefile. This is a practical chapter, demonstrating how to use imake rather than examining its abstract principles. The author then focuses on the configuration files and their organization. Since imake is associated with the X Window System, DuBois devotes two chapters to X11: one on the configuration files and one on creating makefiles. He concludes Part 1 with a chapter on makefile troubleshooting.

The second section of the book describes the creation of configuration files, including writing rule macros, configuration file problems, solutions, and troubleshooting. DuBois also discusses how to manage multiple sets of configuration files when they must co-exist. He dedicates the final section of the book to reusability and configuration files, focusing on designing, creating, and using extensible configuration files. The appendices provide useful information, including how to obtain the software referenced.

Paul DuBois has produced the first reference on imake. Its timely debut emphasizes the advantage of this tool in the multi-system computer world. The book is written in a clear, readable style, presents many excellent diagrams and examples, and offers readers practical knowledge of imake. This book should be read by software developers everywhere.

About the Author

Elizabeth Zinkann has been involved in the UNIX and C environments for the past 11 years. She is currently a UNIX and C consultant, and one of her specialities is UNIX education. In addition to her computer science background, she also has a degree in English.