2005-05-08

Hodie natus est radici frater

One fine day, a Multics system (Multics was the conceptual ancestor of Unix) crashed. When rebooted, instead of dumping its virtual memory to a tape as it should have done, it printed HODIE NATUS EST RADICI FRATER, and refused to proceed. Panic all around. Finally, someone got Bernard Greenberg, who had programmed the recovery routine, at home, and he diagnosed the problem thus (translated into more modern jargon; full details here):

The virtual memory in Multics, rather than being just a big flat space, was a tree of segments, kind of analogous to a file system: there was a root segment, and all other segments had to be accessible from it. ("Opening" a file in Multics meant mapping it to a segment in the VM.) So the crash-dump recovery system walked the VM, dumping each segment to the tape for later diagnosis. Unfortunately, the root segment had been incorrectly written to the disk before the crash, and it had garbage in the "next sibling" pointer. This was the cause of the error message, which means "Today is born to the root a brother".

This story was later inflated into the myth that all Multics error messages were in Latin, and that this was done deliberately to prevent the customer from attempting their own half-assed diagnosis and repair. Rubbish, of course.

No comments: