> IMHO, the minor differences (and I mean _minor_) between various
> flavours of Unix is one of its strengths. It means that innovation is
> occurring and (as everybody can see) we get a better product in the end.
But we must be careful not to change too much. Innovation is good and a
moving target is difficult to aim at, but what good is an OS where you
can't run last year's software on. In my company, a lot of money is
spent on ensuring _binary_ compatibility between various versions and
releases of an OS that
- runs on single and multiple CPUs
- has 32 and 64 bit variants
- gets new features added every other day.
If I buy a word processor and shell out $100, I don't want to go and buy
a new one next year, just because the OS has drastically changed
underneath. There have to be VERY GOOD reasons for that.
UN*X does have the strength in that the OS kernel is quite nicely
separated from user land and a number of features are introduced so that
user lever programs, even thos that come with the OS, are pretty much
independent of the OS internals. I can still remember when ls had to
read() directory contents and ps had to seek() and read() in /dev/kmem.
But look at /proc: There are different versions in SVR4, Linux and
(Free)BSD. When I recently saw Linux' /proc for the first time, I was
impressed! When I write a program to use /proc/cpus, will it run on
FreeBSD? No! Will it run on next year's Linux? Who knows?
What you call "minor differences" look enormous when you have to write
software for these systems and maintain it over a long period of time:
First there are n versions for the basic OS flavors (Linux, FreeBSD,
OpenBSD, NetBSD, Solaris, AIX, UnixWare, ...). Next year there'll be two
different versions needed for the XYZ OS, because they have decided to
use the very new networking code and my software wants to communicate
over the net. I'll drown in maintenance in a few years' time.
[ W'98 is binary compatible to W'98 ]
Quote:> This is a lie. Not yours, Microsoft's. They encourage the opinion that
> Windows is a single system (and their inability to differentiate between
> a GUI and an OS helps this). Ignoring the issue of compatibility
> between 9x and NT, there's also the DLL issue. Installation of
> Microsoft patches, software and (I have heard) non-Microsoft software
> replaces various DLLs, sometimes with back-level and incompatible
I agree that it is a problem, in theory and everyone of us has had
various versions of the same DLL being incompatible. However, I think
that in practice, this is much less of a problem.
[ ... ]
> >program written for one instance of UNIX (e.g. Linux) will not run on
> >another instance of UNIX (e.g. FreeBSD, agreed there is a Linux
> >emulation package, but that's not the point).
> Unix programs run on the widest variety of unrelated hardware and
> kernels known to Mankind.
You're right here. But who owns a Cray X-MP?
When we discuss Linux, we usually talk about PC hardware.
Quote:> You're talking about binary compatibility which is a very restricted
> notion of portability. Unix in general has source compatibility -
> for example gcc is a non-trivial program which compiles and runs on
> a wide variety of hardware and kernels.
Uh, please don't start this ... I hope Scott Nudds doesn't hear this
Quote:> Most people don't need binary portability - most people don't own
> several machines of differing architecture. What they need (if
> they're not into compiling the code themselves) is a binary of
> the program for their system. Creating that binary is really the
> developer's job. And it's not all that difficult. For example
> gimp or netscape have binaries for several Unix systems online.
> Just choose the one which matches your OS.
I strongly disagree!
Although it is a strength of software when it compiles and runs on the
most diverse systems (a lot of bugs are found when porting SW from a
little-endian machine to a big-endian machine or from one with 32 bit
integers to one with 64 bit integers), maintaining such a beast is
difficult. Validating the software and getting it distributed is next to
Take x programs and y hardware platforms (and z operating system
versions). That makes x*y*z combinations. Add another OS version and
you'll have to do x*y validations.
"Most people" want binary portability because they want to go into a
shop and pick up the latest version of their favorite game or text
processor and they want to run it on the hardware they have, which is
usually a PC. The shopkeeper, on the other hand, doesn't want to stock
ump* different versions of the latest game, text processor whatnot,
especially if (s)he can get away with one version only. A good example
for this is the fate of BetaMax: When I wanted to have a BetaMax version
of a video, the shopkeeper told me that "Fortunately I don't stock
BetaMax any more". I can't even get blank tapes! Yet everyone agrees
that BetaMax _is_ the better system.
You can also see this from the fact that M$ has dropped almost every
non-Intel-based hardware platform for WinNT and from the fact that M$
draws up PC-standards that will "guarantee" to run future versions of
Quote:> Agreed that it is undesirable for "alternate" versions of a system
> to break binary compatibility. I think that given a strong base
> the laws of evolution are going to work to limit incompatibility
> unless the "alternate" system has strong survival factors (you
> can see this in the wider scope of Windows vs Unix also).
But in the marketplace, this adds to the confusion of the end-users.
Some, if not most, will think that a hard rock is better to sit on than
a drifting armchair. And a multi-million dollar marketing campaign will
do the rest.
Please, don't get the impression that I am
a) favoring M$ product which I absolutely don't
b) opposing multiple UN*X-like OSes.
I just see that UN*X-like OSes suffer from incompatibilities between
them and adding yet another incompatible branch which needs manpower to
support will weaken its position.
UNIX - Live free or die!
PS Dieser Artikel enthaelt einzig und allein meine persoenlichen
PS This article contains my own, personal opinion only!