gwsystems / composite

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

Initial vmx PR #476

Closed betahxy closed 10 months ago

betahxy commented 1 year ago

Summary of this Pull Request (PR)

Add description here.

Intent for your PR

Choose one (Mandatory):

Reviewers (Mandatory):

(Specify @<github.com username(s)> of the reviewers. Ex: @user1, @user2)

Code Quality

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

Style:

Code Craftsmanship:

Testing

I've tested the code using the following test programs (provide list here):

gparmer commented 1 year ago

Once @esmakokten accepts the invite to be part of the researchers team for gwsystems, lets assign her as a reviewer.

gparmer commented 1 year ago

I didn't realize that you were going to PR so much more than the VMX stuff. This will take a while to review for the expanded review. Can you provide a list of files/directories that @davidbabono and @esmakokten could focus on related to the VMX/VMM stuff? I'd like them to be able to ignore much of the PR that is beyond that scope.

betahxy commented 1 year ago

I didn't realize that you were going to PR so much more than the VMX stuff. This will take a while to review for the expanded review. Can you provide a list of files/directories that @davidbabono and @esmakokten could focus on related to the VMX/VMM stuff? I'd like them to be able to ignore much of the PR that is beyond that scope.

Sorry for the confusion, but in order to PR to the main branch, it has to include the previous MPK commits that you've reviewed. I've fixed all the compiling warnings I could see when building the system, which is trying to follow the previous review.

@gparmer @esmakokten @davidbabono And, for this PR of VMX, I think these directories should be more focused on:

  1. src/platform/x86_64/vmx: this is where the kernel's support of vmx.
  2. src/components/lib/vmrt: this is where the user level vm runtime lib that creates necessary resources for running a vm.
  3. src/components/implementation/simple_vmm: this is the VMM component that tries to use vmrt lib to create and run a simple vm.

However, there is some additional code that is necessary such as capmgr, which is necessary to create vm resources like capabilities. But this part is less interesting.

gparmer commented 1 year ago

Great, thanks @betahxy! It might take a little while to get a review done, but we'll get it done ASAP! Very much appreciated for all of this work.