Check out this old salon article I discovered recently; it’s pretty cool.
Here’s a tidbit:
“As we were doing and documenting the port, we realized we’d eventually have to do a complete release,” Lynne says. “This was a very arduous process. We had to throw away all the licensed portions. We started to do novel work. We realized that a lot of what we had thrown away were first cuts. It’s ironic that people have spent so much time and money on stuff developers just threw in.”
The Jolitzes believed that from its origins as a series of quick, if elegant, hacks, Unix had hardened into a series of unquestioned rituals for getting things done. Many of these rituals were fossils — work-arounds for hardware that no longer existed. “It’s amazing how much we were still tied to the past,” Lynne says. “The physical machines had been hauled away, but elements of the operating systems are still being implemented in the same way.” She believes today’s Linux and BSD developers are carrying on that unhelpful tradition.
“It’s like they’re doing incantations,” she says. “They’re repeating what they’ve been taught, and they don’t know what it means.”
“There are all these artifacts of minicomputers still left in,” Bill agrees. One example is the allocation of address space and garbage collection. Put simply, this is how the machine decides where to put numbers it needs to remember, and when to clean up numbers it no longer needs. Bill criticizes what he describes as the “linear” idea of address space enshrined in Unix: Memory is assigned to the next free block of appropriate size. “It’s adequate for simple memory allocators but a massive problem for large allocations and clusters,” he says. “You end up with lots of little pools of memory.”
“There are ways to solve this. It’s cut and dried,” says Lynne. “You can ask anyone. Yet even trying to implement the changes necessary to improve the system results in incredible controversy, because you’re removing something somebody knows. You have to have been there to know that a lot of these elements of the operating system were very rough first cuts.”
“The Unix systems then offered eight or 10 different competing mechanisms to do basically the same thing,” Bill says. “The question in 386BSD was, How many of those could we get rid of? We increased the capabilities and reduced the size by a factor of 35.”
This slash-and-burn approach to the work on the new release spawned a series of articles in the respected journal Dr Dobbs. Those articles may have been even more influential than the code. A generation of O.S. developers — including Torvalds, then a student in Finland — studied and learned from them. On Aug. 25, 1991, Torvalds posted a fateful note to a Usenet news group devoted to the experimental operating system Minix: “Hello everybody out there using minix,” he wrote. “I’m doing a (free) operating system (just a hobby, won’t be big and professional like gnu) for 386(486) AT clones. This has been brewing since April, and is starting to get ready.”