Skip to content
This repository was archived by the owner on Mar 24, 2025. It is now read-only.

0AC0/node-mach

Repository files navigation

RISC-V

NodeMach

NodeMach, the RISC-V 64 virtual environment for NodeNet

NodeMach?

NodeMach is a virtual environment standard for running the operating system NodeNet. It acts as a layer between devices, like the CPU or the network adapter, that translates the access protocols into simpler, more versatile versions. It is essentially a RISC-V emulator virtual machine used for running NodeNet.

NodeNet?

A network based operating system based on the idea that everything is a node and can be connected to another node provided the nodes are compatible. (ex. /path/to/image -> /path/to/framebuffer)

Current project status

platform commit build lang code nodenet

  • Complete rv64i implementation
  • Incomplete rv64m implementation
  • Incomplete rv64a implementation
  • Dual hart CPU
  • Basic 39bit paging
  • Hacky device support
  • Basic PLIC
  • No CLINT
  • Basic CSR support

Building

Dependencies: clang, make

build with

make

run with

cp /path/to/your/payload.elf build/payload.elf 
make run

build and run with

cp /path/to/your/payload.elf build/payload.elf 
make run-update
Debugging

^C (Ctrl + C) or send the process a SIGINT to pull up the debugger.

Command Description
show Show command buffer(used for debugging of the debugger)
step Step one CPU cycle
stepto <addr> Run the CPU until the program counter is equal to <addr>
read32 <addr> Read 4x 32bit values from <addr>
read64 <addr> Read 4x 64bit values from <addr>
ls List CPU registers
resume Exit debugger, continuing to run the payload
exit Exit the debugger, exiting the program

This repo is part of the NodeNet project

Official NodeNet website: NodeNet.work

About

NodeMach, the RISC-V 64 virtual environment for NodeNet

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published