We had existing drivers as reference guides, so extending the code to match, for example, the DEC 21143 Ethernet chip was easy. We built the hardware and software from scratch with a team of 10 in 14 months. I can't imagine completing such a project in a reasonable amount of time without source code. A few of us are currently improving the performance of a medium-priced laser printer. It needs a full-featured operating system to support tasks like interpreting and printing PostScript, PCL, and rendering images, graphics, and other material.
Printers have disks for spooling, fonts, and paging.
Interfaces to the printer include serial and parallel communications and Ethernet. The printer can receive jobs via FTP or spooling mechanisms, or just by sending the bits. Status and control are available using Telnet or HTTP Web interfaces. Printers of the current generation have huge virtual-memory needs. An 8.5 x 11 image with vertical resolution of 1200 dpi and horizontal resolution of 2400 dpi has about 256 mega pixels.