Skip to content

Virtual memory abstraction & methods for constructing, accessing, manipulating and destroying address spaces

Notifications You must be signed in to change notification settings

dylanmc/cs393_vm_api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This is a first whack at defining a medium-level abstraction of an address space in Rust.

The idea is that other kernel operations use this API to create and initialize an address space, that user-space operations can end up calling (via a syscall bridge) operations like add_map and flush to do things to their address space and data, and that the unified VM / File Buffer Cache will use the DataSource interface & (some still unnamed) cache coordinator to cache data from DataSources.

First we need to make sure this API is complete. For one thing, it's missing Flags in the add_map call -- "what are your intentions?" with this mapping, READ, WRITE, EXECUTE, COPY_ON_WRITE, PRIVATE, (vs.) SHARED, etc.

Next, we need some tests that make sure the add_map function actually adds a mapping, that the mappings don't ever overlap, that mappings can be removed, and virtual space reclaimed, etc.

At some point we'll want to migrate this into reedos, so we'll want to switch to #no_std, use a kernel memory allocator, etc.

About

Virtual memory abstraction & methods for constructing, accessing, manipulating and destroying address spaces

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages