Trivia: Where did the Term "Endian" come from?
Question: Where did the term "endian" come from?
Answer: From "Gulliver's Travels".
Background History from www.dictionary.com.
The terms big endian and little endian come from Jonathan Swift's "Gulliver's Travels" via the famous paper "On Holy Wars and a Plea for Peace" by Danny Cohen. In Swift's novel, Gulliver discovers civil war has broken out among the Lilliputians over whether soft-boiled eggs should be opened at the big end or the little end.
In computer science, big-endian systems store the most significant value at the lowest storage address (i.e., first). Little-endian systems store the least significant value at the lowest storage address. Many mainframe systems use big-endian architecture, whereas PC's use little-endian architecture.
Differences in how varying computer architecture manage the issue of little endian versus big endian leads to problems when transferring data between computers with differing byte order. This problem is frequently referred to as the nUxi problem. The string "Unix" might look like "nUxi" on a machine with a different "byte sex" (e.g. when transferring data from a little-endian architecture to a big-endian architechture, or vice-versa).
If only FairCom had been around to resolve the disputes! By providing a uniformat server, FairCom allows developers to avoid this "nuxi problem".
c-tree's standalone models have supported the concept of UNIFRMAT for years. In fact, UNIFRMAT is one of c-tree's most appealing features. UNIFRMAT allows machines with alternate architectures related to byte ordering to read and operate on each other's data.
In the early years of c-tree, the best example of the utilization of this feature was allowing applications in Apple's Macintosh platform (HIGH_LOW environment) to operate on Windows (LOW_HIGH environment) data.
FairCom extends this feature to the c-tree Server as well:
- "HIGH_LOW Host" Server: Operates on LOW_HIGH data (i.e., a c-tree Server on Sun Sparc may read Windows data), but not on native HIGH_LOW data.
- "LOW_HIGH Host" Server: Operates on HIGH_LOW data (i.e., a c-tree Server on Intel Linux may read Sun data), but not on native LOW_HIGH data.
This allows an existing system to be replaced with an opposite system without converting the data files. For example, a standard c-tree Server on a Sun Sparc system (HIGH_LOW) could be replaced with a LOW_HIGH Host c-tree Server on a Linux (Intel) system by simply installing the new Linux c-tree Server software and copying the existing data to the Linux system.
This convenience comes at a price however. Due to the differences in byte ordering, transaction processing is not supported with UNIFRMAT servers. As the transaction log files are not portable, various features of transaction processing become more of a challenge, and have not been implemented at this time.
The following diagram demonstrates a UNIFRMAT environment.
|