04.25.08

May you live in interesting times

Posted in Thoughts at 8:35 am by Corey

There is an old (ancient) Chinese saying, which I have sometimes heard described as a curse: May you live in interesting times. When I first heard this saying, it wasn’t at all clear to me why it was considered a curse. But lately, in the last five or so years, it has become increasingly clear. Living in interesting times leaves little time for the things that one might be trying to accomplish.

One example that pertains to my work on Monarc is my adventures in networking. A while back I wrote a NIC driver for one of the devices VMware supports, the PC Net Pro PCI. It seemed like a good exercise, and the spec was clear and easy to find. The basic driver was finished in a day or so of decently fun coding, but I didn’t have a network stack of any kind. After some fun with logging packets and picking apart of hex dumps to read the basic traffic I left the driver alone for a long time.

Lately I have been trying to finish up Monarc’s new VM(M) to get ready to start building a user space environment and get something more useful going on with the kernel. The only problem is that recently I stumbled upon various wikipedia entries on TCP/IP, UDP, and other network stack components. I have a pretty thorough grasp on networking concepts and applications, but I haven’t specifically implemented a network stack before. Seeing the entries sparked some rather inconvenient interest, and presently I find myself halfway into implementing a full network stack. I blame having a NIC driver on hand for this distraction.

Don’t misunderstand me, a network stack is certainly a fun and useful component to have. I planned to include one from the beginning of this project, in fact. The real trouble is that the VM(M) is getting less attention than I had hoped. This kind of thing seems to happen during the rough spots in a sub-system’s development, when the fun stuff is done and all the necessary but boring parts need to be finished. For this reason I feel that having interesting things to do can be bad sometimes; the things that really should get done, don’t. At its extreme, it really can be a curse.

Overall Monarc is making a lot of progress, which is in all ways a good thing. Hopefully this new VM(M) will be fully functional soon, and I can start to pull together a shell and some other user space parts. There are a lot of ideas and interesting things to talk about once I get there.

It may be fun living in interesting times, but I hope they won’t be too interesting for productivity’s sake.

- Corey

Leave a Comment