So that I can get some background introduced a bit earlier for our next project, we are going to skip ahead to another important aspect of any operating system - the file system! A file system is really a kernel driver that abstracts the idea of files and directories onto one or more disks (or network storage).
File systems aren't updated often, and there's a good reason for that -- file systems are complex, and the cost of discovering bugs and losing data can be catestropic! Not many people are willing to run a "beta" file system, because who wants to lose critical data that your organization or business depends upon?
Even though most of us don't pay too much attention to which file system we are using, our operating systems can use and unite multiple file systems at the same time under the common interface of files and directories. File systems in common use today were actually put into practice long ago. Here are some examples:
- NTFS is the most common Windows file system, and it was introduced in 1993.
- FAT is one of the only file systems still commonly understood by all three major operating systems (Windows, Mac, Linux) without a 3rd-party driver, and thumb drives/memory cards still come pre-installed with it. It was introduced in 1977.
- You might use HGFS+ if you use a Mac.
- The ext2/3/4 family of file systems are the most common Linux root file systems. (btrfs has been in beta since I've been in grad school, and I still don't think it's considered "stable".)
All the mentioned file systems perform important roles and are optimized for different characteristics. In the next few lectures, we'll learn about those things, as well as how files are managed.