A operating system kernel built from scratch, exploring low-level system development with a hybrid C and Rust approach.
ShadeOS is in its early stages, but it already includes a number of core operating system features:
- Hybrid Kernel: Core components written in C with newer features like the VFS being implemented in Rust.
- Memory Management: A paging-based memory management system.
- Interrupts: A robust interrupt handling system with an Interrupt Descriptor Table (IDT).
- I/O System: Basic support for keyboard input and VGA text mode output.
- File System: A Virtual File System (VFS) abstraction layer with an initial implementation of FAT16.
- Multitasking: Pre-emptive multitasking and process management.
- User Space: Support for running processes in user mode with a system call interface.
- Shell: A basic, interactive command-line shell to interact with the kernel.
You will need the following tools to build and run ShadeOS:
make
gcc
(as part of a cross-compiler toolchain, e.g.,i686-elf-gcc
)nasm
ld
qemu
- A Rust toolchain (
rustc
,cargo
) with the appropriate target.
-
Clone the repository:
git clone https://github.com/nihalawasthi/ShadeOs.git cd ShadeOs
-
Build the project:
You have two alternative methods to build ShadeOS:
A) Convenience Script (for Arch Linux)
For users on an Arch-based distribution, a convenience script is provided. It will automatically install all required dependencies and then build the project.
./install.sh
B) Manual Build (All Systems)
On any other system, ensure you have all the Prerequisites installed first. Then, run the following command to build the project:
make
Both methods will compile the C and Rust code and create a bootable
ShadeOS.iso
image in thebin/
directory.
After a successful build, you can run ShadeOS in an emulator or a virtual machine.
- Using the QEMU Script: The easiest way to test the OS is with the provided script, which launches QEMU with the correct settings:
./run.sh
- Using another Virtual Machine: Alternatively, you can take the generated
bin/ShadeOS.iso
file and boot it in any standard virtual machine software like VMware or VirtualBox.
You can download the latest pre-built bootable ISO image from the GitHub Releases page.
If you discover a bug or security vulnerability, please open an issue or email me directly at [email protected]
. Pull requests are also welcome for fixes!
Contributions are welcome! If you'd like to help improve ShadeOS, please feel free to fork the repository, make your changes, and submit a pull request. For major changes, please open an issue first to discuss what you would like to change.
This project is licensed under the MIT License - see the LICENSE
file for details. (You should add a LICENSE file to your repository).