Chris Williams

@diodesign.org

Fun: https://diosix.org/ & https://diodesign.org/ Work: Technical editor at https://google.com/ Previously: Editor-in-chief @theregister.com Wear sunscreen.

Working on adding a Unicorn-based emulation layer to my 64-bit RISC-V hypervisor so you can run non-native guests (riscv32, aarch64, x86_64) seamlessly. Below, the green text is console output from an x86 Linux guest amid hypervisor debug traces. Still WIP! More: github.com/diodesign/di...

Screenshot of debug output from running an x86_64 guest on a 64-bit RISC-V hypervisor using emulation. The Linux guest's console output is mixed with the hypervisor's trace logs. The output shown includes:

tb_gen_code: translating guest TB at pc = anyopaque@ffffffff8128b283
tb_gen_code: translating guest TB at pc = anyopaque@ffffffff8128b287
[    0.000000] Linux version 7.0.10 (chris@violet) (x86_64-buildroot-linux-gnu-gcc.br_real (Buildroot 2026.02.3) 14.3.0, GNU ld (GNU Binutils) 2.44) #2 SMP PREEMPT_DYNAMIC Tue Jun 30 22:46:55 PDT 2026
tb_gen_code: translating guest TB at pc = anyopaque@ffffffff8128b2e4
tb_gen_code: translating guest TB at pc = anyopaque@ffffffff8128b2ee

[...]

tb_gen_code: translating guest TB at pc = anyopaque@ffffffff818bfc0e
[    0.000000] Command line: console=ttyS0 earlyprintk=serial,ttyS0,115200 root=/dev/ram0 rw
[    0.000000] Disabled fast string operations
[    0.000000] x86/CPU: tb_gen_code: translating guest TB at pc = anyopaque@ffffffff8128b2d9
model not found in latest microcode list
[    0.000000] BIOS-provided physical RAM map:
[    0.000000] BIOS-e820: [gap 0x0000000000000000-0x0000000007fffffff]
[    0.000000] tb_gen_code: translating guest TB at pc = anyopaque@ffffffff818bfe96
[    0.000000] BIOS-e820: [mem 0x0000000080000000-0x000000009fffffff] System RAM
[    0.000000] printk: legacy bootconsole [earlyser0] enabled
tb_gen_code: translating guest TB at pc = anyopaque@ffffffff81325af9
tb_gen_code: translating guest TB at pc = anyopaque@ffffffff8132622d

I rewrote my RISC-V hypervisor in Zig and added support for new features like hardware virtualization (H extension). It previously used segmented physical memory for guest isolation, and will fall back to that if H is not present. asciinema.org/a/XbV4OoBD8G... Need to tidy up the code

First RISC-V Linux guest boot of Zig Diosix hypervisor

Diosix, rewritten in Zig for 64-bit RISC-V systems, boots a guest virtual machine, and allows console-based interaction with this VM.

asciinema.org

For further proof that OS development is hard: copy.fail A page cache corruption that stays in memory but never hits the disk. Since the disk remains "clean," checksums don’t catch it. It allows unprivileged users to gain root or escape containers by corrupting shared memory of sensitive binaries.

Copy Fail — 732 Bytes to Root

CVE-2026-31431. 100% Reliable Linux LPE — no race, no per-distro offsets, page-cache write that bypasses on-disk file-integrity tools and crosses containers. Found by Xint Code.

copy.fail

Developing a Dungeons & Dragons style NES RPG in 6502 assembly must have been tough, even if its programmer thought the job was "pretty simple" due to his experience with the Apple II.* Still, the code was fairly buggy, as illustrated in this cool video below * www.gamesradar.com/games/final-...

Displaced Gamers@displacedgamers.bsky.social · 4mo ago

Ever wonder how Final Fantasy gets the numbers you see during battle? How do your stats contribute to physical attacks? Are there any bugs in the game? (spoilers: uhh... yeah) Behind the Code has finally reached Final Fantasy. Enjoy. youtu.be/O_CLnBCgJks

A cool demonstration of Zig as a language IMO: a PlayStation 1 emulator with built-in dissembler and debug. It emulates the 32-bit MIPS 3000A-based CPU core as well as the Sony GPU, GTE, SPU, and more Readable code, too, and links to system reference info github.com/maxpoletaev/...

GitHub - maxpoletaev/nupsx: Experimental PlayStation 1 emulator

Experimental PlayStation 1 emulator. Contribute to maxpoletaev/nupsx development by creating an account on GitHub.

github.com

I like alternative languages and architectures to see how syntax, structure, and other implementation details can be done differently. There's not only ziglang.org which I think is cool, but also SystemVerilog alternative Veryl: github.com/veryl-lang/v... Yet another side project coming on.

GitHub - veryl-lang/veryl: Veryl: A Modern Hardware Description Language

Veryl: A Modern Hardware Description Language. Contribute to veryl-lang/veryl development by creating an account on GitHub.

github.com

Recently enjoyed seeing and listening to quite a mix of live music in the Bay Area, from Kylie and Underworld in San Francisco to Kraftwerk in Berkeley. All pretty stunning, and all great sounds I grew up with that I finally got to experience in person.

Kylie Minogue on stage at the Chase Center in San Francisco with a disco ball lighting up the whole scene.The band Underworld on stage at the Warfield in San Francisco, with a lot of red lighting and dry ice.Kraftwerk on stage at the Berkeley Greek Theatre, with Computerworld showing on screen.