Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 24 Jan 2000 02:16:36 -0500
From:      "William A. Maniatty" <maniatty@cs.albany.edu>
To:        chuckr@picnic.mat.net, msmith@freebsd.org
Cc:        FreeBSD-doc@freebsd.org, asmodai@wxs.nl, freebsd-hackers@freebsd.org, grog@lemis.com, maniattb@cs.rpi.edu, maniatty@cs.albany.edu
Subject:   Re: Learning the FreeBSD Kernel
Message-ID:  <200001240716.CAA02016@richard.cs.albany.edu>

next in thread | raw e-mail | index | archive | help
Chuck Robey writes:

>On Sun, 23 Jan 2000, Mike Smith wrote:
>
>> > I can't agree with Mike Smith that reading the code is adequate.  It
>> > certainly doesn't apply to newcomers, but it doesn't even apply to
>> > seasoned hackers like Mike: the BSD style doesn't provide for adequate
>> > comments, and so what you see from the code is mainly tactics, not
>> > strategy.
>> 
>> You miss my point; you don't want to be writing a driver until you know 
>> what you're doing.  Documentation on an OS' driver interface won't teach 
>> you that; it's something that's really only ever gleaned from experience.
>
>The problem is, you can't even find what the interfaces are.  Reading the
>code isn't very useful if you can't even find the right place to start
>from.  At least the interface points could be listed, so that someone
>would know where to begin.

Both Chuck Robey and Mike Smith have some points, but that won't
stop me from giving my opinion :-).  Mike is correct that experience is
key to being a solid systems software developer, who writes device drivers.
Now the next question is how can someone get experience?  By developing
systems software (which by the way they should only do if they have
experience at it :-)).

Traditionally there are two approaches:
  1) Have a friend available and bug them for help when you get stuck :-)
  2) Read the documentation.
  3) Read the code and lose a whole lot of productivity without certainty
     of figuring it out on your own.
  4) Dismiss the whole problem as unmanageable and throw your
     weight behind a more productive project.

Many people cannot do 1 (but mailing lists like this help a lot!) since they
don't have a kernel developer just across the hall.  This leaves 2,
which is not an option right now either.  Options 3 and 4 are still
open, and my bet is a lot of people take option 4, say going over to
something like Linux because it *seems* to have more documentation
(the FreeBSD man pages really are good for seasoned programmers though!).
The problem is that most people who do option 4) do so silently and in larger
numbers than you might think.   A could document (combined with some of 3)
would probably help.  Actually a document with a step by step development
of a very simple driver might actually tell someone how to write a driver
AND give them their first experience at writing a driver :-).

Regards:

Bill Maniatty

Give a man a fish and he eats for one day.
Tell a man that he could learn to fish but that teaching him how is a nuisance
   and he will go to your competitors fish market.


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-doc" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200001240716.CAA02016>