HNHacker News
TopNewBestAskShowJobs

trj

99 karma · joined October 3, 2013

submissionscomments
trj··on Show HN: Tiny VM sandbox in C with apps in Rust, C and Zig
This could be easily done. The emulator core supports memory mapped IO, but uvm32 only uses this to map an extra block of RAM from the host (for a framebuffer, or a separare memory heap). You can trap the writes here: https://github.com/ringtailsoftware/uvm32/blob/main/uvm32/uv... and the reads here https://github.com/ringtailsoftware/uvm32/blob/main/uvm32/uv...
trj··on Show HN: Tiny VM sandbox in C with apps in Rust, C and Zig
libriscv looks amazing but its's much larger. It says "Less than 40kB total memory usage". My first version (unpublished) of uvm32 was called uvm80 and emulated a Zilog Z80 CPU. My aim is to have a safe, embeddable sandbox for any device, rather than the best performance.
trj··on Show HN: Tiny VM sandbox in C with apps in Rust, C and Zig
Thanks for the link, Wasefire looks interesting. I suspect that their design goals are very different to mine. https://github.com/ringtailsoftware/uvm32?tab=readme-ov-file...
trj··on Show HN: Tiny VM sandbox in C with apps in Rust, C and Zig
"Just add rats" https://github.com/ringtailsoftware/uvm32/tree/main/apps/zig...
trj··on Epsilon: A WASM virtual machine written in Go
I'm working on an embeddable mini VM (RISC-V rather than WASM) and am considering this. In my model, there's something akin to a hardware watchdog where the VM is considered hung if it executes too many instructions without calling a yield() function in the host, then there's the ability to set a maximum number of instructions to execute before returning to the caller.

This lets it be handled asynchronously at the pace the host code chooses https://github.com/ringtailsoftware/uvm32

trj··on A short primer on the SSH protocol
I use SSH every day. I login to remote machines, push code changes to github and scp files. Like many programmers, I know how to use SSH to get things done but had never looked deeper to understand the protocol itself.

I recently wrote a minimal SSH client to help demystify the protocol. In this post, I'll explain some of the core concepts to help anyone else doing the same. This will be a 10,000ft overview with references to some interesting parts - not an implementation guide.

trj··on RISC-V bare metal in Zig
Continuing from part1 where we ported an RV32 emulator from C to Zig (https://www.ringtailsoftware.co.uk/zig-rv32/), we can now use Zig to cross-compile a binary to run in it