SEARCH

How-To Geek

Is a File System Just a Bunch of Folders? (File Systems Explained)

image

On the surface your operating system’s file system might just look like a big pile of folders, but surely there is more to it than that. Read on as we investigate what lies beneath the surface of the file system.

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:

I have used Windows since childhood, and when I hear the phrase “Windows files system” I think of directories (folders) within directories, a folder called SYSTEM, a folder called PROGRAM FILES, etc. Is this what the system is? Just the layout of the folders?

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?

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

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:

Just the layout of the folders?

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…

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

 


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.

Jason Fitzpatrick is warranty-voiding DIYer and all around geek. When he's not documenting mods and hacks he's doing his best to make sure a generation of college students graduate knowing they should put their pants on one leg at a time and go on to greatness, just like Bruce Dickinson. You can follow him on if you'd like.

  • Published 01/17/13

Comments (7)

  1. Diogo

    nice, so in fat32 F*(4bytes) marks a cluster end, if a file have it as data, wouldn’t it became corrupt?

    in ntfs a bitmap is a 1024block with entries information?

  2. DW (SA-IT)

    Wonderful, thanks for the illustrations,
    DW.

  3. Joyce Walton

    When I was running Windows XP, my internal drive was FAT32 and my external drive was NTFS and my defragging software (some internal to Windows, others purchased from ATI and O&O) defragged both types of drive. The defragging software packages did it very differently. Now I’m on Windows Vista, both drives are NTFS. I still haven’t found how to defrag them! But I keep seeing warnings about using nothing but the Windows built-in defragger, but I don’t even know how to find and use it! Any suggestions?
    Quite apart from defragging, I’m feeling lost without the File and Edit menus and horribly lost without MS-DOS. Would you recommend reverting to Windows XP? I’m really finding Vista all but useless!
    Joyce

  4. JahPickney

    @Joyce Walton

    When I used Vista, and now with 7, I never used the Windows built-in defragger. I used IOBit Smart Defrag. Worked just fine. I must agree, however, that Vista is all but useless.

  5. williambaugh

    @Joyce Walton

    click my computer icon, choose propities, select tools.
    depending on your OS, should have defrag, backup.
    but defragging a large drive can take a long time.

    or click start, click run, type in defrag and press return.

    look in system or system32 for a file named cmd.exe <– current verison of ms-dos which isn't really ms-dos anymore.

  6. whizzed

    I found all widows De-fragmentation very slow I use auslogics (free) the job is done in a few minutes. beware of their registry cleaner (free) though once a week is sufficient

  7. oldpro

    Vista was useless. However if you want to learn to love it, just try Windows8. Vista will be wonderful.

Enter Your Email Here to Get Access for Free:

Go check your email!