"PolyFS: An Extensible, Underspecified, Pedagogical File System and Disk Emulator"
Foaad Khosmood, Phillip L. Nico · 2025
In recent years, teaching file systems at the undergraduate level has become increasingly challenging.File systems, while essential to most computer systems, are almost never offered as an exclusive required course for a computer science curriculum.The topic is usually taught as part of a course on operating systems (OS), along with other introductory topics such as process management, scheduling, concurrency, deadlocks, distributed processing and multiprocessing.Introductory OS courses are typically required in computer science programs but the subject matter has grown tremendously in depth and case studies, making it difficult to spend any significant time on any individual topic.In this environment, professors can barely afford to cover the basics, let alone in-depth implementation of OS issues.PolyFS is proposed as a solution to provide class assignments meant to exercise many of the established OS principles, while offering some level of design and implementation experience to students.Specifically, we stress three advantages for using PolyFS in an instructional setting: Variety, scalability and modularity.We are developing PolyFS, a polymorphic file system assignment and corresponding storage device emulator compatible with a variety of operating systems.PolyFS specification includes a very basic block-device emulator making it easy to use regular Unix files, or even web-based services, as emulated disks.The file system itself is intentionally under-specified to allow instructors to focus on particular aspect of file systems in their assignments and students to actually design and implement important sub-systems using algorithms covered during lecture.