Path: gmdzi!unido!mcsun!uunet!snorkelwacker.mit.edu!ai-lab!ai.mit.edu!gnulists
From: r...@gnu.ai.mit.edu (Richard Stallman)
Newsgroups: gnu.announce,gnu.gcc.announce,gnu.g++.announce,gnu.emacs.announce,
gnu.misc.discuss
Subject: Patent on a standard-byte order for intermachine communication
Message-ID: <9107131607.AA14833@mole.gnu.ai.mit.edu>
Date: 13 Jul 91 16:07:45 GMT
Followup-To: gnu.misc.discuss
Lines: 46
Approved: info-...@prep.ai.mit.edu
To: info-...@prep.ai.mit.edu, info-gnu-em...@prep.ai.mit.edu
To: info-...@prep.ai.mit.edu, info-...@prep.ai.mit.edu

US patent number 4,956,809 covers using a single standard byte
ordering for transfer of data between machines whose normal byte
ordering is different.

Unless invalidated (by prior art from mid-1982 or earlier), this patent
prohibits the principal means for transfering data between disparate
types of computer systems.  For example, Sun is now being faced with
demands to pay royalties for NFS, which uses this method.  This
directly threatens the GNU operating system, since we were planning to
support NFS.  (It also threatens BSD.)

Here is an explanation of the communication problem, and of the
solution which this patent covers.

The memory of today's computers is divided into units called bytes.
Each byte holds a single text character, or a number from 0 to 255.
Each byte of storage has a unique address.  These addresses start at 0
and range upward.

When you need to represent a number in a range bigger than 0 to 255,
you need more than one byte.  For example, two bytes can hold a number
in the range from 0 to 65535.  Four bytes can hold a number in the
range from 0 to 4294967295.  This four-byte number might be held in
bytes 72, 73, 74 and 75--four consecutive bytes.

There are various options for distributing the value of the number
among the bytes.  In practice, most of today's computers use one of
two methods.  The "little endian" method is to put the less
significant figures in the low-numbered bytes.  The "big endian"
method is to put the most significant figures in the low numbered
bytes.  (These names come from "Gulliver's Travels".)

If you transfer a block of data from a big-endian computer to a
little-endian computer, preserving the order of the bytes, all the
multi-byte numbers will be scrambled.

The simplest way to communicate data between different computers is to
set up a convention for the ordering of the bytes in any multi-byte
number.  If the big-endian ordering convention is chosen, then
little-endian computers must reverse the byte order when they read and
write network messages.

This is exactly what is covered by US patent 4,956,809.

If you find prior art dated 1982 or earlier, please inform
lea...@prep.ai.mit.edu.