From owner-freebsd-current Sat Dec 5 05:07:38 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id FAA09553 for freebsd-current-outgoing; Sat, 5 Dec 1998 05:07:38 -0800 (PST) (envelope-from owner-freebsd-current@FreeBSD.ORG) Received: from nomad.dataplex.net (nomad.dataplex.net [208.2.87.8]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id FAA09539 for ; Sat, 5 Dec 1998 05:07:37 -0800 (PST) (envelope-from rkw@nomad.dataplex.net) Received: from localhost (rkw@localhost) by nomad.dataplex.net (8.9.1/8.9.1) with ESMTP id HAA07841; Sat, 5 Dec 1998 07:06:58 -0600 (CST) (envelope-from rkw@nomad.dataplex.net) Date: Sat, 5 Dec 1998 07:06:58 -0600 (CST) From: Richard Wackerbarth To: Paul Richards cc: "'Mike Smith'" , Garrett Wollman , freebsd-current@FreeBSD.ORG Subject: RE: KLD - what's the idea? In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG Selecting the "ideal" driver for a given device can be non-trivial. I like the general idea that Apple uses to allow drivers to be "hot swapable". Each driver has the ability to phase itself out and allow a new driver to take its place. This permits the system to start up with very generic drivers and replace them on the fly with better ones which are "tuned" to the particular characteristics of some hardware. It also handles the case of driver upgrade. Essentially, each driver is allowed to "bid" for a device. Whenever a driver becomes the highest bidder, it takes the device and runs it. At some later time, it can get notified that it has been "out bid" and must relinquish the device to the new driver. By providing a "registry", the "auctioneer" can speed the process along by first soliciting a bid from the likely high bidder. The nice thing is that all of this auction can take place in user-land. Each driver can be represented by its agent and only loaded to confirm its "bid" and take control of the device. Most drivers can be represented by the generic agent that works from the "registry" and never get loaded unless they are needed. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message