From owner-freebsd-hackers Sat Jan 22 20: 7: 0 2000 Delivered-To: freebsd-hackers@freebsd.org Received: from cs.rpi.edu (mumble.cs.rpi.edu [128.213.8.16]) by hub.freebsd.org (Postfix) with ESMTP id 621F114C38 for ; Sat, 22 Jan 2000 20:06:57 -0800 (PST) (envelope-from maniattb@cs.rpi.edu) Received: from cs.rpi.edu (maniattb@dishwasher.cs.rpi.edu [128.213.8.31]) by cs.rpi.edu (8.9.3/8.9.3) with ESMTP id XAA43423; Sat, 22 Jan 2000 23:06:43 -0500 (EST) Message-Id: <200001230406.XAA43423@cs.rpi.edu> X-Mailer: exmh version 2.0.1 12/23/97 To: freebsd-hackers@freebsd.org Cc: maniatty@cs.albany.edu, maniattb@cs.rpi.edu Subject: Learning the FreeBSD Kernel Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Sat, 22 Jan 2000 23:06:41 -0500 From: Bill Maniatty Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG Hello All: I have a student this semester in my Operating Systems class who would like to become a bit more knowledgeable about systems software. I suggested that he learn a bit about how device drivers are written in FreeBSD as a minor project. My questions are: 1) Does any current documentation of how to write and/or install a device driver exist in English (note C != English)? We would love to have a level documentation like the document by Pragmatic at http://thc.pimmel.com/files/thc/bsdkern.html, we are looking for a how to guide. 2) If no existing documentation exists, would it be a good idea to put together a sort of how to guide for a simple driver (with an eye to generalization later if warranted)? 3) If the answer to 2 is yes, can we get constructive help from the FreeBSD community? Assuming that this constitutes an interesting project, what would be a good initial approach? I was considering: 1) Get and build the FreeBSD kernel (4.0?) 2) Choose a non-essential device with a simple preexisting driver. 3) Remove all trace of the driver from the kernel source. 4) Reapply the changes used to install the driver (perhaps one step at a time). We could suggest some simple sanity checks to support stepwise refinement. If this is a good idea, I would like the following help from the FreeBSD community: 1) Identify a simple driver (perhaps something like a joystick driver?) 2) Identify all source code associated with the driver (including configuration files, makefiles etc...). Some files may have only one or two lines devoted to the driver, so we will need to know how to recognize such lines and would appreciate pointers to such lines. Regards: Bill Maniatty |------------------------------------------| |Dr. William (Bill) A. Maniatty | |Assistant Professor | |Dept. of Computer Science | |University At Albany | |Albany, NY 12222 | |------------------------------------------| |Phone: (518) 442-4281 | |e-mail: maniatty@cs.albany.edu | |URL: http://www.cs.albany.edu/~maniatty| |------------------------------------------| To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message