操作系统课程设计 显示驱动.doc

  1. 1、本文档共46页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统课程设计 显示驱动

前 言 一个完整可用的操作系统主要由4 部分组成:硬件、操作系统内核、操作系统服务和用户应用程序。用户应用程序是指那些字处理程序、Internet 浏览器程序或用户自行编制的各种应用程序;操作系统服务程序是指那些向用户所提供的服务被看作是操作系统的部分功能的程序。在Linux 操作系统上,这些程序包括X 窗口系统、shell 命令解释系统以及那些内核编程接口等系统程序;操作系统内核程序即是本书所感兴趣的部分,它主要用于对硬件资源的抽象和访问调度。 Linux 内核的主要用途就是为了与计算机硬件进行交互,实现对硬件部件的编程控制和接口操作,调度对硬件资源的访问,并为计算机上的用户程序提供一个高级的执行环境和对硬件的虚拟接口。 我做的是显示驱动程序内核源代码分析。显示驱动程序用语控制显示设备,在显示设备和进程间传递数据,并对传递的数据进行一定的处理。进程向显示设备发送的数据,在显示程序处理后,被显示在终端屏幕上。本文件是内核中最长的程序之一,但功能比较单一。所有子程序都是为了实现终端屏幕写函数con_write()以及进行终端屏幕显示的控制操作。当往一个控制台设备执行写操作时,就会调用con_write()函数。这个函数管理所有的控制字符和换码字符序列,这些字符给应用程序提供全部的屏幕管理操作。 我将着重分析的也是这两个函数。 目 录 一、Linux内核源代码概述…………………………….3 1、题目………………………………………………………3 2、显示程序基本原理………………………………………3 3、终端驱动程序接口……………………………………..5 二、显示驱动程序 6 1、功能描述6 2、内容概述6 2.1、模块功能描述6 2.2、模块关系图28 三、源代码分析29 四、其他信息39 1、显示控制卡编程39 2、滚屏操作原理40 3、ANSI 转义控制序列41 五、心得体会42 六、自我评价43 七、参考文献45 一、Linux内核源代码概述 1、题目:显示驱动程序源代码分析 2、显示程序基本原理: 显示驱动程序用语控制显示设备,在显示设备和进程间传递数据,并对传递的数据进行一定的处理。进程向显示设备发送的数据,在显示程序处理后,被显示在终端屏幕上。过程可以同过下图来了解: 图1 终端驱动程序控制流程 即当进程向一个控制台设备执行写操作时,就会调用显示驱动模块中的con_write函数。并从终端tty_struct结构的写缓冲队列write_q中取出字符或字符序列,然后根据显示终端的工作模式,进行相应的操作:若为规范模式,经过终端的数据将被进行变换处理,然后再送出。例如把TAB字符扩展为8个空格字符,用键入的删除字符(backspace)控制删除前面键入的字符等。使用的处理函数一般称为行规则(line discipline)模块;若为非规范模式或称为原始(raw)模式,行规则程序仅在终端和进程之间传送数据,而不对数据进行规范模式的变换处理。 显示设备的基本数据结构 每个终端设备都对应有一个tty_struct数据结构,主要用来保存终端设备当前参数设置、所属的前台进程组ID和字符IO缓冲队列等信息。该结构定义在include/linux/tty.h文件中,其结构如下所示: Struct tty_struct{ Struct termios termios; //终端IO属性和控制字符数据结构 Int pgrp; //所属进程组 Int stopped; //停止标志 Void (*write)(struct tty_struct *tty); //tty写函数指针 Struct tty_queue read_q; //tty读队列 Struct tty_queue write_q; //tty写队列 Struct tty_queue secondary; //tty辅助队列(存放规范模式字符序列) }; //可称为规范(熟)模式队列 Extern struct tty_struct tty_table[]; //tty结构数组 Termios结构用于存放对应终端设备的IO属性。其中:pgrp是进程组标志,它指明一个会话中处于前台的进程组,即当前拥有该终端设备的进程组。 Pgrp主要是用于进程的作业控制操作。Stopped是一个标志,表示对应终端设备是否已经停止使用。函数指针*write()是该设备终端的输出处理函数,对与控制台终端,它负责驱动显示硬件,在屏幕上显示字符等信息。 终端所处理的数据被保存在3个tty_queue结构的字符缓冲队列中(或称为字符表),见下面所示: struc

您可能关注的文档

文档评论(0)

zhuwenmeijiale + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:7065136142000003

1亿VIP精品文档

相关文档