In Windows, a printer is viewed as a device that requires a proprietary driver in order to produce a print file that is then sent to the printer. The driver has a GUI and thus must be run on a client (Windows) machine with a graphical interface. In a network environment this print file is then uploaded to a special printer share on the server for spooling, and then sent to the printer by the server. A separate hidden share is setup on the server with the driver binaries for various architectures and Windows versions, that is used when installing the printer.
Conversely, In the standard UNIX protocols, a printer is assumed to understand the universal printer language - PostScript. Most high-end printers understand PostScript directly, and do not require any additional drivers to be used. Low-end "personal" printers most of us have at home, however, are designed to run with proprietary drivers, and thus do not understand PostScript. Cups handles this by using GhostScript to convert the PostScript document to a bitmap and/or to a printer-specific format. This conversion is done on the SERVER, right before the access to the device. Therefore, when UNIX shares printers, they all talk PostScript.Alon Altman