Steve D. Pate, Steve D. Pate9780471164838, 9780471456759, 0471164836
Table of contents :
Contents……Page 8
Foreword……Page 18
Introduction……Page 20
A Brief Walk through Time……Page 28
The Early Days of UNIX……Page 30
The Early History of the C Language……Page 31
AT& T’s Commercial Side of UNIX……Page 32
The Evolution of BSD UNIX……Page 34
The NetBSD Operating System……Page 35
Sun Microsystems and SunOS……Page 36
Novell’s Entry into the UNIX Market……Page 37
IEEE and POSIX……Page 38
The System V Interface Definition……Page 39
UNIX International and OSF……Page 40
The Large File Summit……Page 41
Summary……Page 42
File- Based Concepts……Page 44
UNIX File Types……Page 45
File Descriptors……Page 46
Basic File Properties……Page 47
The File Mode Creation Mask……Page 50
Changing File Permissions……Page 51
Changing File Ownership……Page 53
Changing File Times……Page 55
Truncating and Removing Files……Page 56
Directories……Page 57
Special Files……Page 58
Symbolic Links and Hard Links……Page 59
Named Pipes……Page 60
Summary……Page 61
Library Functions versus System Calls……Page 62
Which Header Files to Use?……Page 63
The Six Basic File Operations……Page 64
Duplicate File Descriptors……Page 67
Seeking and I/ O Combined……Page 68
Data and Attribute Caching……Page 69
VxFS Caching Advisories……Page 70
File and Record Locking……Page 73
Advisory Locking……Page 74
File Control Operations……Page 78
Vectored Reads and Writes……Page 79
Asynchronous I/ O……Page 81
Memory Mapped Files……Page 86
64- Bit File Access (LFS)……Page 92
Sparse Files……Page 93
Summary……Page 98
The Standard I/ O Library……Page 100
Standard Input, Output, and Error……Page 101
Opening and Closing a Stream……Page 102
Standard I/ O Library Buffering……Page 104
Reading and Writing to/ from a Stream……Page 106
Seeking through the Stream……Page 109
Summary……Page 111
What’s in a Filesystem?……Page 112
The Filesystem Hierarchy……Page 113
Disks, Slices, Partitions, and Volumes……Page 115
Filesystem Switchout Commands……Page 117
Creating New Filesystems……Page 119
Mounting and Unmounting Filesystems……Page 121
Mounting Filesystems Automatically……Page 125
Mounting Filesystems During Bootstrap……Page 126
Repairing Damaged Filesystems……Page 127
Per Filesystem Statistics……Page 128
User and Group Quotas……Page 130
Summary……Page 131
5th to 7th Edition Internals……Page 132
The UNIX Filesystem……Page 133
User Mode and Kernel Mode……Page 134
UNIX Process- Related Structures……Page 136
File Descriptors and the File Table……Page 137
The Buffer Cache……Page 139
System Call Handling……Page 142
Pathname Resolution……Page 143
Putting It All Together……Page 144
Opening a File……Page 145
Reading the File……Page 146
Summary……Page 147
The Need for Change……Page 148
The File System Switch……Page 149
Mounting Filesystems……Page 150
The Sun VFS/ Vnode Architecture……Page 153
The VFS Layer……Page 156
The Vnode Operations Layer……Page 157
Pathname Traversal……Page 158
The Veneer Layer……Page 159
Changes to File Descriptor Management……Page 160
The Virtual Filesystem Switch Table……Page 161
Changes to the Vnode Structure and VOP Layer……Page 162
Pathname Traversal……Page 166
The Directory Name Lookup Cache……Page 167
Filesystem and Virtual Memory Interactions……Page 169
An Overview of the SVR4 VM Subsystem……Page 170
File I/ O through the SVR4 VFS Layer……Page 173
Memory- Mapped File Support in SVR4……Page 176
Flushing Dirty Pages to Disk……Page 179
Adoption of the SVR4 Vnode Interface……Page 180
Summary……Page 181
The BSD Filesystem Architecture……Page 182
File I/ O in 4. 3BSD……Page 183
The Introduction of Vnodes in BSD UNIX……Page 184
Digital UNIX / True64 UNIX……Page 186
The Filesystem- Independent Layer of AIX……Page 188
File Access in AIX……Page 189
The HP- UX VFS Architecture……Page 190
File I/ O in HP- UX……Page 191
Filesystem Support in Minix……Page 192
Minix Filesystem- Related Structures……Page 193
File I/ O in Minix……Page 194
Per- Process Linux Filesystem Structures……Page 195
The Linux File Table……Page 196
The Linux Inode Cache……Page 197
The Linux Directory Cache……Page 199
The Linux Buffer Cache and File I/ O……Page 200
Linux from the 2.4 Kernel Series……Page 201
The Linux 2.4 Directory Cache……Page 202
Opening Files in Linux……Page 204
The 2. 4 Linux Buffer Cache……Page 205
File I/ O in the 2. 4 Linux Kernel……Page 206
Microkernel Support for UNIX Filesystems……Page 207
High- Level Microkernel Concepts……Page 208
The Chorus Microkernel……Page 209
The Mach Microkernel……Page 212
What Happened to Microkernel Technology?……Page 213
Summary……Page 214
The VERITAS Filesystem……Page 216
VxFS Feature Overview……Page 217
The VxFS Disk Layouts……Page 222
Creating VxFS Filesystems……Page 227
VxFS Journaling……Page 228
Online Administration……Page 231
VxFS Performance- Related Features……Page 233
The UFS Filesystem……Page 239
Early UFS History……Page 240
Block Sizes and Fragments……Page 241
FFS Allocation Policies……Page 242
Additional Filesystem Features……Page 243
Solaris UFS History and Enhancements……Page 244
The ext2 and ext3 Filesystems……Page 251
Features of the ext2 Filesystem……Page 252
The ext3 Filesystem……Page 261
Summary……Page 263
The Evolution of Multiprocessor UNIX……Page 264
Traditional UNIX Locking Primitives……Page 265
Hardware and Software Priority Levels……Page 266
UP Locking and SVR4- Based Filesystems……Page 268
Symmetric Multiprocessing UNIX……Page 269
SMP Lock Types……Page 270
Mapping VxFS to SMP Primitives……Page 272
Summary……Page 274
The /proc Filesystem……Page 276
The Solaris /proc Implementation……Page 277
Tracing and Debugging with /proc……Page 280
The Specfs Filesystem……Page 282
The BSD Memory- Based Filesystem (MFS)……Page 285
Performance and Observations……Page 286
Architecture of the tmpfs Filesystem……Page 287
Performance and Other Observations……Page 288
The Translucent Filesystem……Page 289
The File Descriptor Filesystem……Page 290
Summary……Page 291
Traditional UNIX Tools……Page 292
The tar, cpio, and pax Commands……Page 293
Backup Using Dump and Restore……Page 295
Nonpersistent Snapshots……Page 297
Persistent Snapshot Filesystems……Page 301
Block- Level Incremental Backups……Page 306
Hierarchical Storage Management……Page 307
Summary……Page 310
Clustered and Distributed Filesystems……Page 312
The Network File System (NFS)……Page 313
The Remote File Sharing Service (RFS)……Page 327
The Andrew File System (AFS)……Page 330
The DCE Distributed File Service (DFS)……Page 332
Clustered Filesystems……Page 334
What Is a Clustered Filesystem?……Page 335
Clustered Filesystem Components……Page 336
The VERITAS SANPoint Foundation Suite……Page 340
Other Clustered Filesystems……Page 350
Summary……Page 351
Developing a Filesystem for the Linux Kernel……Page 352
Designing the New Filesystem……Page 353
Obtaining the Linux Kernel Source……Page 355
What’s in the Kernel Source Tree……Page 356
Configuring the Kernel……Page 357
Installing and Booting the New Kernel……Page 359
The printk Approach to Debugging……Page 361
Using the SGI kdb Debugger……Page 362
Source Level Debugging with gdb……Page 364
Building the uxfs Filesystem……Page 368
Creating a uxfs Filesystem……Page 369
Module Initialization and Deinitialization……Page 371
Testing the New Filesystem……Page 372
Mounting and Unmounting the Filesystem……Page 373
Directory Lookups and Pathname Resolution……Page 380
Inode Manipulation……Page 386
File Creation and Link Management……Page 392
Creating and Removing Directories……Page 395
File I/O in uxfs……Page 397
The Filesystem Stat Interface……Page 403
The Filesystem Source Code……Page 405
Summary……Page 432
Glossary……Page 434
References……Page 452
Index……Page 456
Reviews
There are no reviews yet.