Using Unix by example: P C Poole and N Poole Addison-Wesley, Wokingham, UK (1985) £12.95 pp xi +...

1
Unix- with enthusiasm and skill P C Poole and N Poole "Using Unix by example" Addison- Wesley, Wokingham, UK (1985) £12.95 pp xi + 416 I like this book -- an introduction to Unix for students and professional programmers, viewing Unix as a combination of kernel, tools and languages for problem solving -- very much. It has a rich feel, over 400 pages of detailed information and detailed real working examples. After a brief introduction we get right in, with no useful detail omitted. The feeling is very much that of being led by a pair of patient and unflagging Unix hackers who communicate not just facts and techniques but their own enthusiasm and skill. The coverage is comprehensive. Early on the authors deal with the file Loveday, Raven (continued) The section of the book concerned with computer systems gives specifications for a number of machines using the processors mentioned earlier in the book, and will give the reader a good idea of the relative performance of PCs based on different CPUs. What this section does not do, is to indicate the market dominance of IBM and, in certain niches, Apple. The operating systems section gives a reasonable review of the most used systems: CP/M-86/ Concurrent, MS-DOS and Unix. Despite my criticisms, I feel that the 16-bit microprocessor handbook does have some good points. The descriptions are reasonably clear and concise and in some cases are augmented by a useful discussion of the reasons behind the inclusion of a particular feature. The low price of the book will allow engineers to add it to their library and refer to it for comparison purposes. It is as a comparative study rather than as a design reference book, that I feel this book is most valuable. lan Whitworth, Royal Military College of Science, Shrivenham, UK system, basic commands and the command interpreters. In the section on editing, which begins with the line editor ed, there is a very good introduction to screen editing with vi. vi is complex, and I am impressed by the way the authors introduce a good subset of its facilities in a clear and comprehensive way, enabling the reader to get to grips with it very quickly. The book also deals with file manipulations such as comparing, finding and sorting; process manipulations such as starting and stopping jobs; and with the Unix mail system for communication between users. The many examples are excellent, and some are clever enough to be interesting, but without being tricky. The final glossary, appendices and index are very useful. There is an unusual intermediate section of 78 pages on programming, in which three different programs are developed in some detail in each of the three languages PASCAL,FORTRAN and C. This shows the use of the compilers, and deals with both compile-time and runtime errors. At first this seemed too much detail, and presumably for many people one or two (or perhaps all) of the languages would be irrelevant, but the alternative is to deal in generalities and that is not how this book works. The languages chapter ends with a section on programming the shell. One of the main problems in writing about Unix is caused by the many versions in existence. The book covers the two main dialects, Berkeley 4.2 and AT&T system V.2. Each command description indicates whether it is available in one or both systems. The actual textual layout indicatingthese distinctions could be improved, but the interleaving is fine and, for example, I found the adjacent descriptions of multiple interactive shell invocations- shell layers (V.2) and foreground/back- ground (4.2) -- very clear. The book was typeset under Unix by the authors, but has a mucky appearance which does not reflect current capabilities. As is common in such machine maintained documents, there is overreliance on text where diagrams would help. To follow up this thorough introduction to Unix and current Unix practice by and for real programmers, I look forward to a second volume detailing the system-call interface and programming tools. That said, the question remains as to whether this book is suitable for students or programmers to learn Unix from. The context in which Unix is presented is narrow, the perspective blinkered and the style a bit too self congratulatory. Thus for example the rationale behind Unix is introduced via the evolution of time sharing from batch. This may be the authors' history too, but not necessarily that of their readers. An experienced Macintosh user, or arcade game player, would find the shift to the Unix view difficult, and would not be helped by this book's lack of framework and philosophy. The authors often interpret too much -- 'do this, then this, then you'll feel the need to do this, and so use this' -- leaving no space for the reader to build up a personal view which may be different from theirs. The view of Unix as a few simple ideas carried through in elegant combination is never presented so that, for example, processes are presented as just another feature, and there is no reference anywhere to Kemighan and Ritchie's original and beautiful paper. Current Unix systems may indeed be no different on the surface from VMS or PC-DOS, but this is because a proliferation of features has obscured Unix's basic elegance and conceptual integrity. A modern Unix text must offer some critique of the system to help the learner develop clear intuitions, and to help us all keep in mind that further progress will come from recon- ceptualizing the base, not from adding more commands. For those wishing to get to grips with Unix as a way of turning out code this book is excellent; but for those who want an idea of what Unix is all about, and how it fits into what is known and what is possible, it will only be a beginning. Bruce Anderson University of Essex, Colchester, UK vol 70 no 8 october "/986 457

Transcript of Using Unix by example: P C Poole and N Poole Addison-Wesley, Wokingham, UK (1985) £12.95 pp xi +...

Page 1: Using Unix by example: P C Poole and N Poole Addison-Wesley, Wokingham, UK (1985) £12.95 pp xi + 416

Unix- with enthusiasm and skill P C Poole and N Poole

"Using Unix by example" Addison- Wesley, Wokingham, UK (1985) £12.95 pp xi + 416

I like this book - - an introduction to Unix for students and professional programmers, viewing Unix as a combination of kernel, tools and languages for problem solving - - very much. It has a rich feel, over 400 pages of detailed information and detailed real working examples. After a brief introduction we get right in, with no useful detail omitted. The feeling is very much that of being led by a pair of patient and unflagging Unix hackers who communicate not just facts and techniques but their own enthusiasm and skill.

The coverage is comprehensive. Early on the authors deal with the file

L o v e d a y , R a v e n (continued)

The section of the book concerned with computer systems gives specifications for a number of machines using the processors mentioned earlier in the book, and will give the reader a good idea of the relative performance of PCs based on different CPUs. What this section does not do, is to indicate the market dominance of IBM and, in certain niches, Apple. The operating systems section gives a reasonable review of the most used systems: CP/M-86/ Concurrent, MS-DOS and Unix.

Despite my criticisms, I feel that the 16-bit microprocessor handbook does have some good points. The descriptions are reasonably clear and concise and in some cases are augmented by a useful discussion of the reasons behind the inclusion of a particular feature. The low price of the book will allow engineers to add it to their library and refer to it for comparison purposes. It is as a comparative study rather than as a design reference book, that I feel this book is most valuable.

lan Whitworth, Royal Military College of Science,

Shrivenham, UK

system, basic commands and the command interpreters. In the section on editing, which begins with the line editor ed, there is a very good introduction to screen editing with vi. vi is complex, and I am impressed by the way the authors introduce a good subset of its facilities in a clear and comprehensive way, enabling the reader to get to grips with it very quickly. The book also deals with file manipulations such as comparing, finding and sorting; process manipulations such as starting and stopping jobs; and with the Unix mail system for communication between users. The many examples are excellent, and some are clever enough to be interesting, but without being tricky. The final glossary, appendices and index are very useful.

There is an unusual intermediate section of 78 pages on programming, in which three different programs are developed in some detail in each of the three languages PASCAL, FORTRAN and C. This shows the use of the compilers, and deals with both compile-time and runtime errors. At first this seemed too much detail, and presumably for many people one or two (or perhaps all) of the languages would be irrelevant, but the alternative is to deal in generalities and that is not how this book works. The languages chapter ends with a section on programming the shell.

One of the main problems in writing about Unix is caused by the many versions in existence. The book covers the two main dialects, Berkeley 4.2 and AT&T system V.2. Each command description indicates whether it is available in one or both systems. The actual textual layout indicatingthese distinctions could be improved, but the interleaving is fine and, for example, I found the adjacent descriptions of multiple interactive shell i nvoca t i ons - shell layers (V.2) and foreground/back- ground (4.2) - - very clear.

The book was typeset under Unix by the authors, but has a mucky appearance which does not reflect current capabilities. As is common in such machine maintained documents,

there is overreliance on text where diagrams would help.

To fol low up this thorough introduction to Unix and current Unix practice by and for real programmers, I look forward to a second volume detailing the system-call interface and programming tools. That said, the question remains as to whether this book is suitable for students or programmers to learn Unix from. The context in which Unix is presented is narrow, the perspective blinkered and the style a bit too self congratulatory. Thus for example the rationale behind Unix is introduced via the evolution of time sharing from batch. This may be the authors' history too, but not necessarily that of their readers. An experienced Macintosh user, or arcade game player, would find the shift to the Unix view difficult, and would not be helped by this book's lack of framework and philosophy.

The authors often interpret too much - - 'do this, then this, then you'll feel the need to do this, and so use this' - - leaving no space for the reader to build up a personal view which may be different from theirs. The view of Unix as a few simple ideas carried through in elegant combination is never presented so that, for example, processes are presented as just another feature, and there is no reference anywhere to Kemighan and Ritchie's original and beautiful paper. Current Unix systems may indeed be no different on the surface from VMS or PC-DOS, but this is because a proliferation of features has obscured Unix's basic elegance and conceptual integrity. A modern Unix text must offer some critique of the system to help the learner develop clear intuitions, and to help us all keep in mind that further progress will come from recon- ceptualizing the base, not from adding more commands.

For those wishing to get to grips with Unix as a way of turning out code this book is excellent; but for those who want an idea of what Unix is all about, and how it fits into what is known and what is possible, it will only be a beginning.

Bruce Anderson University of Essex,

Colchester, UK

vol 70 no 8 october "/986 457