(Continuing a thread I began in my
July 13, 2007 entry.) A gratifying number of people who wrote to me indicated that they would fund research, in a lot of different areas. I'm for that; research is much less political than education, and much more can be done with less money. (Even a billion dollars would not allow me to buy Harvard and convert it into public housing, as much as I think that that would improve both higher education and public housing.)
So. Here's a notion for you: Establish a foundation with our billion that would fund the evolution of PC hardware, a PC OS, and PC programming toward parallelism, all on an open-source basis. My plan (call it Parallelogram) would be to start with Linux and re-think all pertinent components to make good use of at least eight cores, figuring that by the time the project matures enough to useful, Intel will be shoveling cores onto their dies like there ain't no tomorra.
A major emphasis in the project would be to anticipate exploits and design them out of the architecture. This is more than just forbidding the use of unbounded string functions (though that would be a good start) and would include a minicomputer-style "supercore" that performs supervisory functions from a memory space that is inaccessible to any user space. I don't see why the supervisor should not have its own memory stick on the mobo, nor even why it can't have a separate CPU, though I admit I'm getting a little out of my league in suggesting it.
It wouldn't be up to me anyway. With thirty million in annual revenue, I could hire a crew of superb programmers to crank code and a couple of genius-level guys like Michael Abrash and David Stafford to architect it and attack the hard problems. I would try to steal a few guys back from Microsoft, primarily Anders Heilsberg, whom I would task with creating a suitable parallel processor programming system.
Key to the effort would be a guy to manage the project from the top. Somebody like Dave Cutler would be my goal, understanding that managers sometimes have to be berserk hardasses to make difficult things happen. (Not everybody agrees that open-source projects need tough central management, but everything I've read suggests that they do. There would be no Linux without Linus.)
Hey, it's a game, OK? Stop rolling your eyes. But PC technology seems mired to me, and one reason it's mired is that hardware and software (primarily the OS) currently come from utterly different continents of the mind. The advent of multicore CPUs suggests that mobo-level hardware and its OS must evolve together, or one or two of your cores will end doing all your work while the rest twiddle their thumbs and generate heat. Apple does as well as they do because they can make hardware design decisions in light of software needs and limitations, and vise versa. I had an intuition years ago that hardware and software coevolve, and for that coevolution to go anywhere useful, the effort must be managed. That's what the Parallelogram Project would be about. My great fear is that a billion wouldn't be quite enough, but damn, I would give it my best shot, and succeed or fail, interesting things would happen.