A file system is a collection of files and directories that are organized in a specific way. A file system can be used to store data, such as pictures, music, or videos. It can also be used to store data for the purpose of managing your computer’s files and folders. A file system can be divided into two types: mounted and unmounted. A mounted file system is stored on your computer’s hard drive and will show up as an icon in the Windows Explorer window. Unmounted files systems are not stored on your computer’s hard drive but instead they are located in a location called a remote location. When you open Windows Explorer and try to view a file from the remote location, Windows will ask if you want to mount the file system or not. If you choose to mount the file system, then all of the files inside the mounted directory will be visible in Windows Explorer. If you choose not to mount the file system, then all of the files inside the remote directory will remain hidden.


Today’s Question & Answer session comes to us courtesy of SuperUser—a subdivision of Stack Exchange, a community-driven grouping of Q&A web sites.

The Question

SuperUser reader P_Q is curious about file systems, he writes:

Is this simple take on the file system the most accurate way of describing it? Let’s dig a little deeper.

And then I recently started using Linux, and my reference book says in the Linux filesystem everything starts at root and branches off from there. How is that really different from Windows? I mean, it seems the Linux system and the Windows system are just two ways of setting up a directory tree. Is this what file system means?

The Answer

SuperUser contributor Tom Wijsman offers an insightful look at the structure of file systems both within Windows and Linux operating systems. He writes:

For more reading on file systems, make sure to check out the following How-To Geek articles:

Sounds too good to be true…

Let’s take the FAT32 file system as an example. I can install Windows XP on it, but I can also use it on a memory card. On a memory card, you don’t have those folders that you sum up.

So… Don’t confuse the directory layout of a family of operating systems with a file system.

Is this what a file system means?

No… It refers to the underlying bits and bytes that make your directory structure work.

The underlying bits and bytes? Show me FAT32!

Let’s look at what FAT32 looks like, it has:

Some header sectors in the beginning, like Volume ID and Reserved Sectors Two File Allocation Tables, allowing us to figure out where our files are. Clusters containing all our directory and file data. Some very small unused space that we can’t use.

A FAT table consists of a lot of entries that look like this, allowing us to determine where the directory or file is stored in the clusters space, as well as some attributes and size.

A directory entry would point to a list of directory/file entries…

In the clusters space, we can now travel our clusters to find the data we need. A cluster essentially contains data and information where the next fragments are

Do other file systems differ? Show me NTFS!

I’m going to show you an image so you can notice the differences, the rest is homework for the reader: More information can be found on this blog archive or Google.

The main idea is that NTFS is a huge improvement over FAT32 that is more robust/efficient. Having a better idea of (un)used space by using a bitmap to further help against fragmentation. And so on…

What about the file systems on Linux? Show me ext2/3!

The idea is that ext2/ext3 use super blocks and inodes; this allows for soft and hardlinks, directories that are files, files with multiple names and so on. The main gist is abstracting away to allow the file system to be capable of doing more meta-ish stuff…

HTG Explains: The Linux Directory Structure Explained HTG Explains: Which Linux File System Should You Choose? What File System Should I Use for My USB Drive?

 

Have something to add to the explanation? Sound off in the the comments. Want to read more answers from other tech-savvy Stack Exchange users? Check out the full discussion thread here.