Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jakubschwenkbeck/rust-vm
A 16-bit virtual machine in Rust with a MIPS-like assembler, custom registers, memory management, a file system, and a command-line interface for executing code.
https://github.com/jakubschwenkbeck/rust-vm
backend rust virtual-machine vm
Last synced: 7 days ago
JSON representation
A 16-bit virtual machine in Rust with a MIPS-like assembler, custom registers, memory management, a file system, and a command-line interface for executing code.
- Host: GitHub
- URL: https://github.com/jakubschwenkbeck/rust-vm
- Owner: JakubSchwenkbeck
- License: mit
- Created: 2024-07-11T23:00:33.000Z (4 months ago)
- Default Branch: master
- Last Pushed: 2024-08-19T21:56:17.000Z (3 months ago)
- Last Synced: 2024-08-20T01:56:45.852Z (3 months ago)
- Topics: backend, rust, virtual-machine, vm
- Language: Rust
- Homepage:
- Size: 125 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 16 Bit Virtual Machine in Rust
Welcome to the **16 Bit Virtual Machine in Rust** project! This project serves as a hands-on learning experience for Rust, focusing on building a virtual machine with custom features. The VM includes a MIPS-like assembler, custom registers, memory management, a file system, and a command-line interface (CLI) for executing code.
## Overview
The project is inspired by TomMarksTalksCodeLive and aims to explore Rust’s capabilities by developing a 16-bit virtual machine. The VM features its own assembler language and decoder, enabling low-level machine code access. The project leverages Rust’s robust backend features to create a fully functional virtual machine with a comprehensive OS-like environment.
## Features
- **16-bit Virtual Machine:** A virtual machine that simulates a 16-bit architecture.
- **MIPS-like Assembler:** A custom assembler for writing machine code.
- **Custom Registers:** Implemented CPU registers specific to the VM.
- **Memory Management:** Efficient memory allocation and management within the VM.
- **File System:** Basic file operations including file creation.
- **Command-Line Interface (CLI):** For user interaction and code execution.
- **Text Editor:** An integrated text editor for editing assembler code.
- **Assembler Code Parsing:** Parses and executes code written in a text-based assembler format.## Project Details
### Components
1. **Assembler and Decoder:** Parses `.txt` files in assembler format and converts them into executable machine code.
2. **CPU Registers:** Custom registers designed for the VM’s CPU.
3. **Memory Management:** Handles allocation and management of memory resources.
4. **File System:** Supports file creation and basic file operations.
5. **Command-Line Interface:** Provides a CLI for running programs and interacting with the VM.
6. **Text Editor:** Allows users to create and edit assembler code directly within the VM environment.