This repository has been archived by the owner on Oct 22, 2022. It is now read-only.
Super Sv39
Still a looooong way to go before I get to anything resembling a remotely usable operating system from an end user's perspective, but anyway, I'd like to take the time to celebrate the fact that I finally turned the MMU on and got it working!
The project codebase has also seen some notable improvements which should aid with maintenance and development going forward:
- Implemented page-grained allocator
- Implemented Sv39 routines
- Implemented byte-grained allocator (
kmalloc
,kcalloc
,kfree
) - Turned on Sv39 paging in S-mode and confirmed that dynamic memory allocation works for basic use cases
- Rewrote linker script from scratch to something I actually fully understand and have full control over
- Extended the C runtime
crt0.s
to support switching from M-mode to S-mode - Added
format
target formake
in order to enforce consistent formatting across the codebase