Unix system programming

Unix system programming

Book reviews Unix text aims at mature designers Wide view of 0CCAM2 programming Haviland, K and Salama, B Bowler, K C, Kenway, R D, Pawley, G S and...

122KB Sizes 1 Downloads 130 Views

Book reviews Unix text aims at mature designers

Wide view of 0CCAM2 programming

Haviland, K and Salama, B

Bowler, K C, Kenway, R D, Pawley, G S and Roweth, D

Unix system programming AddisonWesley, Wokingham, UK (1987) £16.95 pp 339

An introduction to OCCAM 2 programming ChartwelI-Bratt, Bickley, London, UK (1987) £6.95 pp 109

Not 'just another Unix book', this text assumes that the reader already knows how to use a machine running a Unix operating system. It is aimed at the fairly specialist, but growing, market of mature systems designers and programmers who are working in the Unix environment. The book sets outto explain the nature and usage of the interface to the Unix kernel; it does not attempt to cover program design or operating systems architectures, and it assumes that the reader is already familiar with the concepts of files, processes, interprocess communication mechanisms etc. The native language of Unix, and its programmers, is c, so the book is full of the hieroglyphics of this uncompromising language, and a reasonable level of competence is assumed throughout. When Unix was first developed by AT&T, it was not with the intention of exploiting it as a commercial product, and so the company was quite liberal about letting other institutions develop it and change it. This had the positive effect of allowing Unix to become as widely established as it is today but, on the negative side, it meant that there evolved several branches to the family tree and several competing attempts to define the standard Unix and its interface. Rather than trying to cover them all, the book concentrates on Issue 2 of the AT&T System V interface definition (SVlD). This definition is also the basis of two other proposed Unix standards - - X/Open and Posix - - so the book can be of general value for systems which follow these guidelines, and often notes those areas where there tends to be a divergence in these standards. However, the book is of less use with the Berkeley versions of Unix which are popular in many academic institutions, since they are derived from a much earlier version of Unix

The title of this book homes in on OCCAM 2 programming, but its content is usefully wider than that. The stated aim is to provide a lowcost booklet for practical use. This aim is achieved well. The text was originally developed as lecture notes for an intensive course, and this edition will provide useful course material for such courses at postexperience or advanced undergraduate levels.

Vol 12 No 6 July~August 1988

and do tend to depart from SVlDbased standards, especially in the area of interprocess communication. The book covers most aspects of the kernel interface, and explains how to use the system calls associated with files and the directory structure, process creation and termination, the older Unix interprocess communication facilities of signals and pipes and the newer and less widely available facilities of record locking, message passing, semaphores and shared memory. The book goes on to explain the programming of the terminal, and describes the features of the standard I/O library and of the 'curses' screen handling library. The final chapter collects up a few oddments that did not fit in earlier. The general style of the book is very readable, and it contains frequent program fragments to illustrate the use of the features and occasional exercises to test the reader's understanding and competence. (Unfortunately, it does not provide the solutions.) Considering the limited market for the book it seems very reasonable value for money, and if you are just starting to work with Unix it will probably repay its investment very quickly. Dick Whiddett Department of Computin& University of Lancaster, UK

Whilst the book is well balanced, if there is any particular slant it is towards the use of highly parallel computers for computational physics. I was initially surprised to see discussion of the solution of partial differential equations, with the particular example of Poisson's equation, but the two pages devoted to this are a useful inclusion. Chapter 5 provides a survey of parallel architectures. This is slightly selective and gives only brief information about particular products, but it forms a useful part of the book, and the topics it covers would form a useful part of an intensive course on concurrent programming. The OCCAM and OCCAM 2 programming languages are designed specifically for use on Inmos transputers. These processors are designed to be used both individually and in concurrent systems ranging up to massively parallel architectures. The book concisely explains the potential applications and architectures. It also includes specific and useful instruction on a version of the OPS program development package and OCCAM 2. The b o o k can be r e c o m m e n d e d as a background t e x t b o o k for a course on OCCAM programming; it is also suitable for handing o u t as part of

the material for an intensive course on OCCAM programming, and recommended for individuals wishing to expand their knowledge about potential applications of transputers. The different chapters of the book cover: introduction to OCCAM 2; implementation of simple programs; case study on cellular automata; parallel algorithms; survey of parallel architectures; the computing surface; and notes on OC~M 2. The last of these chapters gives useful crossreferences back to previous chapters. There is a good index. There are a few references to other published work at the end of the fourth chapter, but this little book does not include a bibliography on the topics covered. (cont'd over)

359