Please sign in to access this page

Funderberker

Funderberker

11 devlogs
74h 46m
Created by Roee Toledano

A type 1 hypervisor, written entirely from scratch in Rust!

In order to run the demo see the README in the repo

Timeline

Ship 1

Roee Toledano

2 months ago

Roee Toledano Covers 11 devlogs and 74h 46m

Added Miri tests and more exhaustive tests for everything, fixed paging and slab allocator bug.
Hopefully, I can finally start continuing working on the actual thing soon., It was just really important for me to make sure all the core code right, that is has a good API, and that it contains absolutely zero bugs, so development will go a lot smoother down the road.

It took me a lot more time than it should've because I didn't plan the API enough beforehand. From now on development will be a lot more interesting, and should be a lot faster too!

So for anyone seeing this: start planning ahead and checking out other peoples code. It will save you a lot of time and headache in the future.

Update attachment

Updated slab allocator and reworked some other parts.

Update attachment

Fixed paging error I had, and refactored a bunch of code

Update attachment

continued working on NVMe. Not much progress, just logging the hours so I don't loose them

Update attachment

finished breaking down into crates and unit testing. will have to fix some broken stuff, add integration testing and take care of lints

Update attachment

finished breaking down into crates, reworked PMM and refactored a lot of code to be more modular, general and tidy, and finished off by setting PMM unit tests :)

Update attachment

reworked buddy PMM, and continuing reconstruction into crates

Update attachment

refactoring code down into crates: stage 1

Update attachment

Started NVMe driver

Update attachment

Forgot to post new dev logs :)

I've added basic PCIe device discovery, did some clean up & got rid of warnings, and just finished setting up CI CD

Update attachment

Added basic CPUID intercept test, more comments, and groundwork for a NPT

Update attachment