What does the jargon filesystem mean

directory-structurefilesystemsterminology

Sometimes when I go through sections of Linux books about filesystem, it may turn out that it is a chapter talking about the directory structure of a standard Linux system, like /proc, /dev, /etc, /usr directories, with a brief explanation. Sometimes it may be about filesystem types like ext3, ext4 and nfs, dos, etc. I feel quite confused about that. Which one is correct? Or did I miss something?

In short, my question is:

The word filesystem means directory structure of Linux system or things like ext3, ext4, fat32, etc.?

Best Answer

A filesystem is both a reference to a tree structure of directories and files as well as a overarching structure that can be placed on a physical medium such as a hard drive or other similar types of medium.

At the end of of the day they're both layers of abstraction that people create so that things are standardized.

The directories + files analogy used is to mimic how people think, with respect to the physical world for storing items (files) inside of something (folders).

So too is a filesystem such as ext4 of fat32. Here it might not be so obvious, but the structure that this type of filesystem provides serves the same purpose, just at a lower level.

For example, a raw disk is just a sequence of bits. By creating a structure on top of it using inodes, we're able to access sections of the disk in an organized methodical fashion.

Notice the image of the inode structure (from wikipedia article titled: inode pointer structure

                         inode structure

The structure of a filesystem representing files + directories

        ss of unix fs

computer architectures

One thing you'll notice as you continue to study computer architectures is that the same concepts are used over and over again. The notion of hostnames is nested too.

                                   .---> <-----.
                                   |           |
                               .------.    .------.
                 ^------------>| .com |    | .net |
                 |             '------'    '------'
                 |                 ^
                 |                 |
             .--------.    .---------------.
             | google |    | stackexchange |
             '--------'    '---------------'
                  ^                ^
                  |                |
               .-----.          .------.
               | www |          | unix |
               '-----'          '------'

Or in programming, class inheritance (Ruby):

class Mammal  
  def breathe  
    puts "inhale and exhale"  
  end  
end  


class Cat < Mammal  
  def speak  
    puts "Meow"  
  end  
end  

jake = Cat.new  
jake.breathe  
jake.speak  
Related Question