File Manager – Disk Driver Interface for nanOS 

( Operating Systems Pragmatics CSC 159)

Operating Systems are one of the critical architectural components every Computer Engineering Student should be aware of. Most Operating System course-work is strong on theory and weak on practical. Operating System Pragmatics CSC 159 course at CSUS explains the fundamental principles in great detail, including process management, inter-process communication, semaphores, message passing, input/output, character device drivers, memory management, interrupts, paging and virtual memory. The course-work was designed by Dr. John Clevenger and later extended by Mr. Brian Witt, Dr. W. Chang and D. Perkovich. The arrangement of the course-work allows the students not only to learn the principles theoretically, but also to apply them practically and see how the software works together with the hardware. Some components were not included in the course-work since they cannot be covered in a short time span.  The main aspect of this project is to add an Interface for File Systems and Disk Drivers to the existing course-work model.

As a student of CSC 159, my system level knowledge expanded a lot in a short period of time. We designed our microkernel NANOS by the end of our course-work. For better understanding of File System concepts and Storage System Protocols, I decided to undertake this project and extend my NANOS.

There are many existing File System Models such as Minix V3 FS, Linux ext4, Microsoft NTFS, Microsoft FAT32, Mac OS HFS, etc. There is also Open Source User space File System FUSE. They were all designed to support File System in most of the hardware specification. The File System Design for this project will be based on collective knowledge gathered during research with many open source File Systems.