As I know, Linux has an abstract layer of all filesystems and this layer is VFS. If I create a new filesystem, I should follow rules made by VFS (see Anatomy of the Linux virtual file system switch for more information). After I made this new filesystem, I am going to mount it to the directory hierarchy. But I have a problem here: how the linux OS know my filesystem?Actually, there can be many filesystems in Linux. Some of them are mounted and can be found with command mount, others are not mounted but you can mount them anytime you like.  Are these unmounted ones recorded in some place in the OS? I know there are two files /etc/fstab and /etc/filesystems may be concerned with my question but I am not sure.
How does Linux keep track of filesystems?
linux;filesystems
Filesystems that aren't mounted are not accessible at the moment. You might be able to modify them by indirect means, such as accessing the underlying device directly (for filesystems stored on a local disk) or by accessing them from another machine (for network filesystems). But otherwise, unmounted filesystems don't exist as far as the OS is concerned. Given the existence of network filesystems (amongst others), there is an unending supply of unmounted filesystems (every directory on every).Think of the file /etc/fstab as a configuration file for the mount command. It contains shortcuts, so that you can call mount /path/to/mount/point or mount /dev/device_name and mount will search for a matching line in /etc/fstab and complete the command line with a device name or mount point, a filesystem type and mount options. If an entry has the user option, any user may call the mount command on this entry (in general, mount is reserved to root).In addition, /etc/fstab lists filesystems that are mounted at boot time. All entries in that file that do not have the noauto option are mounted at boot time with the supplied options. There are usually other filesystems not mentioned in this file that are mounted by boot scripts (on a typical Linux system, this includes /dev, /dev/pts, /proc, /sys, and a few more)./etc/filesystems is a rarely-used feature of mount under Linux that allows you to customize its behavior when you don't pass a filesystem type or pass auto. Without this file, mount tries the filesystem types listed in /proc/filesystems. The filesystem types are tried in sequence: if mounting with the first entry fails, mount tries the second, and so on.