Re: Why linux is so stupid with hardware drivers?

From: Norm Dresner (ndrez_at_att.net)
Date: 05/09/04


Date: Sun, 09 May 2004 18:20:06 GMT


<Jens.Toerring@physik.fu-berlin.de> wrote in message
news:2g6q8cF53blhU1@uni-berlin.de...
> Kasper Dupont <kasperd@daimi.au.dk> wrote:
>
> << stupid blatherings by ValGLA snipped >>
>
> > You obviously don't know what you are talking about. And
> > half of what you said is incorrect. Is this just another
> > troll post, or is there a point somewhere? I couldn't
> > find one.
>
> Looks like a very poorly executed troll. A reasonable troll attempt
> should come at least with a few correct facts to make the rest look
> credible at a first glance.

    Okay, you're both right that it looks like trolling, But he does have a
point [or two, maybe].

First, my background: I started programming mainframes before there were any
micros and I've run [part-time] a moderately successful software company
that sold to both the CP/M and DOS communities B.W. [Before the Windows
meltdown of these markets]. I've had over 5 years of experience developing
(real-time) Linux kernel drivers for complex custom systems that are used in
testing even more complex systems and I've developed many DOS/AMX drivers
and a few Windows device drivers too.

>From the point of view of a device driver programmer, Linux is both
primitive and friendly. The primitiveness -- perhaps a better word is
simplicity -- is both a blessing and a curse. As a WDD [Windows Device
Driver] programmer I have a (literally) bewildering API from which to choose
the perfect system call to do what I want, but I have to choose the exactly
perfect system call or my WDD won't work. The Linux environment is much
simpler, and it's correspondingly easier to find the API call I need, though
it won't always be exactly what I need and I'll have to work around that.

But the absolute worst part of LDD [Linux Device Driver] writing is that
there's no backward-compatibility built into the kernel and the API for
identically-named functions can change between major versions. There are
some Windows 95 Device Drivers that can still be loaded and function
correctly with Windows XP! Once a kernel function API is developed, it's
frozen in concrete and can always be used [until support is removed, which
does happen but not as often as you'd think it should].

One system I wrote and have maintenance [and upgrading] responsibility for
runs (currently) on a 1.3 GHz P-III with 512 MB RAM. When it's fully
operational, there are 12 separate user programs and 11 loadable kernel
modules in it. I started this using RTLinux with a 2.0.3x kernel and have
migrated it through 2.2.x and 2.4.x versions. The 2.2.x==>2.4.x evolution
was mostly painless, though there was at least one Linux kernel feature
[wait queues] whose API changed significantly enough that I had to re-write
some code. This has never happened [at least to me] in Windows. The 2.0.x
==>2.2.x jump was quite painful and required [IIRC] several months to get
everything right.

</RANT>

    Norm Dresner



Relevant Pages

  • Re: porting mfc windows application into linux
    ... If your Windows version of the application truely requires Windows ... to do in porting your application to Linux. ... Neither Wine nor Winelib support Windows device drivers; ... kernel activities. ...
    (comp.os.linux.development.apps)
  • Re: open source windows
    ... > b) Modifying Linux kernel to give Windows API and Driver interface. ... and then maintaining resulting pile of shit through the kernel changes. ... Of course nobody changes the interfaces (and all drivers that happen ...
    (comp.os.linux.development.system)
  • Re: OS Question
    ... Maxim Shatskih, Windows DDK MVP ... and documented for users of the API. ... the API inside some sort of kernel mode component but my knowledge of device ... drivers is not very good. ...
    (microsoft.public.development.device.drivers)
  • Creat thread, and access to process memory from kernel?
    ... I am still new to kernel programming, ... I am writing a kernel module (on Windows XP, and Vista), and ... Which API should be used to create a kernel thread? ...
    (microsoft.public.win32.programmer.kernel)
  • Re: Why linux is so stupid with hardware drivers?
    ... > some Windows 95 Device Drivers that can still be loaded and function ... > correctly with Windows XP! ... I started this using RTLinux with a 2.0.3x kernel and have ... not work with mainstream drivers. ...
    (comp.os.linux.development.system)