Giter VIP home page Giter VIP logo

Comments (2)

rianquinn avatar rianquinn commented on June 2, 2024 1

@tklengyel

This sounds like a great use case for Bareflank as this is exactly the kind of thing this hypervisor was built for.

Since we currently don't have support for moving a VMCS from one core to another, pinning a VMCS to a core works today. The challenge is #2 as we don't have the ability in their today, to create more than one VMCS for a core. That being said, I don't think it would take a lot of work to do this. Besides the fact that Bareflank is still in heavy development (so a lot of features are still missing), Bareflank itself is, and always will be geared towards providing the scaffolding for creating a hypervisor for research, specifically so that you don't inherit baggage (which is exactly the case your describing). That however means that when you want to test out and idea, you might have to write a bit of code to get things working.

Testing out your idea with Bareflank should be pretty simple, but we'll need to figure out how to launch a VMCS tied to a specific process. Right now, you can IOCTL from a userspace process to start a VMCS, but the code is setup right now to prevent you from doing this twice, so you would simply need to add the logic to launch the second one, and swap based on the tests your trying to run.

If your interested in trying this out, I would start by looking at BFM, as it's the userspace app that does the IOCTL, and you could probably just use this as is, but keep it running so that you can swap from one VMCS to another. It would be dirty.. but it would be enough to test your theory. The VPID and trapping on CR3 should be pretty trivial with Bareflank (just look at the examples).

Let me know what you need from us. Besides the fact that this would be an awesome win for Bareflank to show how it can be used for this type of work, it's also a topic that I find very interesting. 😄

from hypervisor_example_vpid.

rianquinn avatar rianquinn commented on June 2, 2024 1

FYI, still working on the global flag and getting rid of the page fault. Once I get a free minute that is 😄 . I'll post my results as a repo on my personal page so that you can play around if you want. @tklengyel

from hypervisor_example_vpid.

Related Issues (1)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.