Cover V03, I05


Books: A User's Report

Elizabeth Zinkann

Beginning this month, due to reader request, I am including prices with the book information. The price listed will typically be the publisher's suggested US price, but may occasionally be a pre-publication price estimate.

In other news, the final release of Berkeley UNIX is available from O'Reilly & Associates, Inc., in cooperation with the Usenix Association and the Computer Systems Research Group of the University of California at Berkeley. A five-volume documentation set of 4.4BSD, with or without the CD-ROM, is available (Volumes 1-5 plus the CD-ROM, ISBN 1-56592-082-1, $150.00; Volumes 1-5 only, ISBN 1-56592-077-5, $120.00). I will include more information in the next issue.

This column features an unusual assortment, including Tcl and the Tk Toolkit, by John K. Ousterhout (Addison-Wesley); Cruising Online: Larry Magid's Guide to the New Digital Highways, by Lawrence J. Magid (Random House); The Magic Garden Explained: The Internals of UNIX System V Release 4 by Berny Goodheart and James Cox (Prentice Hall); !%@:: A Directory of Electronic Mail Addressing & Networks, by Donnalyn Frey and Rick Adams (O'Reilly & Associates, Inc.); The Internet Unleashed (Sams Publishing); Open Computing's Guide to the Best Free UNIX Utilities, by James Keogh and Remon Lapid (Osborne McGraw-Hill); and The UNIX Audit: Using UNIX to Audit UNIX, by Michael G. Grottola (McGraw-Hill, Inc.). I hope you will enjoy them as much as I did.

Tcl and the Tk Toolkit
by John K. Ousterhout
Addison-Wesley Professional Computing Series
ISBN 0-201-63337-X

Ousterhout begins by introducing Tcl (pronounced tickle) and Tk (pronounced tee-kay) as two distinct software packages. Tcl is an embeddable scripting language "for controlling and extending applications; its name stands for tool command language." Tk is an X Window System toolkit. Both use libraries of C procedures; this allows them to be used in different applications. Together they become a programming environment for developing graphical user interface (GUI) applications. The first two chapters provide an introduction and an overview of Tcl and Tk. Ousterhout addresses their benefits, demonstrates how to use them, and describes the book's format. He divides the book into four sections: the Tcl language, the Tk toolkit, the Tcl C interface, and the Tk C interface.

Part I explains the Tcl language. In order to write Tcl scripts, the user must understand its syntax and the built-in commands. Chapter 3 presents the syntax; chapters 4 through 14 describe the built-in commands. The syntax chapter defines scripts, commands, and words, along with Tcl's evaluation process. Also addressed are variable, command, and backslash substitution, comments, quoting with double quotes and braces, and normal and exceptional returns. The author includes figures, examples, and even tips for new Tcl users. Chapters 4 through 14 discuss variables, expressions, lists, control flow, procedures, string manipulation, accessing files, processes, errors and exceptions, managing Tcl internals, and the history capability. The logical order of these chapters progresses from the most frequently used to the more optional commands.

The second part of the book features the Tk toolkit and Tk's Tcl commands. The introductory chapter in this section includes a brief description of the X Window System and a very clear explanation of widgets. Ousterhout discusses the components of a Tk application (a widget hierarchy, an associated Tcl interpreter, and its commands). Two kinds of Tcl scripts control a Tk application: initialization scripts and event handlers. An initialization script performs any initialization task the application may require. Following initialization, the application is in a wait state (event loop), ready for user interaction. When an event occurs, a Tcl script (event handler) processes the event and acts accordingly. Tk features four main Tcl command groups: creating and deleting widgets, arranging widgets, communicating with existing widgets, and interconnecting widgets. Geometry managers determine the sizes and locations of widgets on the screen. This section concludes with two examples: a Tcl procedure that creates dialog boxes and a script that invokes a remote control application.

The remaining sections document "Writing Tcl Applications in C" and "Tk's C Interfaces." After reading parts 3 and 4, the reader can create new Tcl commands, write new Tcl applications in C, and create new widgets and geometry managers in C. The appendix tells how to retrieve, compile, and install Tcl and Tk, how to discover available extensions, and where to find the Internet newsgroup about Tcl and Tk.

This is an extremely well-written book, containing many figures, tables, examples, and scripts to illustrate the Tcl and Tk concepts. Ousterhout recommends that the reader have some knowledge of the ANSI C Standard, UNIX, and the X Window System in order to make best use of the book. In the introduction, he identifies the chapters readers will need to look at before attempting to craft Tcl and Tk scripts. His presentation technique and expertise result in a superb text. I enjoyed Tcl and the Tk Toolkit and recommend it highly to anyone with any shell writing experience. Everyone who uses the X Window System will find this book helpful.

Addison-Wesley offered a t-shirt featuring Tcl and the Tk Toolkit as a promotion. The shirts became so popular that Addison-Wesley decided to sell them for $10.00 each and donate the profits to the Literacy Volunteers of America, a national non-profit organization that fights illiteracy through community volunteer literacy programs. The attractive blue and white t-shirt displays the book cover on the front and lists all of the titles in the Addison-Wesley Professional Computing Series on the back. The t-shirts can be ordered by calling 1-800-822-6339 and specifying 0-201-92446-3 (large) or 0-201-92447-1 (extra large).

Cruising Online: Larry Magid's Guide to the New Digital Highways
by Lawrence J. Magid
Random House Electronic Publishing
ISBN 0-679-75155-6

Magid focuses on the three major commercial online services: America Online, CompuServe, and Prodigy. He addresses their respective strengths, weaknesses, and costs. Although he examines many of the features of each, this is not a catalog for the services. Instead, Cruising Online attempts to match the user with the appropriate online service. To encourage the reader to find the best service for his or her needs, the book provides coupons for free online time for America Online, CompuServe, Prodigy, and Netcom, an Internet service provider.

To demonstrate the advantages and disadvantages of the commercial services, Magid selects a topic and describes how America Online, CompuServe, and Prodigy approach it. For example, all three provide a mail capability, but each handles it differently. One may add a charge, while another will only bill the user for the time on the system. If the originator wants to track the message, the status may be displayed automatically , or the sender may have to request a receipt to track it. Magid makes liberal use of the respective computer screen outputs for each feature that he discusses. He explores many of the popular topics supported by all three services and shows the differences among them. Some of the categories include: forums, news and sports, reference, computing and software, travel and shopping, health (as opposed to health care, which is found under government or politics), leisure, entertainment and hobbies, politics, and business and finance. Print media also appear as online media. (Although I receive The Chicago Tribune daily, I subscribed to America Online to access the Tribune online so that I can read articles that were cross-referenced but not printed in the newspaper.)

Cruising Online provides money-saving tips, recommendations on how to better use a service, and warnings. Magid also dedicates a chapter to the Internet. His easy-to-read style lets the reader concentrate on the subject and decide which service best addresses his or her needs. Venturing into cyberspace can be expensive, especially for the uninitiated traveler. Larry Magid's preventive navigation (know where you're going before you begin) will help anyone, whether a beginner or experienced user. This book merits the attention of every user; it demonstrates the proper techniques for using an online service.

The Magic Garden Explained: The Internals of UNIX System V Release 4
by Berny Goodheart and James Cox
Prentice Hall
ISBN 0-13-098138-9

With the The Magic Garden Explained, Goodheart and Cox have contributed to the essential UNIX library for UNIX professionals. This book describes how UNIX System V Release 4 (SVR4) functions. The authors begin with a history of UNIX, including the differences among the various releases and versions and the new features in UNIX SVR4. If you've read a bit about UNIX history in other books, you may be tempted to bypass this discussion of history. In this case, omitting the historical background would be a mistake and the reader's loss. The Magic Garden Explained explores the Australian connection to UNIX and provides some history that doesn't appear in any other book. It also examines the attempts to define UNIX standards, including SVID, POSIX, and X/Open. Some excellent tables and flowcharts display recent kernel developments and features of UNIX SVR4.

Following the introductory chapter is a foundation chapter entitled "Concepts and facilities." The topics explained in this chapter are necessary to an understanding of the rest of the book. Here, Goodheart and Cox discuss the UNIX operating system basics in some depth and supply brief introductions to STREAMS, how STREAMS works, TCP/IP, the Transport level interface (TLI), Sockets, Remote File Sharing (RFS), and the Networked file system (NFS). The explanation of the UNIX kernel is organized in four sections: the memory management subsystem, the process management subsystem, the I/O subsystem, and the file management subsystem. Each of these subsystems, as well as the properties attributed to it, is explained thoroughly in its respective chapter.

The book's final section addresses the STREAMS subsystem, the interprocess communication system, and crash(1M). The chapter detailing STREAMS includes different STREAMS functions, the algorithms for the functions, the modules, drivers, utilities, memory management, and diagrams and text displaying how the stream head operates. The chapter on interprocess communication (IPC) features semaphores, message queues, and shared memory. The final chapter describes a utility that allows the administrator to inspect a core-image of the kernel, including processes, the kernel stack, files, memory, and STREAMS.

The Magic Garden Explained joins an elite selection of classic UNIX books. It can be used either as a college textbook (the authors include exercises at the ends of chapters for students) or a professional's reference. Goodheart and Cox also provide enough detail to satisfy the casual user. This book will benefit developers, system engineers, administrators, and programmers, particularly those who implement device drivers. The Magic Garden Explained is one of the first books to receive the approval of the Novell, Inc. UNIX Systems Group. Given the authors' different time zones (Australian and English), it is amazing not only that the book was completed, but also that the style is so coherent. The Magic Garden Explained features a well-written and logical style, enlivened by a sense of humor, displayed in the footnotes. The authors even reveal why it is a magic garden. This is a superior book and should be added to any classic UNIX library.

!%@:: A Directory of Electronic Mail Addressing & Networks Fourth Edition
by Donnalyn Frey and Rick Adams
O'Reilly & Associates, Inc.
ISBN 1-56592-046-5

Frey and Adams provide a directory of networks for the novice or experienced user. The latest version includes a basic introduction to electronic mail (e-mail) addressing and a more specific explanation of multiple network communication. The authors focus on approximately 190 networks in depth, describing the network, its services, the formats used, and who to contact for further information.

The appendices feature the domain names of networks in 62 countries, from Argentina to Zimbabwe. The United States is divided into four sections: commercial, educational, governmental, and geographic. Frey and Adams also include a segment for the United States containing network and organizational subdomains. These extensive and informative lists can help users trying to contact colleagues on different networks establish a connection successfully on the first try. (The lists will also intrigue the bookworm for hours, particularly during thunderstorms!)

The authors have modified a very readable and extremely well-organized book. For the fourth edition, O'Reilly & Associates, Inc. have reduced the price. The previous edition sold for $24.95; the modified, expanded version is $9.95. Every book lover and online user will want to take advantage of this bargain!

The Internet Unleashed
Sams Publishing
ISBN 0-672-30466-X
$44.95, includes disk

The writing of this book resembles the Internet itself. Forty-five authors contributed to The Internet Unleashed, each addressing his or her speciality. Different subjects are supported by different visual aids. The introductory chapters use sidebars to explain necessary topics, such as TCP/IP and bandwidth. Later chapters employ notes, tips, and screen outputs to communicate ideas. Tables, charts, diagrams, and figures augment the text throughout the book. The Internet Unleashed consists of eleven parts plus the Appendices. It discusses Internet history (past, present, and future), how it works and how to participate in it, communication, finding information, using the Internet for business, education and government, issues regarding the Internet, and having fun.

In presenting the history of the Internet, author Martin Moore describes more than the facts detailing the beginning. He also discusses the prevailing political climates that accompanied its generation and development. Moore recounts what ideas were implemented, and when and where; this approach resembles a written timeline and is quite effective.

The second section discusses network mediums, topologies, protocols, and routing, followed by Internet addresses and domain names. Each topic is presented in a clear and precise manner. The third segment addresses accessing the Internet, whether as a user, an organization, or through a local area network (LAN). It also considers high-speed connections, security, and selecting a consultant or trainer.

Communications can refer to e-mail, Internet Relay Chat (IRC), discussions, news, or mailing lists. Therefore, the contributers to this section covered all of the possibilities. The authors begin with an overview of Internet E-mail, provide information about E-mail programs for DOS, Windows, and Macintosh platforms, and examine different Internet gateways. They describe discussions through Listservs and mailing lists, explaining how to use, create, and maintain them. The authors also focus on acquiring news through Usenet and newsgroups, emphasizing proper netiquette and comparing various newsreaders. This section concludes with a discussion on live conversation and how to participate.

"Finding and Sharing Information" is probably the most important segment in the book. Its collection of tools and instructions on using them includes: finding people on the Internet, InterNIC, FTP, Telnet, Archie, using, finding, and creating Gophers, Veronica, WAIS, the World Wide Web, and Mosaic. With these and the other tools presented in this section, the reader should be able to successfully travel the Internet.

The Internet Unleashed next focuses on specific applications of the Internet. The section relating to business recounts a history of business on the Internet, why anyone should conduct business in cyberspace, the policies defining acceptable use, and current practices. The authors also provide information about libraries and discuss accessing different libraries through the Internet, enabling the researcher to expand his or her resources. The Internet can also furnish education. This feature is available for K-12 students or college graduates, including distance education, which allows the instructor and the students to reside in different geographic locations.

The Internet Unleashed concludes with segments on community and government, Internet controversies, diversions and fun, and the appendices. Among topics including federal information and Free-Nets, the government section identifies ten rules that the user should consider before addressing a political issue. Internet controversies describes crackers, viruses, privacy, copyrights, and censorship. Diversion and fun explores multi-user dungeons (MUDs), the Internet Hunt, and Virtual Reality. The appendices furnish the Public Dialup Internet Access List (PDIAL), essential Internet tools, an introduction to UNIX, Internet Domain Names, and Internet Resources. The accompanying disk, for Windows, includes a Chameleon Sampler from NetManage, Internet tools, Hgopher, UUCode, and directories of mailing lists, newsgroups, and Listserv lists. (A Macintosh disk is available on request.)

This is an outstanding book. The examples employed throughout allow the reader to understand the concepts, regardless of his or her user level. This book belongs on every Internet user's bookshelf, or in close proximity to his or her keyboard. It will be used often.

Open Computing's Guide to the Best Free UNIX Utilities
by James Keogh and Remon Lapid
Osborne McGraw-Hill
ISBN 0-07-882046-4
$34.95, includes CD-ROM

The adjective "free" has many different connotations. For purposes of this book, Keogh and Lapid required that each "free" utility possess three qualifications: it must be the best in its field; the source code, binaries, and documentation must be on the Internet; and it must be available to anyone without restrictions. The authors provide download instructions, the name and location of the utility on the Internet, and the name of a netnews group for users of that utility. They also provide e-mail addresses to report bugs in the utility. To help readers who may be downloading and building utilities for the first time, they include a chapter that recalls their own initial endeavors and documents their errors.

Keogh and Lapid divide the utilities into several categories: general, text processing, games, communication, printing and spreadsheet, software development, graphics, and electronic mail utilities. They also include the best of the programming languages. Some of these utilities seem unimportant until you encounter a terminal without them, whereupon they become indispensable. The authors cover many of my favorite utilities, as well as some newly developed tools. Among the general utility software, Keogh and Lapid examine less, paging software that allows the user to move both forward and backward; screen, which monitors multiple sessions on your screen; ingres, an interactive database; and bash, the "GNU Project's Bourne Again Shell" that combines the advantages of the Bourne, Korn, and C shells. Text processing software contains TeX and emacs; communication software features gzip (data compression), kermit (file transfer), pcomm(telecommunications), and mosaic, the newest and brightest of the Internet browsers. The chapter on software development includes Tcl, an embeddable scripting language; the electronic mail section addresses Netfax; and among the programming languages are Xfree86, an X Windows Server, gcc, a C and C++ compiler, the NIH Class Library, a C++ library, and the Perl programming language.

Open Computing's Guide to the Best Free UNIX Utilities includes a CD-ROM with the source in two formats. Since the source must be compiled, the introduction of the book provides instructions for the CD.

In sum, Keogh and Lapid have identified the most useful utilities and shown how to obtain and use them. To prevent any errors and also to provide support, they detail the downloading process, describe common mistakes and how to avoid them, and identify groups dedicated to each utility. The result is an excellent book that explains the procedures designed to benefit from the existing resources.

The UNIX Audit: Using UNIX to Audit UNIX
by Michael G. Grottola
McGraw-Hill, Inc.
ISBN 0-07-025127-4

Grottola describes three reasons for system audits: to control, verify, or measure impact. The control audit analyzes the system resources for someone unfamiliar with the system; the verification audit confirms the operations of a system; and an audit that measures impact examines the effects of an impending revision or change.

In many cases, an audit becomes another task for the system administrator. Grottola demonstrates how a UNIX professional can use the UNIX operating system to produce a professional audit report. For the auditor who is unfamiliar with UNIX, the author suggests recruiting the assistance of a system administrator. In addition, he discusses 74 UNIX commands that can provide audit information. Grottola categorizes these commands in six groups: administration, file systems, network facilities, performance, security, and general utility tools. He also presents the commands in alphabetical order and explains how each can be used for auditing purposes. A later chapter shows how to establish a baseline reference through the system resource files and how to use the information to monitor the entire system.

Through the procedures described by the author, the system administrator or auditor can evaluate the UNIX file system, remote access facilities, backup procedures, disaster recovery, and system security, software, use, and performance. Grottola furnishes checklists and questions that should be answered to complete the audit. He demonstrates how to use UNIX to perform the audit and includes examples of audit forms as part of the finished report. The UNIX Audit is clearly written and logically presented, with flowcharts and screen outputs displayed to aid the reader. If your job involves responsibility for UNIX systems analysis and productivity, The UNIX Audit is a valuable tool.

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. Elizabeth can be reached via CompuServe at 71603,2201 (Internet format:, or via America Online (