[net.unix] The Design of the UNIX Operating System

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