Repo contains the project files of the Experimental Operating System as a part of the OS Lab Course I took in Sem 4 at NITC
This repository chronicles all stages of building eXpOS from scratch, turning bare metal into a functioning kernel.
- Stage 1 - Setting up the system
- Stage 2 - Understanding the file system
- Stage 3 - Bootstrap loader
- Stage 4 - Learning the SPL language
- Stage 5 - XSM debugging
- Stage 6 - Running a user program
- Stage 7 - ABI and XEXE format
- Stage 8 - Handling timer interrupt
- Stage 9 - Handling kernel stack
- Stage 10 - Console output
- Stage 11 - Introduction to ExpL
- Stage 12 - Introduction to multiprogramming
- Stage 13 - Boot module
- Stage 14 - Round robin scheduler
- Stage 15 - Resource manager module
- Stage 16 - Console input
- Stage 17 - Program loader
- Stage 18 - Disk interrup handler
- Stage 19 - Exception handler
- Stage 20 - Process creation and termination
- Stage 21 - Process synchronization
- Stage 22 - Semaphores
- Stage 23 - File creation and deletion
- Stage 24 - File read
- Stage 25 - File write
- Stage 26 - User management
- Stage 27 - Pager module
- Stage 28 - Multi-core extension - parlial implementation due to buggy startfiles
- compile_script.sh - Script which when placed in the myexpos or mynexpos directory and run will compile every expl and spl code file. Updating the file path is necessary.
- batch.xfs - Every stage has its own batch file which has the necessary commands to load the end product of the stage.
- Some earlier stages may not work as intended if run in the commit of a further stage. For best results, checkout stage completion commit of the stage to be run.
- Documentation - ExposNITC
- Portfolio - Elias Joby
- OS LAB - eXpOSNitc