Follow up to “I booted Linux 292,612 times”

Well that blew up. It was supposed to be just a silly off-the-cuff comment about how some bugs are very tedious to bisect. To answer a few questions people had, here’s what actually happened. As they say, don’t believe everything … Continue reading → | Continue reading


@rwmj.wordpress.com | 1 year ago

I booted Linux 292,612 times

And it only took 21 hours. Linux 6.4 has a bug where it hangs on boot, but probably only 1 in 1000 boots (and rarer if using Intel hardware for some reason). It’s surprising to me that no one has … Continue reading → | Continue reading


@rwmj.wordpress.com | 1 year ago

Why the Windows Registry sucks technically (2010)

It’s quite popular to bash the Windows Registry in non-technical or lightly technical terms. I’ve just spent a couple of weeks reverse engineering the binary format completely for our h… | Continue reading


@rwmj.wordpress.com | 2 years ago

Big “Files”

In the last post I showed how you can combine nbdfuse with nbdkit’s RAM disk to mount a RAM disk as a local file. In a talk I gave at FOSDEM last year I described creating these absurdly larg… | Continue reading


@rwmj.wordpress.com | 4 years ago

Nbdkit and BitTorrent: download, redistribute and install Linux at the same time

nbdkit is our high performance Network Block Device server for serving disk images from unusual sources. One (usual) source for Linux installers is to download an ISO from a website like Get Fedora… | Continue reading


@rwmj.wordpress.com | 4 years ago

Goals – an experimental new tool which generalizes “make”

For the past few weeks I’ve been working on a new tool called goals which generalizes make. I did a quick talk at Red Hat about this tool which you can download from the link below: Video lin… | Continue reading


@rwmj.wordpress.com | 5 years ago

Pyrit by Řrřola, raytracing demo as a QEMU bootable disk image

One of the things I showed at KVM Forum last month was a cool demo by Jan Kadlec (Řrřola). Originally this was a 256 byte MSDOS COM file. I adapted it very slightly to turn it into a boot sector. H… | Continue reading


@rwmj.wordpress.com | 5 years ago

Jonesforth Git Repository

A few years ago I wrote a literate FORTH compiler and tutorial called JONESFORTH. It’s a good way, I think, to understand the power and limitations of FORTH, and a good way to learn a complet… | Continue reading


@rwmj.wordpress.com | 5 years ago

Managing a Large State Machine

Eric and I are writing a Linux NBD client library. There were lots of requirements but the central one for this post is it has to be a library callable from programs written in C and other programm… | Continue reading


@rwmj.wordpress.com | 5 years ago

FOSDEM: Take your loop mounts to the next level (video with subtitles)

Loop mounting is popular, but very limited in what it can do on Linux. I gave a talk at FOSDEM on Saturday entitled Better loop mounts with NBD: Take your loop mounts to the next level with nbdkit,… | Continue reading


@rwmj.wordpress.com | 6 years ago

Using NBD as a better alternative to loop mounting on Linux [video]

I’ve submitted a talk about nbdkit, our flexible pluggable NBD server, to FOSDEM next February. This is going to be about using NBD as a better way to do loop mounts in Linux. In preparation … | Continue reading


@rwmj.wordpress.com | 6 years ago

Visualising MD RAID 5 array accesses in Linux

If you saw my posting from two days ago you’ll know I’m working on visualizing what happens on block devices when you perform various operations. Last time we covered basics like partit… | Continue reading


@rwmj.wordpress.com | 6 years ago

What really happens when you create a filesystem on Linux

Ever wondered what is really happening when you write to a disk? What blocks the filesystem writes to and so on? With our flexible, plug-in based NBD server called nbdkit and a little Tcl/Tk progra… | Continue reading


@rwmj.wordpress.com | 6 years ago