When you compare the way Windows prints to the way OSX prints, most of the arguing in this thread gets nullified. In OSX, the concept of a driver does exist, but 99% of users will never have to install one (not counting system updates) for any purpose, even if it's without their knowledge.
I am fairly certain OS X uses CUPS. If thats the case, it uses filters not drivers. Unix represents lpt/ulpt (printer ports) as files that can be opened by user space processes - such as CUPS. CUPS uses the filters to translate documents into a printer's format (much like old old BSD lpd) and writes it to the lpt files or over the network. Many printers use similar language and one filter can usually use hundreds to thousands of printers.
A filter is a program that processes streaming input to output.
The only driver involved is lpt and all it does is probe the parallel port or USB for a generic printer (parallel port has special way to identify all printers, USB has tags to identify devices like printers, mice, etc...). lpt provides a generic I/O interface.
All generic hardware has a generic language which they must speak in order to work generically. For HIDs (Human Interface Devices - keyboards, mice, gamepads, etc), there is the concept of a button, a trackpad, and a joystick. There are also subcategories, like "101-keyed keyboard" or "three button mouse" or "xbox controller" that aid the OS in identifying each input.
In OSX, if you plug in hardware that speaks the generic, the hardware will just work without any kind of driver. In Windows, if you plug in hardware, you will be locked out from that hardware until you resolve the "please insert driver now" popup window, regardless of whether the hardware speaks in the generic or not.
That's right. Unix is distributed with generic drivers that are designed for chipsets, instead of brand names. For example, D-Link, Netgear, and Linksys all produce WiFi cards that use the Atheros chipset...on Windows, you cannot use a D-Link driver to drive a Netgear card, even though D-Link's driver can talk to Netgear's Atheros chip. In Unix, there is one umbrella driver that doesn't care about the brand...hence, if you plug in any device with an atheros chip, it works.
Sometimes drivers don't exist, but some Unix systems create generic device nodes so that userspace programs can still drive the hardware. FreeBSD has one for USB called ugen. ugen attaches to my fingerprint reader (since nothing else attached) and a UPEK userspace driver opens the device (like any file) and drives it. I think this is a great approach to something as trivial as a fingerprint reader.
Not every device class has a generic driver like USB's ugen...if no driver attaches to a device, it is simply ignored by the kernel and inaccessible from userspace...as far as I know anyways...maybe you can play games with /dev/kmem.
While Microsoft may have been justified by legacy support at some point in time for setting up the system the way they did, they certainly are not now. You can't support everything forever; you need to deprecate old systems when they get in the way of progress.
If brand-names weren't such a big deal, there'd be far fewer drivers for Windows...its no surprise because a good chunk of our hardware's internals are produced by the same companies with the same or similar components. For example, WiFi cards are quite numerous...but there are only a handful of chipsets. You reduce hundreds of drivers to a handful.