File system
A file system is an abstraction provided to users by an operating system, using secondary storage (typically disk), which can be used to store blocks of data of all kinds (program source, executable binary, document source and formatted output, etc, etc), using names which make sense to the users.
The file system takes the blocks (normally identified with a block number) on a disk, and first allocates enough of them to hold a file of the desired size, and then makes a record of which blocks belong to which files. A file system also normally includes directories, which are collections of related files.
Modern file systems are tree-structured; i.e. a directory can also include other directories, the whole being structured as a tree descending from a root directory.
Approaches
Two main approaches have been used to organize file systems.
Originally, the information as to which blocks were part of a file was kept in the directory, along with other meta-information about the file (date last modified, etc); this approach was used in early operating systems such as Multics, as well as later ones like Windows.
UNIX started a new approach, in which such information was kept in a separate structure (called an inode in UNIX); directories only held mappings from file-names (visible to users) to inode numbers.