From owner-freebsd-doc Sun Jan 23 23:15:19 2000 Delivered-To: freebsd-doc@freebsd.org Received: from taurus.cs.albany.edu (taurus.cs.albany.edu [169.226.2.109]) by hub.freebsd.org (Postfix) with ESMTP id 6EC5014FB5; Sun, 23 Jan 2000 23:15:09 -0800 (PST) (envelope-from maniatty@cs.albany.edu) Received: from richard.cs.albany.edu (richard.cs.albany.edu [169.226.2.48]) by taurus.cs.albany.edu (8.9.3+Sun/8.9.1) with ESMTP id CAA23346; Mon, 24 Jan 2000 02:15:04 -0500 (EST) From: "William A. Maniatty" Received: (from maniatty@localhost) by richard.cs.albany.edu (SMI-8.6/CLI2) id CAA02016; Mon, 24 Jan 2000 02:16:36 -0500 Date: Mon, 24 Jan 2000 02:16:36 -0500 Message-Id: <200001240716.CAA02016@richard.cs.albany.edu> To: chuckr@picnic.mat.net, msmith@freebsd.org Subject: Re: Learning the FreeBSD Kernel Cc: FreeBSD-doc@freebsd.org, asmodai@wxs.nl, freebsd-hackers@freebsd.org, grog@lemis.com, maniattb@cs.rpi.edu, maniatty@cs.albany.edu Sender: owner-freebsd-doc@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org 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