Most any time that you use a computer, you’re going to interact with a file system. Here you see me navigating the file system on my computer to find this presentation. There it is. I started off at my Home folder, inside of there I went to Pictures. And then the filesystems, and there I found this image that I was looking for. This is really convenient. In my case, the data I was looking for was on the hard disk of my local machine. But I didn’t have to remember physically where the data was, i.e., the platter, the track, the sector number, et cetera. Instead, I was able to access the data through a very intuitive interface provided by a file system module of the operating system. There are at least three key abstractions at work here. The first is the notion of the file itself. In reality, the data may not be placed next to each other on a disk orl in the right order. But an application developer, the author of the sketchbook program I’m using for instance, gets to create the data of a file as one big, long contiguous string of bytes. Second is the filename. I don’t have to remember any of the physical information about how my file is stored, the sector number where it starts, for instance. Instead, I get to assign my file an intuitive name, in my case, Image001.tif. Third is the notion of folders, or directories, as we will call them. These are containers for other files or directories that help keep things organized. The idea is that we have an electronic version of what was once the more common physical filing system. We put folders withing folders to help us keep things organized. So in this machine then, I don’t just have a pictures folder but also a documents folder. And within there I have a folder for advanced operating systems. And maybe there’s another one for software development process, etc. And even this home directory sits inside a larger directory for all users, which then sits inside of a directory called root. Which then contains folders for the operating systems and other things. This directory is called the root because if we think of this directory structure as an upside down tree, then this all encompassing directory would be the root or the base of the tree. Indeed, the structure will always be a tree, just by the nature of directories or the nature of physical file folders for that matter. We call the directory immediately above another directory its parent. File systems, for instancce, is the parent directory of image001.tif. Pictures is the parent director of File Systems, et cetera. Together, these three abstractions provide a convenient and almost universal interface for storing and retrieving data from mass storage. In this lecture, we’ll talk about how this interface is implemented and some of the common optimizations. We’ll focus on the disk medium, but many of the ideas we discuss apply to other media as well.