jim@hoptoad.uucp (Jim Joyce) (05/29/86)
Those who read to the end of the blurb regarding the Usenix tutorial "UNIX System V Internals" found a reference to Maury Bach's forthcoming "The Design of the UNIX Operat- ing System. I have managed to get hold of a part of the book, in particular the Table of Contents, which follows. Preface.................................................... xi Chapter 1 General Overview of the System.................. 1 1.1 History............................................... 1 1.2 System Structure...................................... 4 1.3 User Perspective...................................... 6 1.4 Operating System Services............................. 14 1.5 Assumptions about Hardware............................ 15 1.6 Summary............................................... 18 Chapter 2 Introduction to the Kernel...................... 19 2.1 Architecture of the UNIX Operating System............. 19 2.2 Introduction to System Concepts....................... 22 2.3 Kernel Data Structures................................ 34 2.4 System Administration................................. 34 2.5 Summary and Preview................................... 36 2.6 Exercises............................................. 37 Chapter 3 The Buffer Cache................................ 38 3.1 Buffer Headers........................................ 39 3.2 Structure of the Buffer Pool.......................... 40 3.3 Scenarios for Retrieval of a Buffer................... 42 3.4 Reading and Writing Disk Blocks....................... 53 3.5 Advantages and Disadvantages of the Buffer Cache...... 56 3.6 Summary............................................... 57 3.7 Exercises............................................. 58 Chapter 4 Internal Representation of Files................ 60 4.1 Inodes................................................ 61 4.2 Structure of a Regular File........................... 67 4.3 Directories........................................... 73 4.4 Conversion of a Path Name to an Inode................. 74 4.5 Super Block........................................... 76 4.6 Inode Assignment to a New File........................ 77 4.7 Allocation of Disk Blocks............................. 84 4.8 Other File Types...................................... 88 4.9 Summary............................................... 88 4.10 Exercises............................................. 89 Chapter 5 System Calls for the File System................ 91 5.1 Open.................................................. 92 5.2 Read.................................................. 96 5.3 Write................................................. 101 5.4 File and Record Locking............................... 103 5.5 Adjusting the Position of File I/O--lseek............. 103 5.6 Close................................................. 103 5.7 File Creation......................................... 105 5.8 Creation of Special Files............................. 107 5.9 Change Directory and Change Root...................... 109 5.10 Change Owner and Change Mode.......................... 110 5.11 Stat and Fstat........................................ 110 5.12 Pipes................................................. 111 5.13 Dup................................................... 117 5.14 Mounting and Unmounting File Systems.................. 119 5.15 Link.................................................. 128 5.16 Unlink................................................ 132 5.17 File System Abstractions.............................. 138 5.18 File System Maintenance............................... 139 5.19 Summary............................................... 140 5.20 Exercises............................................. 140 Chapter 6 The Structure of Processes...................... 146 6.1 Process States and Transitions........................ 147 6.2 Layout of System Memory............................... 151 6.3 The Context of a Process.............................. 159 6.4 Saving the Context of a Process....................... 162 6.5 Manipulation of the Process Address Space............. 171 6.6 Sleep................................................. 182 6.7 Summary............................................... 188 6.8 Exercises............................................. 189 Chapter 7 Process Control................................. 191 7.1 Process Creation...................................... 192 7.2 Signals............................................... 200 7.3 Process Termination................................... 212 7.4 Awaiting Process Termination.......................... 213 7.5 Invoking Other Programs............................... 217 7.6 The User ID of a Process.............................. 227 7.7 Changing the Size of a Process........................ 229 7.8 The Shell............................................. 232 7.9 System Boot and the Init Process...................... 235 7.10 Summary............................................... 238 7.11 Exercises............................................. 239 Chapter 8 Process Scheduling and Time..................... 247 8.1 Process Scheduling.................................... 248 8.2 System Calls for Time................................. 258 8.3 Clock................................................. 260 8.4 Summary............................................... 268 8.5 Exercises............................................. 268 Chapter 9 Memory Management Policies...................... 271 9.1 Swapping.............................................. 272 9.2 Demand Paging......................................... 285 9.3 A Hybrid System with Swapping and Demand Paging....... 307 9.4 Summary............................................... 307 9.5 Exercises............................................. 308 Chapter 10 The I/O Subsystem.............................. 312 10.1 Driver Interfaces..................................... 313 10.2 Disk Drivers.......................................... 325 10.3 Terminal Drivers...................................... 329 10.4 Streams............................................... 344 10.5 Summary............................................... 351 10.6 Exercises............................................. 352 Chapter 11 Interprocess Communication...................... 355 11.1 Process Tracing....................................... 356 11.2 System V IPC.......................................... 359 11.3 Network Communications................................ 382 11.4 Sockets............................................... 383 11.5 Summary............................................... 388 11.6 Exercises............................................. 389 Chapter 12 Multiprocessor Systems.......................... 391 12.1 Problem of Multiprocessor Systems..................... 392 12.2 Solution with Master and Slave Processors............. 393 12.3 Solution with Semaphores.............................. 395 12.4 The TUNIS System...................................... 410 12.5 Performance Limitations............................... 410 12.6 Exercises............................................. 410 Chapter 13 Distributed UNIX Systems........................ 412 13.1 Satellite Processors.................................. 414 13.2 The Newcastle Connection.............................. 422 13.3 Transparent Distributed File Systems.................. 426 13.4 A Transparent Distributed Model without Stub Processes 429 13.5 Summary............................................... 430 13.6 Exercises............................................. 431 Appendix -- System Calls................................... 434 Bibliography............................................... 454 Index...................................................... 458 P.S.: Join me for wine, cheese, and books 4-7pm Monday-Thursday at Usenix in Atlanta at the Atlanta Hilton and Towers! Snail: Jim Joyce's UNIX Bookstore, 47 Potomac St, SF, CA 94117 AT&T: (415) 626-7581