Comment by dragonwriter
10 years ago
Have the printer act as a server to which each of the sandboxed print queues talks directly, seeking permission to send data, and let the printer handle flow control.
Not saying this is necessarily a good idea, but it avoids a system-wide print queue, all you need at the system level is a service locator to let you know where the printer is that you need to contact.
It's not a bad idea, that's a print server or IP printer. But it's a modern system, and the print daemon architecture predates printers having their own microprocessors. It may even predate TCP.
The need to print documents predates Unix. :) Remember that the official excuse for getting a PDP-11 for developing Unix was to work on troff.
Ostensibly, you're right, but then the answer to "why do we need a system daemon" is "because Linux distros don't control the firmware of all printers nor can they tell manufacturers what to do."
In the case where a printer isn't intelligent enough to act as its own server, you could create another daemon whose sole function is to control access to the printer. Separation of concerns: formatting of pages and access control need not be the same piece of software.
you could create another daemon whose sole function is to control access to the printer
You could call it 'lpd' and then the circle would be complete.