On interfaces and compatibility (Re: 1581 shipping)

From: Marko Mäkelä (marko.makela_at_hut.fi)
Date: 2005-06-17 10:11:26

On Fri, Jun 17, 2005 at 09:53:24AM +0200, Spiro Trikaliotis wrote:
> Not wanting to start a flame war, but this is one big disadvantage of
> the Linux idea. The Linux developpers always feel free to change the
> driver interface, and they do this.

The BSD developers are even more free to change the interfaces, since
they also distribute the C run-time library and the core user space
programs.  In Linux, the interfaces typically only change within the
kernel.  Some time ago, I tried to run a statically linked copy of
NCSA Mosaic (the predecessor of the Netscape browser).  I was a bit
surprised that it worked, even though the program was compiled close
to a decade earlier.

The interfaces are changed for a reason: to address security issues and
to make the code more modular and more maintainable.

> Don't get me wrong: I know that with Windows, there are the same
> problems with drivers and the like. But, at least, MS *tries* to retain
> backward-compatibility.

Some counterexamples: Windows doesn't include version numbers in the
file names of shared libraries, so you can't have multiple library versions
installed at the same time.  Also, Microsoft removed the EGA display driver
already from Windows 3.1, even though there weren't any ABI changes.

Small 8-bit computers and embedded systems are more fun than big
general-purpose operating systems, because you don't necessarily need any
drivers or other layers of abstraction.  But then again, it'd be nice to
have all applications be compatible with a fastloader or a new type of
storage device.

	Marko

       Message was sent through the cbm-hackers mailing list

Archive generated by hypermail pre-2.1.8.