In this project, I built a simple operating system which uses x86 architecture, and supports multithreading, running user programs and a basic file system.
The project was designed with three key pieces of functionality in mind:
-
User Programs: Developing support for user programs, to allow for argument passing, floating point instructions, process control syscalls and file operation syscalls.
-
Multi-threading: Building support for a basic threading system, to facilitate multithreaded user programs with adequate support for scheduling.
-
File Systems: Developing a buffer cache, extensible files to allow the user to modify the size of files, and the ability to create subdirectories.