This was a fun personal Project based on reading the OS-Dev Document by Nick Blundell, as well as referring to the tutorial by cfenollosa. I took on the task of trying to create my own OS to get more comfortable with low level computing, and fully grasp the concepts I was taught in my Operating Systems course.
- run the script
./config.sh
to install dependencies - build a i686-elf cross compiler by running
./build_cross_compiler.sh
if that doesn't work, you can follow the instructions given here - enter the command
source path.sh
. This will be a required step every time you create a new terminal process to run mOS, or alternatively you can save the $PATH in your .bashrc file - Compile and start mOS by running
./boot.sh
and the QEMU terminal will pop up as shown in the image below Alternatively you can entermake
to compile the program andmake run
to run the program. You can even runmake debug
to run mOS in debug mode which uses gdb.
- Created boot sector
- Can enter in 32-bit mode
- Kernel that echos users commands and can malloc physical memory
- Video Drivers
- Shell
- Interrupts
- memory allocation
- File system
- Memory management
- Set up Network Protocols
- Security Protocols and Fault Tolerant design
- more function calls