Skip to content

The AddressSpace Data Structure #10

@rileyshahar

Description

@rileyshahar

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions