My another $.01 on Eric and Greg's debate.
From Greg's another reply :
I really need to write a article/essay about why Linux does
not have driver api stability. I touched on it in my
previous post, but in reading your response, and the
responses by others, you all seem to miss the main points.
It's not that we don't know how to create a binary api with
padding structures out, and offering up new functions, it's
the fact that because we have the source to all of our
drivers, we do not have to.
So now he changed his mind and admits that it's possible
to have a driver api stability (see my previous blog entry).
Fine. At least this time it looks a bit more reasonable on the face. Let me counter this argument by quoting one open source driver developer. Following is from a posting on comp.unix.solaris by Joerg Schilling (In case you don't know, he's the author of libscg, the SCSI generic driver which is used by many cd recording software).
From: js@cs.tu-berlin.de (Joerg Schilling) Newsgroups:
comp.unix.solaris Subject: Re: Anyone else seeing this management
trend favoring Linux?
There are other reasons why Linux & Linux are wrong:
Linux folks likes to force me to use /dev/hdc in order to send SCSI
commands to the first CD-ROM.
Well inside cdrecord all SCSI commands are routed though the highly
portable libscg (which started in August 1986 so it is 6 years older
than Linux but it is still binary compatible to the August 1986
version if you use SunOS on a 68020).
Libscg offers services that are just above the SCSI transport level
in the OS while /dev/hdc is a device node of a block device. Why
should I be forced to use a interface that is far too high in
layering and thus uses inapropriate names at /dev/* when Linux
already has a SCSI generic driver system that offers services at the
right layering level and allows (in contrary to /dev/hdc) to map
/dev/sg* entries to SCSI bus,target,lun?
The reason is that the linux kernel is completely non-orthogonal and
offers many superfluous services. It is possible to send SCSI
commands to ATAPI drives by using /dev/sg* fd's but with /dev/sg* and
ATAPI there is no DMA if the transfer length is not a multiple of
512.
---> Linux has no DMA abstraction layer as Solaris. If it had, then
everything would work the same. But the useless /dev/hd* SCSI
transport for ATAPI which has been introduced by Linus Torvalds only
in order to annouy users of CD/DVD writer did not have correct DMA in
the beginning too. Later after I made a bug report, the bug in
/dev/hd* has been fixed but as a fact of pure evilness, the _same_
bug has not been removed from the /dev/sg* interface.
>Then it struck me that the Linux disk driving naming convention (i.e.
>hda, hdb, hdc, etc.) offers a clue on why Solaris had no problem with
>three controllers and why Linux choked. With 3 SCSI controllers, you
>could put a whole scheissload of disks on the system, but how in the
>heck are you going to label them with the /dev/hdx convention? This is
>especially true if the 3 SCSI strings are only partly filled initially
>and more disks are added later on.
This problem has tradition on Linux and is _very_ probable with the /dev/sg*
(Generic SCSI transport) interface. Many people had external CD writers that
have been switched off some time. If you boot with the CD drive switched off,
the /dev/sg* interface that yesterday has been pointing to the CD writer now
may become the second HDD.....
Let me give a final and frustrated comclusion:
From various mail exchanged I had with many "prominent" Linux kernel people
(including Linus Torvalds and Alan Cox) it seems that the main reason why
Linux constantly breaks interfaces is not because the Linux kernel folks
are trying to do the best without a compromise but rather because they
did not yet understand what an interface is :-(
--
EMail:joerg@schily.isdn.cs.tu-berlin.de (home) Jörg Schilling D-13353 Berlin
js@cs.tu-berlin.de (uni) If you don't have iso-8859-1
schilling@fokus.fraunhofer.de (work) chars I am J"org Schilling
URL: http://www.fokus.fraunhofer.de/usr/schilling ftp://ftp.berlios.de/pub/schily
Enough said.It's not a simple matter of binary interface. It's a matter of "stable" interface and proper abstraction layer. That doesn't change regardless of the availability of the driver source code. ( Sep 27 2004, 03:50:06 PM PDT ) Permalink Comments [1]
Post a Comment:
Comments are closed for this entry.


Posted by c0t0d0s0.org on September 27, 2004 at 11:08 PM PDT #