Aim
The aim of the project is to conduct research upon existing operating system kernels based on Assembly, C, and Rust and then implement a minimal bootloader, kernel and a userspace to create a minimal x86 32 bit operating system based on the strengths of the researched kernels and languages.
Objective
- Evaluate existing kernels in Assembly, C, and Rust
- Gather and understand the strengths of each language and determine their capabilities
- Implement a minimal x86 32 bit bootloader, kernel, and userspace based on the strengths of the languages
- Find methods to integrate Assembly, C, and Rust together
- Evaluate the project based on criteria mentioned in the evaluation section
- Display the concepts of OS development and system programming
- Understand proper OS design process and practices
- Explain concepts of memory safety
- Understand the role of Assembly, C, and Rust in OS development and system programming
- Try to explain the modern choices in OS development
Links
To view the weekly journal: Week 1 | Week 2 | Week 5 | Week678
To view the sources used for the report and the project: Sources
To view the changelog: Changelog
To view the developer documentation (installation and verification): Developer
| To view the architecture diagrams: Boot Diagram | Kernel Diagram | Overall architecture Diagram |
To view the errors faced for Assembly during the learning and development process: Assembly Error Log
To view the errors faced for C during the learning and development process: C Error Log
| To view the bootloader code: Bootloader Code | Bootloader Stage Two Code | Bootloader Makefile | Tools Used |
To view information about cross compiler GCC: Cross Compiler GCC