Skip to content

Latest commit

 

History

History
51 lines (37 loc) · 3.21 KB

README.md

File metadata and controls

51 lines (37 loc) · 3.21 KB

Rust 虚拟机项目 - Rust Virtual Machine Project

本项目是基于 subnetzero.io 的博客教程 开发的一个 Rust 虚拟机。该教程系列将指导我们如何从头开始构建一个完整的虚拟机。

项目目标 - Project Goals

  • 实现高性能:创建一个相对高性能的虚拟机,与现代实现相比具有竞争力。
  • 容错性设计:设计一个具有容错性的虚拟机。
  • 命令和控制平台:使虚拟机成为一个用于运行应用程序的命令和控制平台。
  • 集群支持:实现虚拟机在不同物理服务器上的集群。

教程概览 - Tutorial Overview

  1. 虚拟机类型:本项目将实现一个基于寄存器的虚拟机。与树遍历和基于栈的虚拟机相比,寄存器虚拟机更接近实际硬件的工作方式,性能也更优。
    • VM Type:This project will implement a register-based VM. Compared to tree-walking and stack-based VMs, register-based VMs are closer to actual hardware and offer better performance.
  2. 汇编语言:我们将创建一种汇编语言和相应的汇编器,使我们能够以更高级的方式编写程序,而不是直接在十六进制编辑器中编写。
    • Assembly Language:We will create an assembly language and an assembler, allowing us to write programs in a more advanced way instead of directly in a hex editor.
  3. 项目结构:从创建一个新的 Rust 项目开始,逐步构建虚拟机的各个组件,包括虚拟 CPU、寄存器、指令集等。
    • Project Structure:Starting with a new Rust project, we will gradually build the components of the VM, including the virtual CPU, registers, instruction set, etc.

开始项目 - Starting the Project

要开始本项目,请确保您已安装最新的 Rust 版本和 cargo 工具。以下是创建项目的初始步骤:

To start this project, make sure you have the latest version of Rust and the cargo tool installed. Here are the initial steps to create the project:

cargo run # run the project
cargo run -- -h # the cli commands of app

vm.rs 中为虚拟机的核心结构和功能。

The src/vm.rs is the core structure and functionality of the VM.

进度与计划 - Progress and Plans

  • 实现虚拟机的基本结构 - Implement the basic structure of the VM
  • 定义汇编语言和指令集 - Define the assembly language and instruction set
    • 大部分支持:详情请查看:instruction
    • 仍有些跳转逻辑等还未支持。
  • 实现指令解码和执行 - Implement instruction decoding and execution
  • 添加测试用例 - Add test cases
  • 性能优化和集群支持 - Optimize performance and support clustering

贡献 - Contribution

欢迎任何形式的贡献,包括代码提交、问题报告和功能建议。

Contributions in any form are welcome, including code submissions, issue reports, and feature suggestions.

许可证 - License

本项目使用 MIT 许可证。详细内容请查看 LICENSE 文件。

This project is licensed under the MIT License. Please refer to the LICENSE file for details.