MyOS is a simple operating system project .
- .cargo: Contains Cargo related configurations.
- .notes: Directory for personal notes.
- src: Contains the source code of the operating system.
- allocator: Source code related to memory allocation.
- task: Source code related to task management.
- target: Directory where build outputs are stored.
- tests: Contains tests for the operating system.
- .gitignore: Specifies intentionally untracked files to ignore.
- Cargo.lock: Automatically generated file that locks dependencies.
- Cargo.toml: Manifest file for Rust projects.
- README.md: You are here.
- x86_64.json: JSON file containing x86_64 target specifications.
- bump.rs: Implementation of a bump allocator.
- fixed_size_block.rs: Implementation of a fixed size block allocator.
- linked_list.rs: Implementation of a linked list allocator.
- executor.rs: Task executor implementation.
- keyboard.rs: Keyboard task implementation.
- mod.rs: Module declaration.
- simple_executor.rs: Simple task executor implementation.
- basic_boot.rs: Test for basic boot functionality.
- heap_allocation.rs: Test for heap memory allocation.
- should_panic.rs: Test for panic behavior.
- stack_overflow.rs: Test for stack overflow.
To build and run MyOS, follow these instructions:
1.Clone the repository to your local machine
git clone https://github.com/Kernel-rb/MyOS.git
- Change the working directory to the project directory
cd MyOS
- Build the project using Cargo
cargo build
- Run the project using QEMU
cargo run
For more insights into operating system development in Rust, consider referring to the following blog: The Blog of Philipp Oppermann. 📖