- In the previous lesson
you have learned how to work with partitions.
Now I'm going to teach you what to do with them.
That means filesystems.
A filesystem is used to store files on disks.
You cannot store files directly on a partition.
You need a filesystem.
And that is because filesystems
are addressing blocks to take care of the file allocation.
And Linux filesystems in general are compatible
to the POSIX standard, which defines properties
that can be stored in the filesystem.
And these properties are stored in the inode.
In the inode, specific blocks
that are used for storage are addressed
and other features are stored as well.
And these features include user information,
permission dates, and advanced features
that might be used.
Short, anytime you use LS minus L,
the result comes from the inode.
There are different filesystem types.
Most filesystems are used to store files on block devices.
There are also remote filesystems like NFS
which define how files are stored on remote servers
or pseudo filesystems like /proc, /dev, and /sys
which are managed by the kernel
and used for Linux internal administrative processes.
That is the Virtual Filesystem or VFS, which is used
by the Linux kernel as a generic filesystem interface.
And the VFS allows for working
with different filesystems by using specific kernel modules.
And that's convenient because of the VFS,
The kernel only has to deal with one filesystem,
that's the VFS.
And the VFS is the abstraction layer
where all the other filesystems are plugging in.
Let me visualize how this VFS is working.
Alright, so let me show you
how these filesystems are organized.
In the end, it all starts with the kernel.
And the thing is that the kernel
doesn't like all these different drivers too much.
So the kernel talks to VFS
and the VFS is the Virtual File System.
It's a generic abstraction of all the file systems.
And next, because of this VFS,
you have these different file system modules
like XFS and Ext4 and BtrFS,
and whatever you want.
There's one special filesystem module
that I would like to mention as well.
And it is FUSE.
FUSE is for FileSystems in User Space.
Now why is FUSE interesting?
Well, FUSE is interesting because it allows you to to work
with filesystems that are not directly supported
by the Linux kernel.
Like for instance, the ZFS filesystem.
There's no direct support,
but the fact that it's not directly supported
is taken away by using this FUSE driver.
And that is how Ubuntu is offering support
for this ZFS filesystem.
FUSE is interesting because through FUSE
you can virtually support any filesystem
in a Linux environment.
So on Linux you will find
a couple of common filesystems
to start with, there is Ext4,
which is old, mature, very reliable,
and still the most common filesystem.
It is used on Ubuntu, for instance,
as a default filesystem.
XFS was introduced in 1993 by SGI
as the first 64-bit high performance filesystem.
And it has been adopted by Red Hat Enterprise, Linux,
and later as a default filesystem.
You still find it as a default filesystem in L9.
Btrfs or butter Fs as we should say,
is a Copy on Write or CoW file system.
That's also the joke where Butter FS comes
from according to the main developer.
BtrFS is a cow file system, and butter comes
from a cow and that's why you should say butter Fs.
So this Copy on Write file system uses internal
logical volumes to address files in a flexible way.
It is used
by different distributions including Susa and Fedora Linux.
And there are other filesystems as well, like ZFS
which is comparable to Btrfs
but not supported by the Linux kernel.
Some Linux distributions play a trick to
include ZFS as well, but ZFS is really a BSD file system
not a Linux file system.
Ntfs-ng is a Linux implementation
for a Windows NTFS compatible filesystem.
exfat and vfat are the most compatible filesystems.
They work on all operating systems like Windows and MacOS
and also Linux,
and therefore they are perfect candidate
for USB thumb drive
of the two, exfat is newer, vfat is older
so exfat is probably the best candidate
for formatting your USB media.
There's NFS, which is the Network Filesystem.
It has been available as a default
for file sharing on Unix for decades.
And CIFs is another remote file system.
It's Common Internet FileSystem (CFIS)
and it is used to access Windows shares.
In the next video I'll tell you more
about Ext4 filesystems.