Z:gnu-www-ja-rms-nyu-2001-transcript--1f0ae0-By 1991, there was just one ma/en

By 1991, there was just one major piece missing, and that was the kernel. Now, why did I put off the kernel? Probably because it doesn't really matter what order you do the things in, at least technically it doesn't. You've got to do them all anyway. And partly because I'd hoped we'd be able to find a start at a kernel somewhere else. And we did. We found Mach, which had been developed at Carnegie Mellon. And it wasn't the whole kernel; it was the bottom half of the kernel. So we had to write the top half, but I figured, you know, things like the file system, the network code, and so on. But running on top of Mach they're running essentially as user programs, which ought to make them easier to debug. You can debug with a real source-level debugger running at the same time. And so, I thought that way we'd be able to get these, the higher level parts of the kernel, done in a short time. It didn't work out that way. These asynchronous, multi-threaded processes, sending messages to each other turned out to be very hard to debug. And the Mach-based system that we were using to bootstrap with had a terrible debugging environment, and it was unreliable, and various problems. It took us years and years to get the GNU kernel to work.