MAD Computing
Posted: Sat Nov 22, 2025 2:24 pm
So this is basically an introduction post, though yes, it is also specifically about OS theory.
Half my life ago, circa 2005, I had an idea for making modular PC hardware, which quickly became a thought experiment about making a distributed operating system. Since it seemed implausible and I had nobody to talk to about it, I just kind of left it to simmer in the back of my mind for the last twenty years, making tweaks as I came to think about things differently. The last bit that fell into place just last year, has given me some confidence that if people understood what I had, it might actually be valuable. That doesn't necessarily mean people need to do what I say - I think I have some very interesting deductions and solutions, but the right set of problems looked at from the right angle is, I think, a valuable contribution in itself.
This project is not dev work - and I'm not sure I could actually do the dev work, though I'd like to. For now, it is theory. It is also potentially the "wrong" kind of theory - the kind where I've gotten stuck on myself and convinced myself of dumb things. It's complicated and knotted in my brain. Things are difficult to explain and come out wrong a lot of the time. Basically - if you need an excuse not to go further, there's no need to go further than the fact that I literally call it MAD.
With that disclaimer out of the way...
MAD is an acronym, each letter standing for one of the three main sub-projects - Modular hardware, Agentic programming, and a Distributed OS. I'm not going to go into any real detail in this post - I have a tendency to ramble and go off on confusing tangents, so I kind of have to force myself to break it up. Even a high level overview is really perhaps better handled by the blog (see below), or a separate post. But I do want to explain the point, the real thousand-foot view of it.
That grand point, that thousand-foot view, is that our existing models for computers are not set up to let us turn a random assortment of computers into a gestalt system. The goal is for any given computer in the gestalt to be made stronger by being part of the larger system - if you need more CPU space and it exists somewhere, you should be able to use it; if you need a GPU and there is one somewhere, use it. But that's simply not how programs or operating systems work. A program exists in one specific place; that's both what it is and how it works. An operating system controls the machine it's on; again, that's just what it is. Neither of these are ideal to unite islands connected by a network. There are existing attempts at distributed OSes - I recently discovered Plan 9, and I'm sure I've missed others - but in my understanding, they're also missing pieces of the puzzle.
The right question is everything, even if it's hard to phrase it. How do you make a single program span the gap between multiple pieces of hardware? How do you gain the confidence necessary to suggest that you can use an arbitrary CPU somewhere in a network to run a program that has concrete needs for input, output, disk space, and so on? How can you streamline the process such that using remote resources doesn't introduce untenable latency issues?
My answers require diving into filesystems, application models, remote procedure calls, system-wide object typing... a lot of random things that have just kind of... ended up fitting together into a holistic model. Since MAD was a thought experiment and not dev work, I had no fear whatsoever of leaving things behind and striking out in weird directions. So what if you need a whole new model for how applications work? So what if you're completely reworking the fundamentals of filesystems? Implementation was always the lowest priority. Seeing if I could figure out a model that would work, in theory - that was the fun part.
And if the answer is MAD, well, so be it.
Currently I'm trying to force my brain to exposit as clearly as I can on a crappy Blogger site at https://www.projectmad.tech. I know I'll be wrong about stuff, and I know my writing is confusing - I welcome feedback, even if it pokes holes in what I've done. I've ended up answering the questions and addressed the problems that I found by myself, and part of what doing is searching for problems I've missed - including ones that will make me feel stupid. If you have something to say about it, feel free to poke me here or there, whichever is easiest. I expect, understand, and welcome general, "WTF" style questions, because I don't even really know how I'm coming across right now.
And, because this just needs to be said nowadays, none of this is written nor edited by AI, nor am I interested in that. If (when) it comes off as weird and stilted, that's homegrown human weirdness.
Half my life ago, circa 2005, I had an idea for making modular PC hardware, which quickly became a thought experiment about making a distributed operating system. Since it seemed implausible and I had nobody to talk to about it, I just kind of left it to simmer in the back of my mind for the last twenty years, making tweaks as I came to think about things differently. The last bit that fell into place just last year, has given me some confidence that if people understood what I had, it might actually be valuable. That doesn't necessarily mean people need to do what I say - I think I have some very interesting deductions and solutions, but the right set of problems looked at from the right angle is, I think, a valuable contribution in itself.
This project is not dev work - and I'm not sure I could actually do the dev work, though I'd like to. For now, it is theory. It is also potentially the "wrong" kind of theory - the kind where I've gotten stuck on myself and convinced myself of dumb things. It's complicated and knotted in my brain. Things are difficult to explain and come out wrong a lot of the time. Basically - if you need an excuse not to go further, there's no need to go further than the fact that I literally call it MAD.
With that disclaimer out of the way...
MAD is an acronym, each letter standing for one of the three main sub-projects - Modular hardware, Agentic programming, and a Distributed OS. I'm not going to go into any real detail in this post - I have a tendency to ramble and go off on confusing tangents, so I kind of have to force myself to break it up. Even a high level overview is really perhaps better handled by the blog (see below), or a separate post. But I do want to explain the point, the real thousand-foot view of it.
That grand point, that thousand-foot view, is that our existing models for computers are not set up to let us turn a random assortment of computers into a gestalt system. The goal is for any given computer in the gestalt to be made stronger by being part of the larger system - if you need more CPU space and it exists somewhere, you should be able to use it; if you need a GPU and there is one somewhere, use it. But that's simply not how programs or operating systems work. A program exists in one specific place; that's both what it is and how it works. An operating system controls the machine it's on; again, that's just what it is. Neither of these are ideal to unite islands connected by a network. There are existing attempts at distributed OSes - I recently discovered Plan 9, and I'm sure I've missed others - but in my understanding, they're also missing pieces of the puzzle.
The right question is everything, even if it's hard to phrase it. How do you make a single program span the gap between multiple pieces of hardware? How do you gain the confidence necessary to suggest that you can use an arbitrary CPU somewhere in a network to run a program that has concrete needs for input, output, disk space, and so on? How can you streamline the process such that using remote resources doesn't introduce untenable latency issues?
My answers require diving into filesystems, application models, remote procedure calls, system-wide object typing... a lot of random things that have just kind of... ended up fitting together into a holistic model. Since MAD was a thought experiment and not dev work, I had no fear whatsoever of leaving things behind and striking out in weird directions. So what if you need a whole new model for how applications work? So what if you're completely reworking the fundamentals of filesystems? Implementation was always the lowest priority. Seeing if I could figure out a model that would work, in theory - that was the fun part.
And if the answer is MAD, well, so be it.
Currently I'm trying to force my brain to exposit as clearly as I can on a crappy Blogger site at https://www.projectmad.tech. I know I'll be wrong about stuff, and I know my writing is confusing - I welcome feedback, even if it pokes holes in what I've done. I've ended up answering the questions and addressed the problems that I found by myself, and part of what doing is searching for problems I've missed - including ones that will make me feel stupid. If you have something to say about it, feel free to poke me here or there, whichever is easiest. I expect, understand, and welcome general, "WTF" style questions, because I don't even really know how I'm coming across right now.
And, because this just needs to be said nowadays, none of this is written nor edited by AI, nor am I interested in that. If (when) it comes off as weird and stilted, that's homegrown human weirdness.