Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The AddressSpace Data Structure #10

Open
rileyshahar opened this issue Feb 20, 2023 · 0 comments
Open

The AddressSpace Data Structure #10

rileyshahar opened this issue Feb 20, 2023 · 0 comments

Comments

@rileyshahar
Copy link
Collaborator

This is the Big Question that we talked about a lot in class; I just want a centralized place for this discussion. Some initial thoughts:

  1. We probably want our own linked list, if we're using linked lists. Probably regardless we need our own implementation, both for no_std purposes and to allow the hack of writing pointers into unallocated pages.
  2. If we want to avoid dynamic dispatch, we need to avoid having a big collection of different kinds of DataSources. I'm not sure that's possible in a monolithic kernel, unless we want applications to deal with multiple AddressSpaces, one for each DataSource they rely on. That seems painful.
  3. VecDeque (which is a circular buffer, i.e. the kind of datastructure used in log-structured file systems) might be better than LinkedList. Certainly it's a more rust-y data structure, and I think the standard library's implementation is generally considered to be much more efficient. There are possibly other data structures we could find in the ecosystem or roll ourselves that would be even more suited to the task.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant