Skip to content

The File Abstraction

A file as a named, persistent byte sequence with associated metadata provides a uniform interface over diverse storage implementations, enabling storage-independent programming.

Tension Addressed

Simplicity vs. I/O Efficiency

Recognizable As

File handles/descriptors, seek operations, file paths and naming, metadata (permissions, timestamps), the "everything is a file" philosophy

Canonical Sources

Ritchie & Thompson, "The UNIX Time-Sharing System" (1974); any operating systems textbook

Transfers To

Object storage (files as objects), database blob storage, stream abstractions, virtual file systems

The file abstraction is so fundamental that it shapes how we think about persistent data, even when the underlying storage has no notion of "files."

Sub-concepts: - Inode separation: Metadata stored separately from content, enabling hard links and efficient directory operations - Block storage: Files mapped to fixed-size blocks, explaining fragmentation and allocation strategies