transfer to local git!
This commit is contained in:
99
README.md
Normal file
99
README.md
Normal file
@@ -0,0 +1,99 @@
|
||||
# 🪲 ScarabOS
|
||||
|
||||
A minimal hobby operating system written in Rust for x86_64-EFI architecture.
|
||||
|
||||
ScarabOS is a learning project focused on systems programming concepts. Purely a project for understanding how operating systems work from the ground up.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Prerequisites
|
||||
|
||||
Ensure you have the following installed:
|
||||
|
||||
| Tool | Purpose |
|
||||
|------|---------|
|
||||
| `rustup` | Rust toolchain manager ([install here](https://rustup.rs/)) |
|
||||
| `grub` | Bootloader |
|
||||
| `nasm` | x86 assembler |
|
||||
| `qemu-full` | Virtualization (recommended for testing) |
|
||||
| `xorriso` | ISO image creation |
|
||||
| `mtools` | FAT filesystem utilities |
|
||||
|
||||
**On Arch Linux:**
|
||||
```bash
|
||||
sudo pacman -S grub nasm qemu-full xorriso mtools
|
||||
```
|
||||
|
||||
**On Ubuntu/Debian:**
|
||||
```bash
|
||||
sudo apt install grub-pc-bin nasm qemu-system-x86 xorriso mtools
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔧 Building from Source
|
||||
|
||||
### 1. Set up Rust
|
||||
|
||||
Install the nightly toolchain (pinned to January 2024 for stability):
|
||||
|
||||
```bash
|
||||
rustup install nightly
|
||||
rustup component add rust-src
|
||||
```
|
||||
|
||||
### 2. Create virtual disk
|
||||
|
||||
Generate a raw disk image for the filesystem:
|
||||
|
||||
```bash
|
||||
qemu-img create -f raw disk.img 10M
|
||||
```
|
||||
|
||||
> **Note:** Adjust size as needed (e.g. `50M` for 50 megabytes)
|
||||
|
||||
### 3. Compile
|
||||
|
||||
**First time setup:**
|
||||
```bash
|
||||
make clean
|
||||
```
|
||||
> ⚠️ Run `make clean` once before your first build
|
||||
|
||||
**Build the OS:**
|
||||
```bash
|
||||
make
|
||||
```
|
||||
|
||||
This creates `scarab.img`, your bootable OS image!
|
||||
|
||||
---
|
||||
|
||||
## 🎮 Running ScarabOS
|
||||
|
||||
Launch in QEMU with:
|
||||
|
||||
```bash
|
||||
make run
|
||||
```
|
||||
|
||||
You'll boot into a minimal terminal where you can explore the basic command system.
|
||||
> Use alt + 2 to open up the Qemu terminal and then type q or quit to exit the VM
|
||||
|
||||
---
|
||||
|
||||
## 📚 Learning Resources
|
||||
|
||||
This project was heavily inspired by:
|
||||
- [Writing an OS in Rust](https://os.phil-opp.com/) by Philipp Oppermann
|
||||
- My Operating Systems professor in university
|
||||
- The Pintos educational OS
|
||||
|
||||
---
|
||||
|
||||
## 🤝 Contributing
|
||||
|
||||
This is a personal learning project, but feel free to:
|
||||
- **Fork** and experiment
|
||||
- **Open issues** for interesting ideas
|
||||
- **Share** your own OS development journey!
|
||||
Reference in New Issue
Block a user