k. l. - springer978-1-349-10308-9/1.pdf · barry morrell and peter whittle, cp/m 80...
TRANSCRIPT
Macmillan Computer Science Series Consulting Editor Professor F. H. Sumner, University of Manchester
S. T. Allworth and R.N. Zobel, Introduction to Real-time Software Design, second edition Ian 0. Angell and Gareth Griffith, High-resolution Computer Graphics Using FORTRAN 77 Ian 0. Angell and Gareth Griffith, High-resolution Computer Graphics Using Pascal M. Azmoodeh, Abstract Data Types and Algorithms C. Bamford and P. Curran, Data Structures, Files and Databases Philip Barker, Author Languages for CAL A. N. Barrett and A. L. Mackay, Spatial Structure and the Microcomputer R. E. Berry, B. A. E. Meekings and M.D. Soren, A Book on C, second edition G. M. Birtwistle, Discrete Event Modelling on Simula B. G. Blundell, C. N. Daskalakis, N. A. E. Heyes and T. P. Hopkins, An Introductory Guide to Silvar Lisco and HILO Simulators B. G. Blundell and C. N. Daskalakis, Using and Administering an Apollo Network T. B. Boffey, Graph Theory in Operations Research Richard Bornat, Understanding and Writing Compilers Linda E. M. Brackenbury, Design of VLSI Systems- A Practical Introduction J. K. Buckle, Software Configuration Management W. D. Burnham and A. R. Hall, Prolog Programming and Applications J. C. Cluley, Interf .. cing to Microprocessors J. C. Cluley, Introduction to Low Level Programming for Microprocessors Robert Cole, Computer Communications, second edition Derek Coleman, A Structured Programming Approach to Data Andrew J. T. Colin, Fundamentals of Computer Science Andrew J. T. Colin, Programming and Problem-solving in Algol 68 S. M. Deen, Fundamentals of Data Base Systems S. M. Deen, Principles and Practice of Database Systems Tim Denvir, Introduction to Discrete Mathematics for Software Engineering P. M. Dew and K. R. James, Introduction to Numerical Computation in Pascal M. R. M. Dunsmuir and G. J. Davies, Programming the UNIX System D. England eta/., A Sun User's Guide K. C. E. Gee, Introduction to Local Area Computer Networks J. B. Gosling, Design of Arithmetic Units for Digital Computers M.G. Hartley, M. Healey and P. G. Depledge, Mini and Microcomputer Systems Roger Hurty, Z80 Assembly Language Programming for Students Roland N. Ibbett, The Architecture of High Performance Computers Patrick Jaulent, The 68000- Hardware and Software P. Jaulent, L. Baticle and P. Pillot, 68020--30 Microprocessors and their Coprocessors J. M. King and J.P. Pardoe, Program Design Using ]SP-A Practical Introduction H. Kopetz, Software Reliability E. V. Krishnamutthy, Introductory Theory of Computer Science V. P. Lane, Security of Computer Based Information Systems Graham Lee, From Hardware to Software - an introduction to computers A. M. Lister and R. D. Eager, Fundamentals of Operating Systems, fourth edition Thomas Manns and Michael Coleman, Software Quality Assurance G. P. McKeown and V. J. Rayward-Smith, Mathematics for Computing Brian Meek, Fortran, PL/1 and the A/gals A. Mevel and T. Gueguen, Smallta/k-80 Barry Morrell and Peter Whittle, CP/M 80 Programmer's Guide Derrick Morris, System Programming Based on the PDPJJ Y. Nishinuma and R. Espesser, UNIX- First contact Pim Oets, MS-DOS and PC-DOS- A Practical Guide Christian Queinnec, LISP E. J. Redfern, Introduction to Pascal for Computational Mathematics
(continued overlea(J
Gordon Reece, Microcomputer Modelling by Finite Differences W. P. Salman, 0. Tisserand and B. Toulout, FORTH L. E. Scales, Introduction to Non-linear Optimization Peter S. Sell, Expert Systems -A Practical Introduction A. G. Sutcliffe, Human-Computer Interface Design Colin J. Theaker and Graham R. Brookes, A Practical Course on Operating Systems M. R. Tolhurst et al., Open Systems Interconnection J-M. Trio, 8086-8088 Architecture and Programming M. J. Usher, Information Theory for Information Technologists B.S. Walker, Understanding Microprocessors Peter J. L. Wallis, Portable Programming Colin Walls, Programming Dedicated Microprocessors I. R. Wilson and A.M. Addyman, A Practical Introduction to Pascal- with BS6192, second edition
Non-series Roy Anderson, Management, Information Systems and Computers I. 0. Angell, Advanced Graphics with the IBM Personal Computer J. E. Bingham and G. W. P. Davies, A Handbook of Systems Analysis, second edition J. E. Bingham and G. W. P. Davies, Planning for Data Communications B. V. Cordingley and D. Chamund, Advanced BASIC Scientific Subroutines N. Frude, A Guide to SPSS/PC+
Using and Administering an Apollo Network
Damian Anderson Bary Blundell (Joint Editor)
Steve Boniwell Glenn Brennan
Costas Daskalakis (Joint Editor) Bob Henson Nick Heyes
John Howarth
Barry Blundell, Costas Daskalakis and Nick Heyes are with the University of Manchester
Damian Anderson is with Harsant and Steward, Chester Glenn Brennan and Steve Boniwell are with the Technical Support
Group, Apollo, Milton Keynes John Howarth is the Technical Support Manager, Apollo,
Manchester Bob Henson is the Strategic Accounts Manager, Apollo, Bracknell
M MACMILLAN EDUCATION
© B. G. Blundell and C. N. Daskalakis 1988
All rights reserved. No reproduction, copy or transmission of this publication may be made without written permission. No paragraph of this publication may be reproduced, copied or transmitted save with written permission or in accordance with the provisions of the Copyright Act 1956 (as amended), or under the terms of any licence permitting limited copying issued by the Copyright Licensing Agency, 33-4 Alfred Place, London WC1E 7DP. Any person who does any unauthorised act in relation to this publication may be liable to criminal prosecution and civil claims for damages. First published 1988 Published by MACMILLAN EDUCATION LTD Houndmills, Basingstoke, Hampshire RG21 2XS and London Companies and representatives throughout the world
Unix is a registered trademark of AT&T Information Systems Inc. Domain, Domain/IX, Aegis, Dialogue, NCS, GMR, GPR, GSR are registered trademarks of Apollo Computer Inc. VAX, MICROVAX, Ultrix, VMS are registered trademarks of Digital Equipment Corporation. Postscript is a registered trademark of Adobe Systems Inc. MS-DOS is a registered trademark of Microsoft Corporation. Ethernet is a registered trademark of Xerox Corporation. IBM PC, IBM PC/AT are registered trademarks of International Business Machines Corporation.
British Library Cataloguing in Publication Data Using and administering an Apollo network.-
(Macmillan computer science series). 1. Computer systems. Networks. Apollo I. Blundell, B. G. (Barry G.) II. Daskalakis, C. N. (Costas N.) 004.6
ISBN 978-0-333-46804-3 ISBN 978-1-349-10308-9 (eBook) DOI 10.1007/978-1-349-10308-9
To
Maureen, Wilfred and Brian Blundell Marouso Daskalaki
Mr and Mrs Anderson Tracey Boniwell Myrna Howarth
Tom and Francis Heyes
CONTENTS
Foreword
Preface
Acknowledgements
CHAPTER ONE: Introduction to Apollo Workstations
1.1 HISTORICAL NOTE 1.2 PROCESSING POWER 1. 3 GRAPHICS 1.4 USER INTERFACE 1.5 THE NETWORK
1. 5.1 The Bus Structure 1. 5. 2 The Ring Structure
1.6 OPERATING SYSTEMS 1. 6.1 The Apollo Domain System 1.6.2 UNIX
1. 7 NETWORKING AND UNIX 1.7.1 AT&T's Remote File System 1.7.2 Sun's Network File System 1.7.3 Apollo's 'Domain File System'
1.8 NON-UNIX ENVIRONMENTS
CHAPTER TWO: Getting Started
2.1 INTRODUCTION 2 .1. 1 Concerning the Syntax in this Book
2.2 FILES AND DIRECTORIES 2.3 TUTORIAL: GETTING STARTED
2. 3. 1 Introduction 2. 3. 2 The Tutorial
2.4 CREATING AND EDITING TEXT FILES 2. 4. 1 Introduction 2. 4. 2 File Access Keys 2. 4. 3 Text Manipulation Keys 2.4.4 A Tutorial: Using the Apollo Editor
Page
xvii
xix
xxi
1
1 2 3 3 4 4 5 5 5 6 6 6 7 7 8
10
10 10 11 13 13 13 17 17 17 18 19
viii Using and Administering an Apollo Network
2.5 SHELL AND DISPLAY MANAGER COMMANDS 21 (in brief)
2.6 TUTORIAL: THE LIST DIRECTORY COMMANDS 22 2.7 CONCERNING DIRECTORIES 23
2.7.1 Introduction 23 2.7.2 A Tutorial 23
2.8 THE NAMING DIRECTORY AND THE COMMAND 25 SEARCH RULES
2.9 MORE SPECIAL PURPOSE KEYS 27
CHAPTER THREE: Commands and Processes 31
3.1 INTRODUCTION 31 3.2 SHELL COMMANDS 31
3.2.1 Introduction 31 3.2.2 The Commands 32 3.2.3 Redirection of Input and Output 37 3.2.4 Pipes and Filters 39 3.2.5 Wildcards 39 3.2.6 To Stop a Program 40
3.3 DISPLAY MANAGER COMMANDS 40 3.3.1 Introduction 40 3.3.2 The Commands 41
3.4 ACCESSING OTHER WORKSTATIONS ACROSS THE 47 NETWORK 3.4.1 Introduction 47 3.4.2 Accessing a Remote Workstation across the 47
Network 3.5 LINKS 48 3.6 PROCESSES so
3.6.1 Introduction so 3.6.2 Process 51 3.6.3 A Background Process 52 3.6.4 Server Processes 52 3.6.5 Remote Processes 52 3.6.6 Stopping a Process 53
3.7 SOME SERVER PROCESSES 54 3.7.1 Introduction 54 3.7.2 The Mailbox Server 54 3.7.3 The Server Process Manager 54 3.7.4 The Alarm Server 55
3.8 CHANGING PASSWORDS AND HOME DIRECTORIES 56 3.8.1 Changing Your Password 57
Contents
3.8.2 Changing Your Home Directory REFERENCES
CHAPTER FOUR: Concerning Aegis
ix
57 57
58
4.1 INTRODUCTION 58 4.2 TUTORIAL: A TOUR THROUGH SOME AEGIS 58
DIRECTORIES 4.3 THE BEHAVIOUR OF THE SYSTEM AT STARTUP 64
AND LOG-IN 4.3.1 The Events Occurring at Startup 64
4.3.1.1 Booting of a disked node (in 'normal' mode) 65 4.3.1.2 Booting of a diskless node (in 'normal' 65
mode) 4.3.1.3 The actions of Aegis when it begins 67
execution 4.4 THE EVENTS OCCURRING AT LOG-IN 69
4.4.1 Log-In Files 71 4.5 THE EFFECT OF THE 'SERVICE MODE' SWITCH 72
UPON STARTUP 4. 5 .1 Introduction 72 4.5.2 Manual Startup (Service Mode Switch Set to 73
'Service') 4.6 TURNING OFF A WORKSTATION 74
CHAPTER FIVE: Software Development on Apollo Workstations
5.1 INTRODUCTION 5.2 INTRODUCTION TO SHELL SCRIPTS
5.2.1 A Note on Shell Script Syntax 5.2.2 A Simple Shell Script Example 5. 2. 3 Printing to the Screen 5. 2.4 Mathematical and Logical Operators 5.2.5. Variables within Shell Scripts 5.2.6 Passing Parameters to Shell Scripts 5. 2. 7 Active Functions 5. 2. 8 Conditional Statements
5.2.8.1 The 'if' statement 5.2.8.2 The 'while' statement 5.2.8.3 The 'for' statement 5.2.8.4 The 'select' statement
76
76 76 77 77 77 78 78 81 82 82 82 84 85 86
X Using and Administering an Apollo Network
5.3 COMPILING AND BINDING PROGRAMS ON 88 APOLLO WORKSTATIONS 5. 3. 1 Introduction 8 8 5.3.2 Tutorial: The Pascal Compiler 89 5.3.3 Programming in Fortran and C 91 5.3.4 Using the Binder Utility 92 5.3.5 Tutorial: Executing Programs Which Contain 93
Graphics Calls 5.3.6 Programming Using System Calls 94
5.3.6.1 Tutorial: programming using system calls 95 5.3.7 Compiler Switches 96 5.3.8 Debug 97
REFERENCES 99
CHAPTER SIX: Domain/IX - Getting Started 100
6.1 INTRODUCTION 100 6.2 CONFIGURING A WORKSTATION TO RUN UNIX 100 6.3 DOMAIN/IX SHELLS 101
6. 3.1 Creating UNIX Shells 10 1 6. 3 .1.1 Invoking a UNIX shell from another shell 10 1 6.3.1.2 Creating UNIX shells using the display 103
manager 6.3.2 Differences between UNIX and Aegis Shells 103
6.3.2.1 Command names and functions 103 6.3.2.2 Command search rules 103 6.3.2.3 Execution of shell scripts 105 6.3.2.4 Wildcards 106
6.4 OPENING A UNIX SHELL AT LOG-IN 106 6.4.1 A Default UNIX Shell for All Users of a 106
Workstation 6.4.2 A Default UNIX Shell for a Single User of a 107
Workstation 6.5 DEFINING THE KEYBOARD FOR UNIX 107
CHAPTER SEVEN: System Administration (Aegis)
7.1 INTRODUCTION 7.2 BACKING UP FILES AND DIRECTORIES
7.2.1 WBAK 7.2.2 RBAK 7.2.3 Storage Devices 7.2.4 Creating a Remote Process for Backup
109
109 110 110 111 112 113
Contents xi
7.3 SETTING UP ACCOUNTS AND REGISTRIES 113 7.3.1 Registries 114 7.3.2 Setting up the Registries (on a Network) 115 7.3.3 Setting up the Registry (on a Stand-Alone 119
Network) 7.3.4 Using EDPPO and EDACCT to Enter 119
Information into the Registries 7.3.4.1 Introduction 119 7.3.4.2 The use of EDPPO 120 7.3.4.3 The use of EDACCT 122
7.4 SETTING UP DIRECTORY TREES AND FIXING 123 THEIR SECURITY 7.4.1 Building a User Directory Tree 123 7.4.2 Security of Files and Directories 124 7.4.3 The Modification of ACL's 127
7.4.3.1 The use of the EDACL command 127 7.4.3.2 The use of the ACL command to set the 130
access control list 7.4.4 More about ACL's 131 7.4.5 The Propagation of Security down a Directory 132
Tree 7.4.6 Positioning Applications Software and Defining 136
Logical Volumes 7.5 OPERATING SYSTEM SECURITY 137
7.5.1 Operating System ACL's 137 7.5.1.1 Setting the ACL's 138
7.5.2 Vulnerable Areas of the Operating System 139 7.6 V ARlO US SOFTWARE TOOLS 141
7.6.1 Chuvol (Change Unique Volume Identifier) 141 7.6.2 Ctnode (Catalog a Node) 142
7.6.2.1 Adding a node to the network 142 7.6.3 Calendar 143 7.6.4 Said (Salvage a Directory) 144 7.6.5 Rdym (Timing a Command) 144
7.7 TROUBLESHOOTING ON APOLLO 144 7.7.1 Introduction 144 7.7.2 The Error Log 145 7.7.3 Error Codes, Error Messages, etc 145 7.7.4 Shell Commands Available for Troubleshooting 147 7.7.5 Fault Finding with a Network 149 7.7.6 The 'Systest' Directory 149 7.7.7 The 'Sysboot' Program 150 7.7.8 Stand-Alone Utilities 151
7.7.8.1 'Sau' programs 152
xii Using and Administering an Apollo Network
7.7.8.2 'Sau' diagnostics 152 7.7.8.3 The 'diagnostic executive' ('dex') 153
7. 7. 9 The Boot Prom Diagnostics 15 4 7.7.9.1 DN3000 boot prom diagnostic LED error 154
codes 7.7.10 Troubleshooting at the Phase II Boot Shell 155
7.7.10.1 An example of troubleshooting at the 156 phase II boot shell
REFERENCES 156
CHAPTER EIGHT: Protected Subsystems 157
8.1 INTRODUCTION 157 8.2 WHY USE A PROTECTED SUBSYSTEM? 157 8.3 THE THEORY 158 8.4 PUTTING THE THEORY INTO PRACTICE 159 8.5 PROTECTED SUBSYSTEMS: A TUTORIAL 161
8. 5. 1 Introduction 161 8.5.2 The Tutorial 161
8.6 FURTHER INFORMATION 164 8.7 THE LOG-IN PROTECTED SUBSYSTEM 165 REFERENCES 166
CHAPTER NINE: Introduction to Graphics 167
9.1 COMPUTER GRAPHICS: A DEFINITION 167 9.2 HISTORICAL NOTE 167 9.3 COMPUTER GRAPHICS SYSTEMS DESCRIPTION 168 9.4 PRESENTATIONAL FEATURES OF DISPLAYS 171 9.5 OUTPUT DEVICES 172
9. 5 .1 Random Scan Refresh CRT's 172 9.5.2 Raster Scan CRT Displays 173 9.5.3 Storage CRT Displays 173 9.5.4 Memory Requirements in Raster Scan Systems 173
9.6 INPUT DEVICES 174 9.7 SOFTWARE ASPECTS IN COMPUTER GRAPHICS 175
9. 7.1 Languages in Graphics 17 5 9. 7. 2 General Purpose Languages in Graphics 17 5
9.8 GRAPHICS STANDARDS 177 9. 8 .1 Graphical Kernel System 17 8
9. 8 .1.1 GKS primitives and attributes 17 8 9. 8. 1. 2 Coordinate system 179 9.8.1.3 GKS segments and their attributes 179
Contents xiii
9.8.1.4 GKS input 180 9.8.1.5 GKS workstations 180 9.8.1.6 Conclusion 181
9.8.2 GKS-3D 181 9.8.3 Programmer's Hierarchical Interactive Graphics 182
System - PRIGS 9.8.4 PostScript 183 9.8.5 Other Related Standards 184
9.8.5.1 Computer graphics metafile - CGM 184 9.8.5.2 Computer graphics interface - CGI 184
REFERENCES 184
CHAPTER TEN: Using and Selecting Apollo Graphics 187 Packages
10.1 INTRODUCTION 187 10.2 HARDWARE CONSIDERATIONS 187 10.3 GRAPHICS TOOLS 188
10.3.1 Standards 189 1 0. 3. 2 Proprietary Resources 18 9
10.4 COMPARISON OF PROPRIETARY GRAPHICS TOOLS 191 10.4 .1 Introduction 191 10.4.2 GSR 191
10.4.2.1 When to use GSR 192 10.4.2.2 Example code 192
10.4.3 GPR 196 10.4.3.1 When to use GPR 196 10.4.3.2 Example code 196
10.4.4 20 GMR 198 10.4.4.1 When to use 2D GMR 198 10.4.4.2 Example code 199
10.4.5 3D GMR 201 10.4.5.1 When to use 3D GMR 201 10.4.5.2 Example code 201
10.5 USING THE PROPRIETARY RESOURCES 204 10.5 .1 Application Programming 204 10.5.2 Display Modes 205 10.5.3 Initialising the System 206 10.5.4 Other Useful Information for Programmers 209
10.5.4.1 GSR 209 10.5.4.2 GPR 209 10.5.4.3 2D GMR 211 10.5.4.4 3D GMR 213
REFERENCES 215
xiv Using and Administering an Apollo Network
CHAPTER ELEVEN: Dialogue 216
11.1 INTRODUCTION 216 11.1.1 Need for Good User Interfaces 216
11.2 CONCEPTS OF DIALOGUE 216 11.2.1 The Advantages of Using Dialogue 218
11.3 THE APPEARANCE OF DIALOGUE USER 219 INTERFACES 11.3.1 Example Programs 219 11.3. 2 Presentation Techniques 219 11.3.3 Structuring Techniques 221
11.4 WRITING DIALOGUE SOFTWARE 224 11. 4. 1 The Description File 2 2 4
11.4.1.1 Tutorial - creating a 'quit' icon 226 11.4.1.2 Component syntax 229 11.4.1.3 Tutorial- using rows and popups 231 11.4.1.4 Key definitions 234 11.4.1.5 Templates 234 11.4.1.6 Insert files 235 11.4.1. 7 Help 235 11.4.1.8 Tutorial - using oneofs, templates and help 236
11.4.2 The Main Program 237 11.4.3 The Routine File 238
11.4.3.1 Dialogue library routines 238 11.4.4 Translating, Compiling and Binding 239
11.4.4.1 Translating 240 11.4.4.2 Compiling 240 11.4.4.3 Binding 240 11.4.4.4 Tutorial- creating a complete program 241
REFERENCES 243
CHAPTER TWELVE: Operating System Internals 244
12.1 INTRODUCTION 244 12.2 DESIGN REQUIREMENTS 244
12.2.1 Personal Workstations 245 12.2.2 Distributed System 245 12.2.3 Local Area Network 245 12.2.4 Summary 246
12.3 PROCESSES 246 12.3.1 Address Space 247 12.3.2 Process Scheduling 249
12.4 VIRTUAL MEMORY 252
Contents
12 .4. 1 Single Level Store 12.4.2 Implementation
12.4.2.1 Points to note 12.5 THE FILE SYSTEM
12.5.1 Overview 12.5.2 Unique Identifiers 12.5.3 The Naming Server
12. 5. 3. 1 Directory structure 12.5.3.2 Notes on naming
12.5 .4 The Object Storage System 12.5.5 The Streams Manager 12.5.6 Network Filing System
APPENDIX A: Aegis and UNIX Commands
XV
252 255 255 256 256 257 258 258 259 260 261 262
264
FOREWORD
British universities and polytechnics have received significant capital and extra recurrent funding for hardware and software to support the teaching of CAD. This funding has led to a very rapid expansion in the use of high quality graphics workstations in many areas of teaching.
Networked Apollo workstations support a wide range of the software required for undergraduate and postgraduate teaching and a large number of systems have been installed over the last two years. With the large number of staff and students involved in managing and using these workstation clusters, it is highly desirable that there should be a textbook at an appropriate level of detail.
This book benefits considerably from being a joint effort between staff at the University of Manchester and staff at Apollo UK. The input from Apollo guarantees the accuracy of the technical detail at the time of publication and ensures that the systems described are as up to date as possible in such a rapidly developing area. The academic staff have been involved in setting up and running teaching laboratories using Apollo systems for over two years. This experience is essential in selecting the information to be included in a compact introduction to the use and management of networked Apollo workstations.
Detailed treatment of some topics cannot be included in a book of this size. However, the reader of the book will find it much easier to extract any detailed information that may be required from the comprehensive range of Apollo manuals.
J M F Drake, Apollo Computer (UK) Ltd F H Sumner, University of Manchester
March 1988
xvii
PREFACE
This work aims to discuss the hardware, software and networking of Apollo workstations. Many of the topics that are described could each occupy an entire book, and it has therefore been necessary at times to omit detail. It is hoped, nonetheless, that the book will provide a link between the user and the vast quantity of manuals which are provided with a workstation.
Most of the tutorials presented have been tested immediately prior to publication, and it is expected that the majority will be completely accurate. The Editors should be grateful to hear of any mistakes or omissions.
The book is based on the SR9. 5 version of the operating system, although many of the chapters are accurate for all versions of Aegis. It is hoped that major revisions will take place when SR10, together with Open Dialogue, become readily available and commonly used. The Editors would, therefore, be pleased to hear from any Apollo users who would like to contribute to the above work, in particular from those who gain experience using Open Dialogue, the Apollo Network Computing System, and the networking of Apollos to computers produced by other vendors.
Barry Blundell Costas Daskalakis
March 1988
xix
ACKNOWLEDGEMENTS
The Editors wish to express their gratitude to the many people who have helped in the preparation of this work. Professor Frank Sumner (University of Manchester) kindly provided us with the opportunity to produce the book, and Malcolm Stewart of Macmillan Education arranged for its publication.
We have had access to the excellent Apollo computer facilities within the Department of Electrical Engineering of the University of Manchester, and should like to thank Professor P G Farrell (Head of Department) for making these available to us.
During the course of producing this work a great deal of help has been forthcoming from the staff at Apollo Computer (UK) Ltd. We should particularly like to thank those who have written material for the book, and their colleagues who have read and made corrections to it. Our thanks, therefore, to Glenn Brennan, Steve Boniwell, Andrew Jenkins, Dave Catchpole and John Pile, from the technical support group of Apollo, Milton Keynes. Thanks also to Bob Henson, the strategic accounts manager of Apollo, Bracknell. The staff in the training department at Milton Keynes kindly read and corrected a large portion of the final draft of this work, thanks therefore to John Conneely, John Parry, Larry Wiltshire and Cliff Willsher. We are greatly indebted to all the staff at the local Apollo office in Manchester, in particular John Howarth, Dave Kershaw, Ian Stewart, Nigel Thorpe, Mike Rawse, Robby Robinson and Steve Kaye. Let us not forget Rhona Gillespie, whose patience is infinite, and Alan Thwaites, who finally had enough and emigrated to Australia. Thanks also to Mike Drake of Apollo, Milton Keynes, for his support and encouragement. We should also like to acknowledge the help and courtesy shown to us by Traci Hawksworth - yet anothe.r extremely patient Apollo staff member!
The book has been produced using Interleaf Workstation Publication Software on a DN300, which was loaned to us for the purpose by Apollo, Milton Keynes. The typing was done by Kathryn Howard and Lisa Salt, and the formatting was carried out by Jandy Blundell. We should like to thank them all for their contribution.
Our thanks to the staff of the Computer Graphics Unit of the Computer Science Department, particularly Terry Hewitt, for his help with graphics standards in Chapter 9. Finally thanks to Alys ...
xxi