经济学 管理学 法学 理学 工学 计算机 医学 文学 教育 艺术 哲学 马列理论 政治 社会 英语论文
写作指导 实习报告 述职报告 调查报告 求职信 求职简历 工作总结 入党申请书 思想汇报 入党转正申请书
普通高校 民办高校 独立学院 211工程高校 教育部直属高校 成人高校 民办成人高校 985工程高校 军校 各地招生办
 首页 >> 533学习网 >> 资源 >> 论文大全 >> 计算机 >> 正文 加载中...
基于Linux内核的键盘模拟实现
http://edu.533.com 资源频道

    

1  引言
当前,由于Linux资源完全公开,使得Linux的发展日益广泛快速。基于Linux的各种应用已逐渐深入日常生活的方方面面,尤其是在嵌入式领域,由于内核可裁减定制,因此可随意地根据用户需求进行整个系统的定制与重构。其中,我们可以通过对各种标准外部设备的驱动进行改造,从而实现用户对标准设备的特定需求,例如可以通过对键盘的模拟来实现操作的自动化,从而可以避免重复的键盘操作。

2  Linux内核支持的外部调用接口
由于Linux内核作为系统最深层次的核心,因此外部的开发人员并不能直接对内核进行操作。然而在一些应用程序的开发过程中,又不得不使用内核的某些功能,因此就提供了一些外部接口供开发人员直接与底层内核打交道。
2.1  中断
在Linux 下,硬件中断叫做IRQ(Interrupt Requests)。有两种IRQ,短类型和长类型。短IRQ需要很短的时间,在此期间机器的其他部分被锁定,而且没有其他中断被处理。一个长IRQ需要较长的时间,在此期间可能发生其他中断(但不是发自同一个设备)。如果可能的话,最好把一个中段声明为长类型。如果CPU接到一个中断,它就会停止一切工作(除非它正在处理一个更重要的中断,在这种情况下要等到更重要的中断处理结束后才会处理这个中断),把相关的参数存储到栈里,然后调用中断处理程序。这意味着在中断处理程序本身中有些事情是不允许的,因为这时系统处在一个未知状态。解决这个问题的方法是让中断处理程序做需要马上做的事,通常是从硬件读取信息或给硬件发送信息,然后把对新信息的处理调度到以后去做。
实现的方法是在接到相关的IRQ(在Intel平台上有16个IRQ)时调用中断处理程序。这个函数接到IRQ号码、函数名、标志、一个/proc/interrupts的名字和传给中断处理程序的一个参数。标志中可以包括 SA_SHIRQ来表明你希望和其他处理程序共享此IRQ(通常很多设备公用一个IRQ),或者一个SA_INTERRUPT表明这是一个紧急中断。这个函数仅在此IRQ没有其他处理程序或需要共享所有处理程序时才会成功运行。
2.2  系统调用
系统调用发生在用户进程,通过一些特殊的函数来请求内核提供服务。这时,用户进程被挂起,内核验证用户请求,尝试执行并把结果反馈给用户进程,接着用户进程重新启动。一般当前系统的系统调用作为一张表sys_call_table进行定义的,是由指向实现各种系统调用的内核函数的函数指针组成的表。具体参数参见Linux内核源代码arch/i386/kernel/entry.S文件中:
ENTRY(sys_call_table)
l long SYMBOL_NAME(sys_ni_syscall)
/* 0 - old "setup()" system call*/
l long SYMBOL_NAME(sys_exit)

l long SYMBOL_NAME(sys_ni_syscall)
/* streams2 */
l long SYMBOL_NAME(sys_vfork)
/* 190 */
2.3  钩子函数
钩子(HOOK)是Linux系统中非常重要的系统接口,用它可以截获并处理送给其他应用程序的消息,来完成普通应用程序难以实现的功能。钩子可以监视系统或进程中的各种事件消息,截获发往目标的消息并进行处理。这样就可以在系统中安装自定义的钩子,监视系统中特定事件的发生,完成特定的功能,比如截获键盘、鼠标的输入,屏幕取词,日志监视等等。可见,利用钩子可以实现许多特殊而有用的功能。

3  键盘工作机理
CPU对外部设备的管理是通过中断程序进行的,键盘也是一种外部设备,因此,CPU对键盘的管理也是通过中断进行的。当你击打键盘的时候,键盘控制器会向CPU提出中断申请,CPU响应此中断进行处理,这就完成了一次很简单与人之间通过键盘进行的交互。
首先,当输入一个键盘值的时候,键盘将会发送相应的scancodes给键盘驱动。一个独立的击键

首页 上页 1 2 3 下页 末页

加载中...
上一篇:
下一篇:
顶我一下
 
  • 最近更新
  • 最受欢迎资源榜
  •   加载中... 加载中...
     加载中...
    值得收藏!
    加载中...
    资源搜索:
     全国各省市普通高校名单
    北京 天津 河北 山西

    内蒙

    辽宁 吉林 黑龙江
    上海 江苏 浙江 安徽 福建 江西 山东 河南
    湖北 湖南 广东 广西 海南 重庆 四川 贵州
    云南 西藏 陕西 甘肃 青海 宁夏 新疆 港澳台
     全国民办普通高校名单
    北京 天津 河北 山西

    内蒙

    辽宁 吉林 黑龙江
    上海 江苏 浙江 安徽 福建 江西 山东 河南
    湖北 湖南 广东 广西 海南 重庆 四川 贵州
    云南 西藏 陕西 甘肃 青海 宁夏 新疆  
     更多导航
    有意见请联系:edu533##126.com(将##换为@)
      更多资源推荐
    论文
     
    实用文档
     
    五三三学习网
     
    好资源一起共享
      图片说话
    加载中...
      精彩推荐
    加载中...
    加载中...
    加载中...