One day shmageOS will be an experimental operating system using a partitioned global address space memory model for parallel programming and a pooled distributed database file system. For now though, it's just me fighting with the linker and being really confused at the RISCV manual.
Many parts getting started are adapted from Stephen Marz's excellent tutorial on building a RISCV operating system in rust: https://osblog.stephenmarz.com/
You'll need the riscv64-linux-gnu-g++ cross compiler (or an equally capable cross compiler on your system). Right now for testing it runs on qemu, but i'd like to get a u-boot loaded image working on some real hardware soon. You'll need qemu-system-riscv64 as well.
Clone the repo:
git clone [email protected]:shawnschulz/shmageOS_RISCV.git
cd shmageOS_RISCVIf you have apt, you can use the apt repos to install the neede dependencies.
# you can use the apt repositories on debian/ubuntu
sudo apt install riscv64-linux-gnu-g++
sudo apt install qemu-system-riscv64Once you've got those installed, qemu is going to look for a disk image file called "hdd.dsk". If you have bash you can use the shell script (prob sh will work too)
bash make_disk.shThen just run make run
make runYou'll enter a very barebones stack allocated command prompt for the shell. You can try running the unit tests:
t(-_-) — ˎˊ˗test