Mettā

decentralized internets

1 of 4

Treacherous Metaphors

The most treacherous metaphors are the ones that seem to work for a time, because they can keep more powerful insights from bubbling up.

Alan Kay, 1984

related video

Learning JTAG

To understand how JTAG works I recommend a series of articles by Aliaksandr Kavalchuk. He describes details of the protocol and accompanies the text with amazing illustrations. Check it out:

Also, there are a few articles from other authors, describing JTAG in a more practical way:

Half-knowledge

Half-knowledge is very communicable; not so knowledge.

Mary Coleridge

OSdev tooling finished

January through May I was on and off on the project, fixing chainofcommand to work with the chain loading, in particular fighting the UNIX console and the TTY operations. Now the entire thing works, finished and merged into the main development branch. After that I started prodding the MMU setup and DTB (DeviceTree) parsing.

Read more

OSdev tooling continued

This month I spent honing the tooling story. Partially it was driven by the desire to Rewrite All the Things in Rust, and partially by my attempt to integrate all the tooling in a convenient for me way to do things.

Along the way I've done some refactoring and added support for Raspberry Pi 4-specific code.

Read more

OSdev tooling

Since my first attempt at OSdev in x86 assembly I've constantly strived to make my setup comfortable. With rust I finally achieved a nearly zero-configuration flow. There are still some tools to install but they are either a cargo install just away or entirely optional.

Developing an OS in Rust gives an opportunity to apply the benefits of the entire Rust ecosystem, so I've decided to maximally utilise what it has to offer.

Read more

Complex Systems

A simple system may or may not work. A complex system that works is invariably found to have evolved from a simple system that worked. A complex system designed from scratch never works and cannot be patched up to make it work. You have to start over with a working simple system.

John Gall's Systemantics

Rust on Sipeed Longan Nano board

My Longan Nano board has arrived and I tried to run Rust on it. It's a great success and here's how.

Nano is a RISC-V microcontroller (GD32VF103) with impressive GPIO capabilities and connectivity - it has a serial, JTAG and USB Type-C ports plus numerous GPIO pins on breakout connectors. It is also very well documented: there are board schematics, CPU and Peripheral datasheets, and numerous programming examples.

Read more

Useful cargo commands

Some additional cargo commands exist to provide unprecedented level of support and extensibility to regular cargo. Here's a list of commands I use (will be updated over time, last update 2025-01-12):

Read more
1 of 4