首 页 | 报价 | 活动 | 硬件 | 数码 | 整机 | 手机 | 新闻 | DIY | 导购 | 学院 | 专题 | 市场地图 | 商家名录 | 商情 | 论坛 | 下载 | 电视 | 算命 | 读心术 | 游戏
您现在的位置: 首页>学院>操作系统>Linux>正文
Linux操作系统下使用FrameBuffer直接写屏
文章来源:赛迪网 skid 文章作者: 发布时间:2007-07-23


因为Linux是工作在保护模式下,所以用户态进程是无法象Dos那样使用显卡BIOS里提供的中断调用来实现直接写屏,故Linux抽象出FrameBuffer这个设备来供用户态进程实现直接写屏。 在继续下面的之前,先说明几个背景知识:

  1. FrameBuffer主要是根据VESA标准的实现的,所以只能实现最简单的功能。
  2. 由于涉及内核的问题,FrameBuffer是不允许在系统起来后修改显示模式等一系列操作。(好象很多人都想要这样干,这是不被允许的,当然如果你自己与驱动的话,是可以实现的)
  3. 对FrameBuffer的操作,会直接影响到本机的所有控制台的输出,包括XWIN的图形界面。

  好,现在可以让我们开始实现直接写屏:

  1. 打开一个FrameBuffer设备
  2. 通过mmap调用把显卡的物理内存空间映射到用户空间
  3. 直接写内存。

  好象很简单哦~  fbtools.h

#ifndef _FBTOOLS_H_#define _FBTOOLS_H_#include /* a framebuffer device structure */typedef struct fbdev{int fb;unsigned long fb_mem_offset;unsigned long fb_mem;struct fb_fix_screeninfo fb_fix;struct fb_var_screeninfo fb_var;char dev[20];} FBDEV, *PFBDEV;/* open


上一篇:Linux攻略 关于Bash命令行处理概括介绍
下一篇:Linux操作系统环境下看流媒体的方法介绍

精彩推荐     

用户名: 新注册) 密码: 匿名评论
评论内容:不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。

关于我们 | 广告服务 | 建站服务 | 招贤纳士 | 会员服务 | 网站地图 | RSS订阅 | 联系我们

实名:中原硅谷网、电脑报价、电脑硬件报价 客服电话:0371-63659150

中原硅谷网 WWW.ZZIT.COM.CN&WWW.ZZ-IT.COM
2003-2007 版权所有