Quiz Entry - updated: 2026.07.07
What is the Unix "everything is a file" philosophy?
In Unix/Linux nearly every I/O resource — devices, pipes, sockets — is exposed as a "file": a byte stream you open, read, write, and close.
Because the same handful of operations work on all of them, programs need no device-specific code, can be chained together with pipes, and have permissions applied to them uniformly.
A file = sequence of bytes
"Everything is a file" includes:
- Disk (obviously)
- Keyboard
- Mouse
- Display
- Network connections
- Shared memory
- Pipes between processes
Benefits:
- Single, consistent interface for all I/O
- Programs don't need device-specific code
- Easy to combine programs (pipelines)
- Permissions work uniformly
File operations: open, read, write, close, seek - work on ALL these "files."
Go deeper:
Everything is a file (Wikipedia) — file descriptors, /dev, and procfs/sysfs unifying devices and kernel state behind file operations.