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
Related Concepts¶
- Abstraction - Software Architecture