- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Linux 打印机驱动程序 开发 (绝对有用).doc
文章编号:1000-1220(2002)01-0047-03
Linux用户空间打印机驱动程序的设计与实现
刘 斌 王 沛 潘金贵
(南京大学 计算机软件新技术国家重点实验室,南京大学 计算机科学与技术学院 江苏 南京 210093)
摘要:当前,Linux作为新兴的操作系统,正越来越受到人们的重视和研究,本文对Linux打印系统进行了分析,提出了一种开放用户空间打印机驱动程序的通用方法,一定程度上解决了Linux打印机驱动程序开发困难的问题,同时,为了能够更好地解决开发Linux打印机驱动程序的问题,在总结了Linux和Windows打印系统特点的基础上,文中提出了一种新的Linux打印系统结构。
中图分类号:TP334 文献标识码:A
1 引言
自第一个操作系统诞生起就有了设备驱动程序的概念,因为操作系统本身就是用来驱动计算机这个“设备”的,驱动程序是属于操作系统的核心程序,它不仅直接参与操作系统的内部操作,而且和物理外设有密切关系,直接影响了它的工作效率,从经济角度来看,一种操作系统能否得到广大用户的认可,顺利在市场上推广,与它所支持外设的种类和数量的多寡有很大的关系,一个得不到硬件厂商支持的操作系统是没有什么前途的。反过来,硬件厂商所生产的外设如果没有适当的驱动程序驱动,也不过是一堆没有意义的废铁而已。
当前作为唯一一种能够想和Windows抗衡的操作系统,Linux正越来越受到人们的重视。从技术角度来看,Linux具有卓越的性能和惊人的稳定性,而且,它几乎免费的价格、完全开源的特性使得它逐渐受到人们的欢迎。但是,由于对计算机外设尤其是打印机的支持不足,使得人们在使用Linux时感到很不方便,甚至不愿使用Linux,限制了Linux的迅速推广。Linux缺乏打印机驱动程序,一个原因是支持Linux的硬件厂商还不多,另一个重要原因是Linux自身打印系统的特殊性造成的。Linux打印系统没有对打印机驱动程序结构做出明确的定义,造成开发打印机驱动程序困难的局面。因此,研究Linux打印系统,寻找开发驱动程序的通用方法,解决Linux平台可用打印机缺乏问题具有很强的现实意义。
2 Linux打印系统分析
为了对打印任务进行控制,Linux将打印系统分为上下两部分,上半部分和需要打印的应用程序合作,负责打印任务的生成和管理工作,分别由过滤器和lpd完成;下半部分负责与打印机通信,由运行于内核空间的驱动程序lp完成。Lpd负责在过滤器和lp之间传递打印任务。
由于lpd最早是为行式打印机设计的——只打印ASCII字符的打印机,所以要使它胜任现在的打印任务——文本、图形、Postscript等格式的数据,需要为它添加过滤程序——相当于Windows系统中打印机驱动程序。这部分驱动程序运行于用户空间。图1表示了打印机驱动程序和其他系统程序的关系。
Linux一般要求系统配置Postscript打印机来实习较复杂的图形打印。因为Linux的应用程序大多支持PS格式的文件输出,而且这样可以简化打印机驱动程序的设计(几乎不需要打印机驱动程序)。但是,目前市场上较为多见的还是只能处理图像格式的GDI打印机,这种打印机使用简单的控制命令控制动作,不参与图像格式的生成,要求驱动程序完成打印文档到打印格式文件的转换工作。为了支持GDI打印机,Linux为打印系统加了一个过滤程序的结构,由过滤程序来完成windows打印系统中打印机驱动程序的工作。
由于打印系统对驱动程序结构定义的不完整,造成在为GDI打印机开发Linux驱动程序的过程中存在如下两个主要问题:
驱动程序没有用户交互接口,用户不能设置文档打印属性。
驱动程序要独自实现文档格式的图像格式的转换,难道较大。
3 用户空间打印机驱动程序的设计
在Linux系统中,应用程序和打印机驱动程序之间关系松散,两者间的数据交换只有打印文档的传送,驱动程序几乎是一个独立的应用程序。鉴于Linux打印系统的特点,我们对图1中过滤器的功能进行加强,让它具有图形用户交互界面,同时充分利用linux丰富的共享软件,实现对文档格式到图像格式的转换,减少开发驱动程序工作量,从而解决了开发打印机驱动程序的两个主要问题。
由于驱动程序的图形用户接口和对文档进行格式转换部分的功能相对独立,可以把它们分成两个独立的应用程序,彼此用管道连接进行数据交换,同时,为了在两者间建立管道,并对用户提供打印命令,另有一个总控脚本(系统流程如图2)。
用户 总控脚本 GUI filter lpd spooler
数据流 控制流 驱动程序功能模块
图2 驱动程序流程图
其中,GUI是驱动程序与用户的图形交互接口,filter负责对打印文档进行格式转换,正规系统运行在用户空间,相当于原来Linux打印系统
您可能关注的文档
最近下载
- 2025光伏行业产能过剩内卷竞争现状及未来展望分析报告.pdf
- 中建设计常规做法及指标汇编(2022年,934页).pdf VIP
- 2025年国庆节假期安全教育PPT课件.pptx VIP
- 医疗器械唯一标识管理制度(UDI).docx VIP
- 《成人腰大池引流护理》(TCRHA 069-2024).pdf VIP
- 营销策划 -MINI品牌中国小红书内容种草策略分享-运营思路V2-小红书汽车.pdf
- 中小学生世界粮食日节约粮食主题班会PPT课件.pptx VIP
- 幼儿园保育技能基本功大赛试题.docx VIP
- 土木工程材料1.2 材料与水有关的性质XQ.ppt VIP
- 剑桥KET2025最新考试真题(标准真题版TEST3-阅读和写作部分-含答案及详细解析).pdf VIP
文档评论(0)