Skip to content

A miminal OS written in Rust using a partitioned global address space memory model for seamless parallel programming

License

Notifications You must be signed in to change notification settings

shawnschulz/shmageOS_RISCV

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

shmageOS

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/

testing it out

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_RISCV

If 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-riscv64

Once 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.sh

Then just run make run

make run

You'll enter a very barebones stack allocated command prompt for the shell. You can try running the unit tests:

t(-_-) — ˎˊ˗test

About

A miminal OS written in Rust using a partitioned global address space memory model for seamless parallel programming

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published