Giter Club home page Giter Club logo

hypocaust's Introduction

Hi, I'm KuangjuX 👋

I am currently a first-year master's student at the University of Chinese Academy of Sciences. Previously, I graduated from Tianjin University with a bachelor's degree. I like system program in Rust. I am currently focusing on machine learning systems and DL compilers. I am working on implementing a Dataflow Analysis and Codegen Framework and an Efficient Kernel Template Library. In the past, I have implemented some system projects using Rust, primarily involving operating systems and hypervisors.

Active Projects:

  • TiledCUDA: TiledCUDA is a highly efficient kernel template library designed to elevate CUDA C’s level of abstraction for processing tiles.
  • ThrillerFlow: ThrillerFlow is a Dataflow Analysis and Codegen Framework written in Rust.

I build operating systems in Rust:

I also build hypervisor(VMM) in Rust:

  • hypocaust: A S mode trap and emulate type-1 hypervisor run on RISC -V machine.
  • hypocaust-2: A hardware-assisted type-1 hypervisor with H extension run on RISC -V machine.
  • hypercraft: A VMM library written in Rust.

I also build an Out-of-Order RISC-V Processor Core and difftest framework based on verilator:

Some of my projects that have already been Archived are as follows:

https://github.com/KuangjuX-Archived

Others:

hypocaust's People

Contributors

kuangjux avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

hypocaust's Issues

Synchronize satp & SPT

由于此时 satp 是作为 SPT(shadow page table) 的唯一标识,因此,有一种情况是:当操作系统的某进程被释放后,当前的 satp 所使用的根页表被释放,并在之后被其他进程所使用,但是此时 VMM 并不知道此时 satp 已经被替换,因此会造成错。所以,当 OS 请求向 VMM 写入 satp 时也需检查是否 satp 已经被替换。

Refactor

I hope that the structure of the code can be similar to RVM, and the guest os can be loaded and interrupts can be set in a configurable way.

Refactor SPT(Shadow Page Table)

在之前的实现中,由于 VMM 分配影子页表的空间都是在 0x80000000 - 0x88000000 这段空间使用堆分配进行的,这样实现对于 SPT 与 GPT 的维护十分困难且不可扩展,因为考虑扩展到高地址空间,直接将 GPT 映射到 SPT 上,这样对于维护与后续的扩展会较为轻松。

Serial I/O emulate

Currently both our VMM and Guest OS use serial port input and output. Currently, the Guest OS has direct access to the serial port, which makes the Guest OS and the hypervisor share a serial port device, and simultaneous access will cause confusion, so here we will virtualize a serial port for the Guest OS to use.

如何学习hypervisor开发

你好,我现在也在学习开发vmm,但是只找到了一些虚拟化原理的书籍,请问您可以推荐一些如何实现VMM的教程和书籍吗?

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.