Blogs (1) >>

Hands-on experience is crucial for students to learn about operating systems, but implementing key concepts such as file systems are perceived as being too hard to do for a real operating system in an introductory course on operating systems. To overcome these barriers, we introduce ezFS, a file system for Linux that supports standard file system operations to persistent disk storage, yet is simple enough for students in an introductory operating systems course to design and implement in a short period of time. ezFS takes advantage of commodity file system and block storage interfaces in Linux that simplify file system implementation, such that its implementation requires only a few hundred lines of C code. We leverage standard file system interfaces to also develop an ezFS grader that can automatically grade ezFS implementations so that it is easy to scale its use for teaching a large course. We have successfully assigned ezFS as a group homework assignment in an introductory operating systems course for hundreds of college students. The assignment significantly enhanced students’ understanding of how file systems work in real operating systems, was simpler to implement than even most pseudo Linux file systems, and was considered by students as less difficult to complete than other homework assignments typically assigned for the course.