Geek bucket list
Published: February 15, 2012Tags: projects geek bucket list
This blog is looking a little neglected these days. I'm hoping to turn that around a bit in the near future, and am kicking things off with a fairly simple entry.
For quite a while now I've had the idea of writing myself a "geek bucket list", that is to say a list of really high-profile geeky projects that I want to resolve to complete before I die. I'm starting the list out as a blog post both so I can get all my ideas down in a permanent form before I begin forgetting them, and in the hopes that making the list public will provide some kind of additional motivation to actually make a start on them. There's an implicit assumption there that people actually read this blog, which is questionable at best, but oh well. Right:
- Build my own computer. And I don't mean buy an off-the-shelf motherboard, CPU, RAM etc. and assemble them, I mean build my own computer. From scratch. How "from scratch" I'm not really sure yet. Some people build their own computers based on classic 8 bit processors, like the Zilog Z80 or the Motorola 6809 (like this project). Some people design and build their own CPUs using 7400 logic chips (like this project). Some people design and build their own CPUs out of relays(!), inspired by the pioneering designs of Konrad Zuse (like this project). I think I'd be genuinely satisfied doing any one of these things.
- Write my own operating system. Not necessarily for the computer above, although that would certainly count. For i386 would probably be better. I'm not sure how far I'd want to take this to make it count for the list. Something around the level of MINIX 1 or 2 would most definitely count (especially if it had a TCP/IP stack!), but I would probably also be happy to stop a bit short of that.
- Write a device driver. Doing this would probably be a necessary sub-project of writing my own OS if it were to be of any use, but I've put it as a separate item because it would be entirely possible to satisfy this list item by writing a driver for an existing OS. I don't really know or care what sort of device the driver would be for, I imagine that just about anything would satisfy my motivation for putting this on here, which is to understand more about how computers work at a lower level.
- Write my own C compiler. 'Nuff said.