From owner-freebsd-hackers Thu Jan 30 08:46:26 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id IAA18250 for hackers-outgoing; Thu, 30 Jan 1997 08:46:26 -0800 (PST) Received: from phaeton.artisoft.com (phaeton.Artisoft.COM [198.17.250.211]) by freefall.freebsd.org (8.8.5/8.8.5) with SMTP id IAA18245 for ; Thu, 30 Jan 1997 08:46:23 -0800 (PST) Received: (from terry@localhost) by phaeton.artisoft.com (8.6.11/8.6.9) id JAA22068; Thu, 30 Jan 1997 09:25:02 -0700 From: Terry Lambert Message-Id: <199701301625.JAA22068@phaeton.artisoft.com> Subject: Re: Constructive criticism (was: bashing everyone for fun and profit) To: jgreco@solaria.sol.net (Joe Greco) Date: Thu, 30 Jan 1997 09:25:02 -0700 (MST) Cc: terry@lambert.org, msmith@atrad.adelaide.edu.au, mcgovern@spoon.beta.com, hackers@freebsd.org In-Reply-To: <199701300310.VAA00309@solaria.sol.net> from "Joe Greco" at Jan 29, 97 09:10:50 pm X-Mailer: ELM [version 2.4 PL24] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-hackers@freebsd.org X-Loop: FreeBSD.org Precedence: bulk > I make you a deal, Terry... you _show_ me a learning curve, and we will > see if it is ferromagnetic. :-) Hmmmm... OK. Transparent Aluminum Learning Curve #1: Describe the current overall DDI/DKI interface (including VM system API's). Describe how to write a device for it, such that the device sources will require no (or minimal) revision for use with the overall DDI/DKI interface which will be in use following the switch to devfs. Transparent Aluminum Learning Curve #2: Describe the current overall VFS module interface, starting with the VFS consumer interface at the top, and ending with the VM system API-based device interaction layer on the bottom, such that someone can write VFS modules with nearly no knowledge of FreeBSD internals, but moderate to high knowledge of FS design. Describe the theoretical basis for modules using both the VFS consumer and provider interface, instead of a system specific VM API, such that the module created will be stackable, once the layer abstraction issues that keep stacking from working above the level of agregation (as in the FFS/UFS stack) have been resolved. Transparent Aluminum Learning Curve #3: Describe the current overall support for ENPIC-type PCMCIA to ISA bridge chipsets for supplying card services. Describe the restrictions on implementation implied by the use of card services, such that a device driver can be written to operate with both PCMCIA and ISA devices, with no regard as to whether the device is a bridged PCMCIA device or a vanilla ISA device. Bonus question: describe the relationship of the current card services to the bus attach and planned PnP code changes, and its effect on the logical seperation of the functions in the device probe and attach routines. Transparent Aluminum Learning Curve #4: Describe the relationship between the kernel and utility programs such as "ps", "w", "vmstat", and so on. Place particular emphasis on providing a list of utilities which need to be rebuilt as a result of what structures changing. Describe *why* the utilities are dependent on promiscuous knowledge of kernel memory structures, and how a utility contributor can establish a similar list for a utility they plan to contribute. Bonus: describe implementation of this class of utilities with any long range plans for divorcing structure from presentation, so that the utility can be coded in such a way as to require minimal modification as these long term plans become reality. Transparent Aluminum Learning Curve #5: Describe the relationship between crt.0, ld.so, and the dlopen() family of routines. Describe the impact of this relationship on the use of library-level agregated (linker set) based constructors for pure virtual base classes (interfaces) in C++. Describe the correct way to code for maximum interoperability with the current a.out implementation, and the apparent future implementation direction, as embodied in John Polstra's "Elfkit". Transparent Aluminum Learning Curve #6: Describe why there are different tools for establishing the data structures used by the diskslice code vs. DOS partitioning, when conceptually, the only difference is the data being written. In the process, explain the utility of "/etc/disktab". Describe the interaction of these tools for adding a new disk to an existing FreeBSD system. Provide this data independent of drive controller type, drive size, physical drive geometry, or any other information which considers a drive as anything other than a linear array of sectors. Bonus: describe the operation of Bad144. Had enough? 8-). Regards, Terry Lambert terry@lambert.org --- Any opinions in this posting are my own and not those of my present or previous employers.