README.md: created README
authorKit Rhett Aultman <kit@kitaultman.com>
Sun, 30 Jun 2024 05:26:12 +0000 (01:26 -0400)
committerKit Rhett Aultman <kit@kitaultman.com>
Sun, 30 Jun 2024 05:26:12 +0000 (01:26 -0400)
Basic statement of goals, current requirements to run, and some notes.

README.md [new file with mode: 0644]

diff --git a/README.md b/README.md
new file mode 100644 (file)
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