LPR ist Teil des ursprünglichen BSD-Drucksystems. Es war recht einfach und unkompliziert, verfügte jedoch nicht über alle Verwaltungsfunktionen, die große Druckumgebungen erforderten. Sie könnten es hacken, um alle möglichen Dinge zu tun, indem Sie Filter an die richtige Stelle schieben, aber es war ziemlich blöd. Es enthielt auch eine sehr eingeschränkte Netzwerkfunktionalität, mit der Sie Aufträge an einen Remote-Drucker senden können. Da das Protokoll jedoch nur auf Klartext ausgelegt war, war es nie wirklich vorgesehen, Dokumenttypen zu bestimmen und in das zu übersetzen, was der Drucker verstehen konnte . Ad-hoc-Problemumgehungen halfen. Da das Netzwerkprotokoll so einfach war, wird es von vielen Netzwerkdruckern unterstützt.
System V hat ein größeres System entwickelt, mit dem Sie beispielsweise Druckerklassen einrichten können, und ein Druckauftrag wurde an den ersten freien Drucker in der Klasse gesendet. (Zum Beispiel, wenn Sie einen Maschinenraum mit drei Druckern hatten.) Es wurde auch versucht, eine formalere Unterstützung für Filter und ähnliches einzubauen, aber leider ist es auch sehr, sehr alt und nicht wirklich für Netzwerkumgebungen ausgelegt.
Heutzutage benutzt niemand wirklich eines der beiden Systeme. CUPS hat die Drucksysteme übernommen, bietet jedoch die Befehlszeilentools für lpr- und SYSV-Druck (lp). Das ist nur aus Kompatibilitätsgründen. Sie können jeden Befehl verwenden, den Sie am einfachsten finden.