Linux Spool与其他打印服务的比较
概念澄清
常见打印服务与协议对比
| 技术/系统 | 核心定位 | 协议与端口 | 架构与特性 | 典型目录或接口 | 适用场景 |
|---|---|---|---|---|---|
| Spooling(机制) | 作业排队与缓冲的通用机制 | 无特定协议(由具体系统实现决定) | 先写盘后打印、解耦应用与设备速度差异 | /var/spool/ 下的队列目录 | 所有需要排队与可靠提交的打印场景 |
| BSD LPD/LPRng | 传统 Unix 打印系统 | LPR/LPD(RFC1179),目标端口 515 | 通过 /etc/printcap 配置,守护进程管理队列 | /var/spool/lpd/ | 兼容历史系统与老旧设备 |
| CUPS | 现代 Linux/macOS 标准打印系统 | IPP(基于 HTTP),并兼容 LPD/SMB/AppSocket/JetDirect | 模块化(调度器/过滤器/后端),PPD 驱动,Web 管理(http://localhost:631) | /var/spool/cups;命令行 lp/lpstat/lprm | 新环境、网络/跨平台、需要丰富过滤与管理的场景 |
| RAW(Socket/9100) | 直连打印引擎的网络协议 | TCP 9100(常见 9100–9102) | 类似直连并口,少协议开销,速度快 | 打印机 IP + 端口 | 兼容性好、追求吞吐与简单性的网络打印 |
说明:LPR/LPD 的 515 端口与 /var/spool/lpd 目录、CUPS 的 IPP 与 /var/spool/cups、以及 RAW 的 9100 端口均为业界通行做法;CUPS 还支持 LPD/SMB/AppSocket/JetDirect 等以适配不同设备与网络环境。
如何选择
常用命令与目录速查