LWN.net Logo

How an Accident of Hardware Design Encouraged Open Source (O'ReillyNet)

How an Accident of Hardware Design Encouraged Open Source (O'ReillyNet)

Posted Feb 26, 2007 19:11 UTC (Mon) by MBR (guest, #43632)
In reply to: How Open Formats Encouraged Open Source (O'ReillyNet) by jd
Parent article: How an Accident of Hardware Design Encouraged Open Source (O'ReillyNet)

The PDP-endian byte-ordering scheme is almost certainly a result of a design inconsistency in the PDP-11. The PDP-11 hardware designers decided to give low-order bytes lower addresses than high-order bytes, but were only thinking of a single 16-bit word when they made this decision. Somehow, they forgot about this when they had to deal with muti-word data like floats and doubles. Maybe a different hardware engineer did that part of the design and nobody noticed the inconsistency until too late. In any case, high-order 16-bit words within floats and doubles were stored before low-order words. So within a 16-bit word the PDP-11 was little-endian, but within multi-word units of data, the word-order was big-endian.

DEC dropped the prefix PDP (Programmable Data Processor) in favor of VAX (Virtual Address eXtension) when they designed the VAX series of computers. Assuming that the VAX engineers fixed the PDP-11's multi-word addressing glitch, I'm not at all surprised that you could find "no Open Source programs that supported PDP-endian or could even translate from it". That doesn't alter the fact that DEC's small cheap machines were ubiquitous on college campuses, and influenced the thinking of a large number of software engineers. From sometime in the 1970s through at least the late 1980s, DEC was the second only to IBM as the largest computer manufacturer in the world.


(Log in to post comments)

How an Accident of Hardware Design Encouraged Open Source (O'ReillyNet)

Posted Mar 1, 2007 7:18 UTC (Thu) by jzbiciak (✭ supporter ✭, #5246) [Link]

On VAX vs. PDP, you're mostly right. I found this amusing article which indicates that for integers, VAX was pure little endian, and for floating point it retained PDP endian. How's that for wacky?

Copyright © 2013, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds