On Mon, 25 Oct 2004, Josh Triplett wrote: > However, suppose that your statement were true. Why stop there? > Consider the case of a piece of hardware which could not be initialized > correctly except by the Windows driver. In order for the device to > work, a user would need to boot up Windows, allow the driver to > initialize the device, and soft-boot into GNU/Linux, at which point the > driver could control the device. Also suppose that the Windows driver > was shipped on the manufacturer's CD, so the user already has it (which > is almost always the case). Repeat after me: "Drivers don't require > initialization, hardware devices require initialization". :) So why > can't this driver go in main too?
I would disqualify that driver from main not because it depended on a Windows driver, but because it depended on having Windows itself. Unlike the hardware/eprom and hardware/CD combinations, hardware/Windows isn't sold together and the user would have to get Windows separately--not because he lost a CD that he once had, but because Windows really is a separate item in more ways than just physically being on a different disk. > For another example, suppose there were a new, proprietary 3D graphics > interface, ClosedGL, only implemented by ATI's and nVidia's proprietary > driver. Suppose someone wanted to package a game that used ClosedGL. > Repeat after me: "Programs don't require drivers, hardware devices > require drivers (to provide APIs)". :) So by your arguments, why can't > this game go in main? You may as well claim that a hard drive is a "piece of hardware which does word processing", that a word processor is a driver for this piece of hardware, and that without this driver you lose some functionality because the hard drive won't process words. The flaw in this reasoning is that a hard drive or a graphics card is a general purpose piece of equipment. The "driver" isn't a driver.