Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/cach30verfl0w/overflowos
OverflowOS is a UEFI-based Operating System with a monolithic Kernel, written in Rust
https://github.com/cach30verfl0w/overflowos
Last synced: about 2 months ago
JSON representation
OverflowOS is a UEFI-based Operating System with a monolithic Kernel, written in Rust
- Host: GitHub
- URL: https://github.com/cach30verfl0w/overflowos
- Owner: Cach30verfl0w
- License: gpl-2.0
- Created: 2023-09-26T21:35:38.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-10-17T14:47:30.000Z (about 1 year ago)
- Last Synced: 2023-10-18T14:07:14.019Z (about 1 year ago)
- Language: Rust
- Homepage:
- Size: 224 KB
- Stars: 2
- Watchers: 1
- Forks: 1
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# `OverflowOS`
![GitHub](https://img.shields.io/github/license/Cach30verfl0w/OverflowOS) ![GitHub issues](https://img.shields.io/github/issues/Cach30verfl0w/OverflowOS) ![GitHub code size in bytes](https://img.shields.io/github/languages/code-size/Cach30verfl0w/OverflowOS) ![GitHub commit activity (branch)](https://img.shields.io/github/commit-activity/y/Cach30verfl0w/OverflowOS) ![GitHub last commit (branch)](https://img.shields.io/github/last-commit/Cach30verfl0w/OverflowOS/main)
![GitHub pull requests](https://img.shields.io/github/issues-pr/Cach30verfl0w/OverflowOS)OverflowOS is a UEFI-based Operating System with a monolithic Kernel, fully written in Rust. We support the architectures x86_64 and ARM64, and I'm not planning to implement 32-bit support in the future. You can see my planned features in [this project](https://github.com/users/Cach30verfl0w/projects/5). If you have some ideas, just create [an Issue](https://github.com/Cach30verfl0w/OverflowOS/issues/new).
## Current project packages
- [`OSImage`](https://github.com/Cach30verfl0w/OSImage) - Command-Line Tool to generate image files for Rust Operating Systems (by [Cach30verfl0w](https://github.com/Cach30verfl0w))
- [`kernel`](https://github.com/Cach30verfl0w/OverflowOS/tree/main/crates/kernel) - The original monolithic Kernel of OverflowOS (by [Cach30verfl0w](https://github.com/Cach30verfl0w))
- [`libgraphics`](https://github.com/Cach30verfl0w/OverflowOS/tree/main/crates/libgraphics) - LibGraphics is a library to instrument the Graphics Output Protocol for drawing things or writing Text (by [Cach30verfl0w](https://github.com/Cach30verfl0w))
- [`libcpu`](https://github.com/Cach30verfl0w/libcpu) - LibCPU is a library to interact with platform-independent and platform-dependant features of the CPU (by [Cach30verfl0w](https://github.com/Cach30verfl0w))
- This library currently only supports the architectures x86 and x86_64, but ARM and RISC-V support is also planned
# Install Dependencies
Here are a few steps to install all dependencies to set up a development environment for OverflowOS.**Debian/Ubuntu**
```bash
$> sudo apt update -y && sudo apt install -y qemu-system ovmf xorriso
$> git clone https://github.com/Cach30verfl0w/OSImage
$> cd OSImage
$> cargo install --path ./
```## Run in QEMU
```bash
$> osimage build-image --image-file overflow.img --iso-file overflow.iso
$> osimage run-qemu --iso-file overflow.iso
```## Credits
- `x86_64-unknown-none` target from [phil-opp](https://os.phil-opp.com/minimal-rust-kernel/#target-specification)
- VGA Text Mode Tutorial from [phil-opp](https://os.phil-opp.com/vga-text-mode/)
- Some information from [OSDev.org](https://wiki.osdev.org)
- Information about GDT and IDT from [HackerNoon.com](https://hackernoon.com)