Re: On interfaces and compatibility (Re: 1581 shipping)

From: Spiro Trikaliotis (ml-cbmhackers_at_trikaliotis.net)
Date: 2005-06-17 13:06:13

Hello,

* On Fri, Jun 17, 2005 at 11:11:26AM +0300 Marko Mäkelä wrote:
 
> 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.

Yes, but this is hard enough. Why can't I even *try* to remain
compatible to older stuff? I don't want to tell them to keep where they
are, but at least, they should try to implement the older semantics,
too, for older things. Not every one wants to keep counting-edge.

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

As I told: I do not have anything against this. Anyway, in most cases,
there are (easy) solutions for backwards-compatibility available.

> > 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.

This is not how it is meant to be. If a DLL replaces another one, and it
does not export the same interface (at least, as a sub-interface), that
DLL is not meant to have the same name. Thus, in theory (!), there is no
need for a version number.

Unfortunately, even MS breaks this rule from time to time. Anyway,
looking at how much effort MS puts in this (have a look at the "Ex"
functions and structures which have a version number of a size in its
header), you see that this is possible, if someone wants to.

> Also, Microsoft removed the EGA display driver already from Windows
> 3.1, even though there weren't any ABI changes.

They removed the driver, but the driver run on 3.1, didn't it? That is,
you only had to take it from the older 3.0 "distribution" to make it
work.

MS removed HPFS support with NT4; nevertheless, you could install it if
you could get your hands on the appropriate driver file.


The biggest real break MS did in its NT line was between NT3.51 and NT4,
where the graphics drivers moved from userland to kernel mode. This was
really a pity and a hard break, especially since you could not use the
older drivers anymore. But from then on, all that I see is that MS tries
to remain as backwards-compatible as possible. Sometimes, this does not
work, but at least, they try to.

> 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.

Yes, this is exactly what an OS is for. ;-)

Regards,
   Spiro.

-- 
Spiro R. Trikaliotis
http://www.trikaliotis.net/

       Message was sent through the cbm-hackers mailing list

Archive generated by hypermail pre-2.1.8.