Foreign Device Drivers WAS: sucks!

Mike McCarty Mike.McCarty at sbcglobal.net
Fri Nov 10 19:45:06 UTC 2006


Tom Horsley wrote:
> On Fri, 10 Nov 2006 12:30:28 -0600
> Mike McCarty <Mike.McCarty at sbcglobal.net> wrote:
> 
> 
>>[1] The owner of the captive NTFS to consider expanding the project
>>to be more general, perhaps being able to load other drivers
> 
> 
> I have long thought that linux could be much improved by having
> its driver interface just accidentally happen to be identical to
> Windows driver interface so you could just "oops" load windows
> drivers :-).

Or at least have an optional layer which could install them.

> Unfortunately, this would only help (admittedly the majority) folks
> with i386 systems. Folks running linux on PPC, etc couldn't take
> advantage of such drivers (unless you want to run drivers in
> a 386 emulation layer - which might be possible but seems likely
> to impact performance just a tad :-).

Umm, an emulated interrupt handler doesn't sound all that good to me.
And I've had to use them, with a PPC emulating a Z8001.

> Also, from my brief foray into the early Windows NT Driver Development
> Kit, I suspect there are only about 3 sentient entities in the universe
> who actually understand how to develop windows drivers, and only one
> of them lives within 4 light years of earth :-).

Well, I didn't find the DDK hard to understand, just hard to use. Just
reading the registry and making entries, hooking into the interrupt
structure, reserving memory and I/O space addresses with HAL, and
setting up for the deferred procedure calls took 1500 lines of C.
That was before actually writing any running code, just getting
installed as a driver. And the double conversion from Unicode to ASCII
to C style strings and then back again for everything was a major PITA
as well. Each individual part is easy enough to understand, but
it is all so complicated, and the documentation doesn't lay it all
out in order, just lots of "example code".

Mike
-- 
p="p=%c%s%c;main(){printf(p,34,p,34);}";main(){printf(p,34,p,34);}
This message made from 100% recycled bits.
You have found the bank of Larn.
I can explain it for you, but I can't understand it for you.
I speak only for myself, and I am unanimous in that!




More information about the fedora-list mailing list