Text File

THE STORY OF CREATION or THE MYTH OF URK

In the beginning there was data. The data was without form and null, and darkness was upon the face of the console; and the Spirit of IBM was moving over the face of the market. And DEC said, "Let there be registers"; and there were registers. And DEC saw that they carried; and DEC separated the data from the instructions. DEC called the data Stack, and the instructions they called Code. And there was evening and there was morning, one interrupt.

And DEC said, "Let there be a word in the midst of the data, and let it separate the data from the registers." And DEC made the word and separated the data which were under the Stack from the registers which were above the memory. And it was so. And DEC called the memory Core. And there was evening and there was morning, a second interrupt.

And DEC said, "Let the data under the stack be gathered together into one place, and let partitions appear." And it was so. DEC defined the partitions as 4Kw, and the data that were gathered together they called BLOCKS. And DEC saw that it was good. And DEC said, "Let the CPU put for addresses, pointers yielding bytes, and structures bearing words in which there is data, each according to its type, upon the partition." And it was so. And DEC saw that no bits stuck. And there was evening and there was morning, a third interrupt.

And DEC said, "Let there be lights upon the console of the CPU to separate the addresses from the data; and let them be for signs and for diagnostics and for blinking. And it was so. And DEC made the two great Buses, the greater Bus to rule the CPU, and the lesser Bus to rule the peripherals; they made the peri- pherals also. And DEC set them on line to give data to the CPU. And DEC saw that it was good. And there was evening and there was morning, a fourth interrupt.

And DEC said, "Let the Bus bring forth swarms of data, and let stack pointers fly above the data across the partitions of the Core." So Bell created the great C monsters.c and every a.out that runs, with data swarming, and every pointer according to its type." And Bell saw that is it was good. And Bell blessed them, saying, "Be fruitful and fork and fill the partitions in the Core, and let processes multiply." And there was evening and there was morning, a fifth interrupt.

And Bell said, "Let there be UNIX." And it was so. And Bell made the errors of the Bus according to their kinds and the faults of memory according to their kinds, and everything that core-dumps upon the disk according to its error. And Bell saw that it was good. Then Bell said, "Let us make debuggers for the image; and let them have dominion over the a.out, and over the breakpoints, and over every address that sits upon the stack." So Bell created parity; in the image of Core they created it; even and odd they created it. And Bell checked it and saw that it was good. And Bell said of UNIX "Behold, We have given you every pointer yielding objects, and every identifier with value in its address; you shall have them for food. And to every device on the Bus, and to every program in the bin, and to everything that creeps on the disk, everything that has the mode of allocation, We have given inodes to check." And it was so. And Bell saw everything that they had made, and behold, it was a lot better that RSTS/E. And there was evening and there was morning, a sixth interrupt.

Thus the hardware and the software were finished, and all the host of system calls. On the seventh interrupt, it crashed.

[Credit for this piece, originally written in 1978 at Reed College, goes to Rico Tudor (now at Mark Williams Co.), who used 'ed' global change commands on the original (accurate) text of Genesis. It is reprinted here without his permission. - Phil]