操作系统是如何控制打印机打印文件的?其实并不确切,因为打印机打印文件不是操作系统控制的,电脑底层控制的,操作系统只是调用了打印这个参数而已。
在详细介绍之前,我们先简单说一下打印的这个过程:
电脑应用程序(比如Office)选择好打印机及打印机默认应用设置→生成打印机专用文件(比如该输送的字体、格式等等要按行按列重新排序)→主板接口先发送一行确认数据,如果得不到打印机回复就会显示“打印已挂起”,否则,通知文件进入后备池→位于后备池的文件数据开始通过底层GUI接口向打印机输送纯数据流→打印机获得数据流,开始根据数据流排列墨粉或者激光冲印,方式也是按每一行数据开始输出,类似于老式打字机,只不过是整合输出而已。
那么打印机具体是怎么和电脑通信的呢?
时间还要追溯回Win98的时候,那阵的打印机接口普遍使用的是Com端口(串口):
串口与VGA口看起来十分相像(但是现在已经基本不使用这个口了,你可以当做串口是公头,VGA是母头来区分,下图就很直观了。
但是串口有个很大的问题,当时使用这个口主要是因为电脑需要额外的调度口来管理打印机,由于打印机效率低下且当时并不是很重要的外设配件,自然就临时使用了串口,串行接口(Serial Interface) 是指数据一位一位地顺序传送,其特点是通信线路简单,只要一对传输线就可以实现双向通信(可以直接利用电话线作为传输线),从而大大降低了成本,特别适用于远距离通信,但传送速度较慢。
串口的出现是在1980年前后,数据传输率是115kbps~230kbps。串口出现的初期是为了实现连接计算机外设的目的,初期串口一般用来连接鼠标和外置Modem以及老式摄像头和写字板等设备。串口也可以应用于两台计算机(或设备)之间的互联及数据传输。
所以这就知道了,本身这个接口对于外设是一个统一调度(就是电脑安装打印机选择端口的多个Com端口),但是用于打印机实在太慢。。。
新的端口代替了旧的端口
并口端口的诞生可谓是专门为打印机设置,我们刚刚讲到现在的打印机打印是逐行接收数据直接打印,可旧式打印机却是接受完文件之后进行初步校验然后再打印,为了提高效率,并口的好处就体现出来了,它相当于一次只允许一串数据流传输,看起来慢了,但是却防止了多串数据流互相干扰的问题,加之本身我们的打印机也不需要同时接收多串数据流,平稳而持续的并口就成了最好的选择。
但是这个LPT接口也有很多坏处,本身就是为了从主机传输数据到打印机、绘图仪或其它数字化仪器而诞生的接口,在主板上叫Centronics的36脚弹簧式接口(通常主机上是25针D型接口,打印机上是36针Centronics接口)。
一个LTP接口占用的面积接近两个VGA接口对于小主板来说压力很大,占用了很多空间,而一般来说使用打印机的电脑又屈指可数,这个专用的借口用于很少的用户实在是浪费,这个时候,因为USB2.0的诞生,USB的传输速度终于到达了比较高的水准,而更多的外设产品也选择使用USB接口,这就使得打印机也需要一次新的革新了。
云打印改变了传统接口
由于USB2.0供电不足,所以一般打印机还需要另外接入电源线用于供电,但是使用USB传输文件后,虽然效率没有太大变化(主要因为打印机的标准特性还是单行数据流读取,速度还是那么慢),但是成功的减少了空间占用,可以让主板上多放更多的USB接口来满足日益提高的外设需求。
另外,使用了USB之后,电脑系统对于打印机的操控增加了更多,因为差传输了更多的数据,所以打印机在系统上的设置也可以更加复杂,甚至可以利用USB001端口实现全办公室随意公用网络打印机。
打印机的更新还在继续
随着USB3.1时代的到来,打印机目前的传输速度和打印机机制实在太慢,这种局限会随着科技发展提供新的打印机标准,比如一次打印多页的操作也是有可能的,但是以后的打印机调度恐怕会取消系统底层的调度,而是直接利用BIOS(就像调度光驱一样),直接做到系统的完全控制。