gwsystems / composite

A component-based OS
composite.seas.gwu.edu
184 stars 70 forks source link

Virtual address space specification, assignment, and booting. #453

Closed gparmer closed 2 years ago

gparmer commented 2 years ago

Summary of this Pull Request (PR)

Adds support for virtual address space knowledge and management into the composer, and feeds that into the booter through the initargs.

I'm hoping that this can get rid of the llbooter_vas.c stuff, so I didn't modify that code.

To review, it might be easiest to go through the commits as they are structured in a sequence of successive functionality.

Steps:

  1. Parsing and validation of composition scripts. 6340d95237bab5077b19ad47d8b9a83647c08bec (and commits leading up to it)
  2. Add an AS representation to the pass structure of the composer for later pass access. 187b371c9b00c0d9d0dbc422c4139682566fd228
  3. Order ASes by the parent relationship. ff5cd1c80017e903507a4d6cb6eee734d01bb498
  4. Assign virtual addresses based on ASes and the parent relation. 8d11d13f9581ff6deb61657febfe442de3d58a44
  5. Synthesize the initargs based on the ASes and addresses. fe7001a993b0084be03dbf8b0ff7176f410ce973
  6. Use the initargs and the AS specification in the booter. 8a77c31253b8a934e16eb0d9a2b917fc081e4d96

Intent for your PR

Choose one (Mandatory):

Reviewers (Mandatory):

@evanstella @WenyuanShao @betahxy

Code Quality

As part of this pull request, I've considered the following:

Style:

Code Craftsmanship:

Testing

Some coverage of the tests.

betahxy commented 2 years ago

Excellent PR! Thanks for the detailed review steps here.