You are previewing UNIX Filesystems: Evolution, Design, and Implementation.
O'Reilly logo
UNIX Filesystems: Evolution, Design, and Implementation

Book Description

  • Covers all versions of UNIX, as well as Linux, operating systems that are used by the majority of Fortune 1000 companies for their mission-critical data

  • Offers more detail than other books on the file input/output aspects of UNIX programming

  • Describes implementation of UNIX filesystems over a thirty year period

  • Demonstrates VERITAS and other filesystem examples

  • Table of Contents

    1. Cover Page
    2. Title Page
    3. Copyright
    4. Contents
    5. Foreword
    6. Introduction
      1. Who Should Read This Book?
      2. How This Book Is Organized
      3. Typographical Conventions
      4. Accessing Manual Pages
      5. Acknowledgements
    7. 1: UNIX Evolution and Standardization
      1. A Brief Walk through Time
      2. How Many Versions of UNIX Are There?
      3. Why Is UNIX So Successful?
      4. The Early Days of UNIX
      5. The Evolution of BSD UNIX
      6. Sun Microsystems and SunOS
      7. System V Release 4 and Variants
      8. Novell's Entry into the UNIX Market
      9. Linux and the Open Source Movement
      10. UNIX Standardization
      11. Summary
    8. 2: File-Based Concepts
      1. UNIX File Types
      2. File Descriptors
      3. Basic File Properties
      4. The File Mode Creation Mask
      5. Changing File Permissions
      6. Changing File Ownership
      7. Changing File Times
      8. Truncating and Removing Files
      9. Directories
      10. Special Files
      11. Symbolic Links and Hard Links
      12. Named Pipes
      13. Summary
    9. 3: User File I/O
      1. Library Functions versus System Calls
      2. Which Header Files to Use?
      3. The Six Basic File Operations
      4. Duplicate File Descriptors
      5. Seeking and I/O Combined
      6. Data and Attribute Caching
      7. File and Record Locking
      8. File Control Operations
      9. Vectored Reads and Writes
      10. Asynchronous I/O
      11. Memory Mapped Files
      12. 64-Bit File Access (LFS)
      13. Sparse Files
      14. Summary
    10. 4: The Standard I/O Library
      1. The FILE Structure
      2. Standard Input, Output, and Error
      3. Opening and Closing a Stream
      4. Standard I/O Library Buffering
      5. Reading and Writing to/from a Stream
      6. Seeking through the Stream
      7. Summary
    11. 5: Filesystem-Based Concepts
      1. What's in a Filesystem?
      2. The Filesystem Hierarchy
      3. Disks, Slices, Partitions, and Volumes
      4. Raw and Block Devices
      5. Filesystem Switchout Commands
      6. Creating New Filesystems
      7. Mounting and Unmounting Filesystems
      8. Repairing Damaged Filesystems
      9. The Filesystem Debugger
      10. Per Filesystem Statistics
      11. User and Group Quotas
      12. Summary
    12. 6: UNIX Kernel Concepts
      1. 5th to 7th Edition Internals
      2. The UNIX Filesystem
      3. Filesystem-Related Kernel Structures
      4. System Call Handling
      5. Pathname Resolution
      6. Putting It All Together
      7. Summary
    13. 7: Development of the SVR4 VFS/Vnode Architecture
      1. The Need for Change
      2. Pre-SVR3 Kernels
      3. The File System Switch
      4. The Sun VFS/Vnode Architecture
      5. The SVR4 VFS/Vnode Architecture
      6. Summary
    14. 8: Non-SVR4-Based Filesystem Architectures
      1. The BSD Filesystem Architecture
      2. Digital UNIX / True64 UNIX
      3. The AIX Filesystem Architecture
      4. The HP-UX VFS Architecture
      5. Filesystem Support in Minix
      6. Pre-2.4 Linux Filesystem Support
      7. Microkernel Support for UNIX Filesystems
      8. Summary
    15. 9: Disk-Based Filesystem Case Studies
      1. The VERITAS Filesystem
      2. The UFS Filesystem
      3. The ext2 and ext3 Filesystems
      4. Summary
    16. 10: Mapping Filesystems to Multiprocessor Systems
      1. The Evolution of Multiprocessor UNIX
      2. Traditional UNIX Locking Primitives
      3. Symmetric Multiprocessing UNIX
      4. Summary
    17. 11: Pseudo Filesystems
      1. The /proc Filesystem
      2. The Specfs Filesystem
      3. The BSD Memory-Based Filesystem (MFS)
      4. The Sun tmpfs Filesystem
      5. Other Pseudo Filesystems
      6. Summary
    18. 12: Filesystem Backup
      1. Traditional UNIX Tools
      2. Frozen-Image Technology
      3. Block-Level Incremental Backups
      4. Hierarchical Storage Management
      5. Summary
    19. 13: Clustered and Distributed Filesystems
      1. Distributed Filesystems
      2. Clustered Filesystems
      3. Summary
    20. 14: Developing a Filesystem for the Linux Kernel
      1. Designing the New Filesystem
      2. Obtaining the Linux Kernel Source
      3. Installing Debugging Support
      4. Building the uxfs Filesystem
      5. Creating a uxfs Filesystem
      6. Module Initialization and Deinitialization
      7. Mounting and Unmounting the Filesystem
      8. Directory Lookups and Pathname Resolution
      9. Inode Manipulation
      10. File Creation and Link Management
      11. Creating and Removing Directories
      12. File I/O in uxfs
      13. The Filesystem Stat Interface
      14. The Filesystem Source Code
      15. Suggested Exercises
      16. Summary
    21. Glossary
    22. References
    23. Index