I believe Version 7 Unix only supported a single file system. Modern operating systems (including Linux) support many, many filesystems. There's a "virtual file system" layer of code in the Linux kernel to make all those different filesystems act like what Posix and Linux programs expect. For example. Linux can use variouis MS-DOS filesystems, and NTFS, and the permissions that files in those systems have is not exactly the user/group/other, read/write/execute that Linux wants. So the virtual filesystem code does the work of reconciling them. Since some filesystems (MS-DOS FAT filesystems and ReiserFS are examples) don't have directories as files, the virtual filesystem code doesn't treat directories as files with a special mark on them, like the Version 7 UFS does. You can do an
open() system call on a directory, but you have to use the
getdents() system call to read entries from directories.