The filesystem is global mutable state

Every program has full(-ish) access to everything on the filesystem.

This usually isn’t a problem because each program often has its own section of the filesystem that it works with, or is explicitly given files outside of that section to work with.

However, the fact that every part of a program (including libraries that are pulled in) automatically has full access the filesystem means that access cannot be controlled or traced, which is problematic for two reasons: