Every hard disk is divided into several partitions, and each of these contains a file system. While Windows® assigns a letter to each of these file systems (well, actually only to those it recognizes), GNU/Linux has a unique tree structure of files, and each file system is mounted at one location in that tree structure.
Just as Windows® needs a C: drive, GNU/Linux must be able to mount the root of its file tree (/) on a partition which contains the root file system. Once the root is mounted, you can mount other file systems in the tree structure at various mount points within the tree. Any directory below the root structure can act as a mount point, and you can mount the same file system several times on different mount points.
This allows great configuration flexibility. For example, if you were to configure a web server, it's fairly common to dedicate an entire partition to the directory which contains the web server's data. The directory which usually contains the data is /var/www and acts as the mounting point for the partition. Also, a big /home partition should be considered if you plan on downloading a large amount of software. You can see in Figure 8.1, “A Not Yet Mounted File System” and Figure 8.2, “File System Is Now Mounted” how the system looks before and after mounting the file system.
As you can imagine, this offers a number of advantages: the tree structure will always be the same, whether it's on a single file system or extended over several dozen. This flexibility allows you to move a key part of the tree structure to another partition when space becomes scarce, which is what we are going to do here.
There are two things you need to know about mount points: