[lkml]   [2000]   [Oct]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: Topic for discussion: OS Design

>Then you get more incorrect documentation and discover that the
>kernel interface has changed. You repeat this whole episode until
>you finally get to 'talk' to the hardware that your driver is
>supposed to control. This is only the beginning.
>With Linux, you just write the code. You put in a few debugging
>statements here and there. You make sure you don't do something
>dumb like write to some address you don't own, you compile it,
>then you insert it using `insmod`. If it doesn't work, you use
>`rmmod` to remove it. If the documentation is wrong or hasn't
>been updated, you just *look* at the source-code, observing how
>some other working module did it.
>o What used to take a month to get working in SunOS, will
>take a few hours on Linux. Linux has continually improved the
>resources available to the modules. In the beginning there was
>a kernel memory allocator. Now we have common resource allocation
>code for I/O addresses like PCI, common interrupt handlers, common
>sleep and wake-up routines, etc. Basically, the best ideas of
>all the driver contributors have been adapted into a kernel-driver
>interface so that every compliant module gets to share the best
>code available.

As long as your modules are trivial, you are correct. I agree that writing
a basic module is fairly easy, and debugging is easy (although if they
fixed the printk interface it would be easier), but.....

"compliance" is difficult without good documentation,and unfortunately most
of the docs for the linux kernel are in Alan Cox's head (and the like).
Virtually all books are out of date by the time they hit the shelves (the
linux "device driver" book had many errors and omissions and proved more
detrimental than useful). Most of the how-tos are out of date. This,
understandable, is what you get for free.

Also, the definition of "compliant" keeps changing. the difference between
a real commercial OS and linux is that linux is a moving target.

While they might brag about LINUX being "fast moving", it is also the main
reason that it is continuously unstable and the hopes of true stability
any time soon is questionable. Until they stop hacking core elements and
redesigning interfaces on the fly there will be no change. Just lots of new
features that almost work as long as you use them in a particular way.

theres a lot to be said for doing something right the first time and
sticking with it even if it isnt perfect. Unfortunately many of the
original linux designs were so poorly thought out that they need to be
completely redesigned.


To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
Please read the FAQ at

 \ /
  Last update: 2005-03-22 12:41    [W:0.184 / U:5.992 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site