Open Source Origins In IBM 360 & DEC PDP-11?
A recent O’Reilly article speculates that open software, with all its advantages, became possible because of choices made by IBM with its 360 mainframes and DEC’s reaction with its PDP-11 minicomputers. It is an interesting hypothesis: undocumented, obfuscated binaries were useful only to the original developer, while ASCII text files were readable by others outside of the corporate walls.
Back in the early 1970s, the hardware engineers at Digital Equipment Corporation made a decision about how their new computer, the PDP-11, would address memory. I believe their decision had the unintended, butterfly-effect consequence of helping to bring the open source software movement into existence.
The author, Mark Rosenthal, goes on to describe how the word-size of a particular architecture seemed to be chosen at random, with the word-size being the minimum addressable block. The 360 and PDP-11 used 8-bit bytes as their minimum addressable block, using 4 (360) or 2 (PDP-11) bytes as their word-size. The 360 used what came to be known as big-endian byte order, while PDP-11 used little-endian. With the little-endian PDP-11 and the development of a portable OS written in a high-level language (UNIX, written in C), conflicts occurred when moving data between systems using big- and little-endian hardware, encouraging the use of ASCII text files for most purposes.
As I think about it, I believe that this problem of byte-order incompatibility ended up being a major driving force that resulted in the openness we find in the descendants of Unix. OSes prior to Unix were written in assembly language and were thus inextricably tied to the instruction set specific to the CPU they were written to run on. Unix was the first major OS written in a higher level language, and so it was easy to compile it to instruction sets for many different kinds of CPUs. Because other OSes ran only on a single architecture, they never encountered the byte-order incompatibility problem. But Unix’s portability guaranteed that it would run into the problem, big time. When people tried to move data between big-endian and little-endian machines, bytes within words came through scrambled. The scrambled results became the name of the problem; it was known as either the XINU problem or the NUXI problem, depending on the specific architectures of the two machines.
Rosenthal argues that this led to the open software tradition.
I was not there, so this is all new to me. It could be close to true or it could be quite distant. I think that it is valuable and interesting to look into these things, just as it is valuable and interesting to have youth looking into the Supreme Court’s Dred Scott decision. If you can not understand how you got where you are, you may not recognize what things are most valuable in keeping you there. If for no other reason, this is a good discussion to have.
One other point: the undocumented binaries documented and easily-readable text discussion around OOXML and ODF can be seen to trace back to this very time. Microsoft's strength is in excluding anyone else, so that users have no other choice but to buy their products. On the other hand, many companies with ODF-compliant products believe their strength is in being and having a community of vendors with standards-compliant products and giving more power to the user.