Unix Programming - Unix Standards - Unix Standards in the Open-Source World
In the mid-1990s, the open-source community began
standardization efforts of its own. These efforts built on the
source-code-level compatibility secured by
POSIX and its
descendants. Linux, in particular, had been written from
scratch in a way that depended on the availability of Unix API
standards like POSIX.[146]
In 1998 Oracle ported its market-leading database product to
Linux, in a move that was rightly seen as a major breakthrough in
Linux's mainstream acceptance. The engineer in charge of the port
provided a definitive demonstration that API standards had done their
job when he was asked by a reporter what technical challenges Oracle
had had to surmount. The engineer's reply was “We typed
‘make’.”
The problem for the new-school Unixes, therefore, was not API
compatibility at the source-code level. Everybody took for granted
the ability to move source code between different
Linux,
BSD, and
proprietary-Unix distributions without more than a trivial amount of
porting labor. The new problem was not source compatibility but
binary compatibility. For the ground under Unix had shifted in a
subtle way as a consequence of the triumph of commodity PC
hardware.
In the old days, each Unix had run on what was effectively its
own hardware platform. There was enough variety in processor
instruction sets and machine architectures that applications had to be
ported at source level to move at all. On the other hand, there were
a relatively few major Unix releases, each with relatively long
service lifetimes. Application vendors like Oracle could afford the
cost of building and shipping separate binary distributions for each
of three or four hardware/software combinations, because they could
amortize the low cost of source-code porting over large customer
populations and a long enough product life cycle.
But then the minicomputer and workstation vendors were swamped by
inexpensive 386-based supermicros, and open-source Unixes changed the
rules. Vendors found they no longer had a stable platform to ship
their binaries to.
The superficial problem, at first, was the large number of Unix
distributors — but as the Linux distribution market
consolidated, it became clear that the real issue was the rate of
change over time. APIs were stable, but the expected locations of
system administrative files, utility programs, and things like the
prefix of the paths to user mailbox names and system log files kept
changing.
The first standards effort to develop within the new-school
Linux
and BSD community
itself (beginning in 1993) was the Filesystem Hierarchy Standard (FHS).
This was incorporated into the Linux Standards Base (LSB), which also
standardized an expected set of service libraries and helper
applications. Both standards became activities of the Free Standards Group,
which by 2001 developed a role similar to X/Open's position amidst the
old-school Unix vendors.
[an error occurred while processing this directive]
|