摘要: 有人说数学是编程的灵魂。我不否认,但对于那些纠结于数学不好能不能学计算机的人们,我要说的是:数学之于编程如同灵魂之于人生,在这个不需要灵魂的环境,99%的人都没有灵魂,依然活着,而且活得很健康。 阅读全文
posted @ 2013-06-04 15:28 leonardo1019 阅读(393) 评论(0) 推荐(0) 编辑
摘要: Cairo是2D图形库(2D Graphic Library),支持多种输出,例如:X window(通过Xlib和XCB),Quartz,Win32,image buffers,PostScript,PDF,SVG file等。处于测试阶段的输出包括OpenGL,BeOS,OS/2,DirectFB。Cairo的设计目标:在所有的输出媒介上提供一致性的输出。并且能用硬件加速就用硬件加速。Cairo API提供的操作和PostScript,PDF等提供的绘图操作差不多。包括stroking,立方体填充,Bezier曲线,transforming,半透明图像合成和反锯齿。所有的绘图操作都可以进行 阅读全文
posted @ 2013-05-30 16:10 leonardo1019 阅读(576) 评论(0) 推荐(0) 编辑
摘要: 【Intel的linux图形驱动栈】所有程序包libva-1.1.1.tar.bz2libva-intel-driver-1.0.20.tar.bz2MesaLib-9.1.tar.bz2xorg-server-1.13.2.902.tar.bz2libdrm-2.4.42.tar.gz将ioctl系统调用封装成函数,供用户态使用。通常使用它的程序为xorg-server和Mesa3D。应用程序需包含的头文件为:include/xf86drm.h,include/xf86drmMode.h,xf86-video-intel-2.21.3.tar.gzcairo-1.12.14.tar.xzli 阅读全文
posted @ 2013-05-24 16:39 leonardo1019 阅读(591) 评论(0) 推荐(0) 编辑
摘要: 读程序的时候想看看整个工程都使用了哪些系统头文件,找不到现成的命令可以用,就赶快打开python写个,刚好是个练习的好机会。先在工程目录中把包含include的行都输入到一个文件“log”中:grep "#include" * -r --color > log以前只看过语法,还是第一次正真使用,所以几乎每一个函数都是从百度上现搜现用。with open("log", "rw") as file: store = [] for line in file: _, _, data = line.partition("#inc 阅读全文
posted @ 2013-05-24 12:43 leonardo1019 阅读(282) 评论(0) 推荐(0) 编辑
摘要: 1.在www.eclipse.org官网下载Eclipse Classic 4.2.2,Win7 64位下载eclipse-SDK-4.2.2-win32-x86_64.zip。2.解压到d盘根目录下,解压后直接点击里面的eclipse.exe就可以运行,不需要安装。3.启动 Eclipse,利用 Eclipse Update Manager 安装 PyDev。在 Eclipse 菜单栏中找到 Help栏,选择 Help > Install New Software。4.弹出Install界面,点击“Add”,弹出“Add Repository”界面。5.名称项输入PyDev,当然,也可 阅读全文
posted @ 2013-05-23 22:45 leonardo1019 阅读(403) 评论(0) 推荐(1) 编辑
摘要: http://sdnydubing.blog.163.com/blog/static/137470570201122810503396/这篇文章已经解释的很好了,为了避免有一天它消失不见,我把它复制到下面: 从虚拟地址到物理地址的转换过程可知:使用一级页表进行地址转换时,每次读/写数据需要访问两次内存,第一次访问一级页表获得物理地址,第二次才是真正的 读/写数据;使用两级页表时,每次读/写数据需要访问三次内存,访问两次页表(一级页表和二级页表)获得物理地址,第三次才是真正的读/写数据。 上述的地址转换过程打打降低了CPU的性能,有没有办法改进呢?程序执行过程中,所用到的指令、数据的地址往往集中 阅读全文
posted @ 2013-05-22 18:18 leonardo1019 阅读(732) 评论(0) 推荐(0) 编辑
摘要: Tiled Memory是和Linear Memory相对应的概念,用于图像图形编程中,是内存的一种组织形式。(to be continued) 阅读全文
posted @ 2013-05-22 18:09 leonardo1019 阅读(242) 评论(0) 推荐(0) 编辑
摘要: Memory Snooping一般对于软件来说都是透明的,它只是处理器内部使用的技术。处理器向内存写如数据时,先经过cache,这样在后续的同一地址的读操作时可以直接从cache中取数,不会有问题。但是并非只有处理器才能向内存写数据,外设也能,比如DMA。而且外设向内存中写入数据时,是不会经过处理器的cache的,这样会造成内存和cache中的数据不一致。处理器必须得知道内存被外设写了,这样当处理器想从那一地址读数据时,就会直接去内存中取数,而不至于傻傻的从cache里拿过时的错误数据。所以这个工作叫“监视内存”,就是看内存是否被外设写过,避免内存中的数据和cache中的不一致。参考:http 阅读全文
posted @ 2013-05-22 17:54 leonardo1019 阅读(312) 评论(0) 推荐(0) 编辑
摘要: 原文:linux-2.6.34.1\Documentation\driver-model\bus.txttranslated by:leonardo10192010年7月23日总线类型 定义~~~~struct bus_type { char * name; struct subsystem subsys; struct kset drivers; struct kset devices; struct bus_attribute * bus_attrs; struct device_attribute * dev_attrs; struct driver_attribute * drv_at 阅读全文
posted @ 2010-07-24 21:43 leonardo1019 阅读(307) 评论(0) 推荐(0) 编辑
摘要: 原文:linux-2.6.34.1\Documentation\driver-model\device.txttranslated by:leonardo10192010年7月23日基本的设备数据结构~~~~~~~~~~~struct device { struct list_head g_list; /*全局设备链表中的节点*/ struct list_head node; /*父设备的子设备链表节点*/ struct list_head bus_list; /*总线的设备链表的节点*/ struct list_head driver_list; /*驱动程序的设备链表的节点*/ struc 阅读全文
posted @ 2010-07-24 19:40 leonardo1019 阅读(636) 评论(0) 推荐(0) 编辑