From: Kit Rhett Aultman Date: Sun, 30 Jun 2024 05:26:12 +0000 (-0400) Subject: README.md: created README X-Git-Url: https://git.kitaultman.com/?a=commitdiff_plain;h=e88734ea3a7f8c4552627fca2d2d6139dcb84eba;p=riscv_baremetal.git README.md: created README Basic statement of goals, current requirements to run, and some notes. --- diff --git a/README.md b/README.md new file mode 100644 index 0000000..1980644 --- /dev/null +++ b/README.md @@ -0,0 +1,39 @@ +# Rust Bare Metal Explorer + +## Overview + +This is a "project" in the spirit of my old NES teaching labs project. I've had +an interest in RISC-V for a long time, and I think Rust has really matured as a +language for doing low-level and bare-metal work, but I've never had much of an +excuse to write in Rust and my RISC-V dev hardware is gathering dust and leering +at me. + +In the past, I've played around with writing an OS from scratch (you can see my +old ArcanOS projects at http://git.kitaultman.com), and I think a big reason why +I kinda gave up with time was the "now what" problem. Sure, I got interrupts +working and I got the kernel identity-mapped, but...then what? Making the leap +into having userspace binaries is actually a pretty big one, and when I was +doing everything from scratch, this also meant I'd basically be creating +userspace and jumping to it, and then writing a system call to ask to print a +"Hello World" string, just to show I could...and then what? + +With this project, I'm going to take two big hints: (1) this is a hobby project +on spare time, and I should accept that and focus on fun first (2) I've done +enough retrocomputing to know that most of the great machines of my past didn't +have half the OS features I was coding for; there's nothing wrong with hanging +out in M-mode or S-mode (RISC-V speak for ring 0) until there's an actual +demonstrable need to do otherwise. It's cool to just make and have an +interactive monitor or something. Just go code and have fun. + +## Requirements + +* rustc-1.81.0-nightly +* qemu-system-riscv64 6.2.0 +* A sense of play + +## Status + +We've got screen printing macros! print!() and println!() will let you show +stuff on the screen. Ain't that grand? + +--Kit