上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 23 下一页

2013年9月29日

输入子系统架构分析

摘要: 内 核的输入子系统是对分散的,多种不同类别的输入设备(如键盘,鼠标,跟踪球,操纵杆,触摸屏,加速计和手写板)等字符设备进行统一处理的一层抽象,就是在 字符设备驱动上抽象出的一层。输入子系统包括两类驱动程序:事件驱动程序和设备驱动程序。事件驱动程序负责和应用程序的接口,而设备驱动程序负责和底层输 入设备的通信。鼠标事件生成文件mousedev属于事件驱动程序,而PS/2鼠标驱动程序是设备驱动程序。事件驱动程序是标准的,对所有的输入类都是可 用的,所以要实现的是设备驱动程序而不是事件驱动程序。设备驱动程序可以利用一个已经存在的,合适的事件驱动程序通过输入核心和用户应用程序接口。输入子系统带来了如下 阅读全文

posted @ 2013-09-29 18:06 屁屁侠 阅读(727) 评论(0) 推荐(0)

2013年9月27日

初学者学习编程语言的烦恼

摘要: http://blog.sina.com.cn/s/blog_94479040010158l9.html1、抄代码:抄代码,刚开始写,抄错属于很正常的现象2、模仿写:自己会写一些简单的代码,但还不太清楚怎样下手写一个完整的代码模块,所以要模仿着写3、模仿改:软件工作中debug占据了工程师大部分时间,这时由于没有经验和思路,所以建议模仿着改4、勤调试:自己试着写一些代码,通过不断调试来验证自己的一些想法,继续思考,再次验证,来回折腾5、看 n遍:出错或遇到问题时,将代码从头看到尾,看了一遍又一遍,直到快全部记住时,总能找出问题原因,相信方法总会比问题多6、找感觉:主动找到写代码的感觉和成就感, 阅读全文

posted @ 2013-09-27 19:54 屁屁侠 阅读(168) 评论(0) 推荐(0)

关于程序员成长的一点思考

摘要: 关于程序员成长的一点思考新闻来源:51CTO 程序员的我们,是否想过今后的路该怎么走、如何发展、技术怎样提高?其实这也是我一直在思考的问题。下面就此问题,分享下我的看法。因为我阅历有限,有什么说的不对的,大家一起喷! 一、程序员应该打好基础 1. 现在开发工具众多、语言泛滥,经常听人说”不学CC++神马都是浮云”、”CC++才是万王之王”,CC++就真比PHP、Lua、AS、JAVA牛吗? 其实不在于语言本身,而在于CC++依附的平台。因为最靠近操作系统,所以能发挥其它语言不具有的性能优势,而且很多数据结构、算法、特殊功能 类,CC++是不提供的,需要自己实现。这时就需要自己去温习”数据结.. 阅读全文

posted @ 2013-09-27 19:45 屁屁侠 阅读(231) 评论(0) 推荐(0)

堆和栈的区别

摘要: 一、预备知识 程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 : 1、栈区(stack):由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。 其操作方式类似于数据结构中的栈。 2、堆区(heap):一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回 收 。 注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。 3、全局区(静态区)(static):全局变量和静态变量的存储是放在一块的。 初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另 一块区域。 程序结束后由系统释放。 4、文字常量区 :常量字... 阅读全文

posted @ 2013-09-27 18:21 屁屁侠 阅读(532) 评论(0) 推荐(0)

c语言中struct的内存对齐

摘要: 为了让CPU能够更舒服地访问到变量,struct中的各成员变量的存储地址有一套对齐的机制。这个机制概括起来有两点:第一,每个成员变量的首地址,必须是它的类型的对齐值的整数倍,如果不满足,它与前一个成员变量之间要填充(padding)一些无意义的字节来满足;第二,整个struct的大小,必须是该struct中所有成员的类型中对齐值最大者的整数倍,如果不满足,在最后一个成员后面填充。各种类型的变量的align值如下,参考的是wikipedia的页面:--------------------------------------------------------------------------- 阅读全文

posted @ 2013-09-27 14:12 屁屁侠 阅读(2492) 评论(0) 推荐(0)

内存对齐与ANSI C中struct型数据的内存布局

摘要: 当在C中定义了一个结构类型时,它的大小是否等于各字段(field)大小之和?编译器将如何在内存中放置这些字段?ANSI C对结构体的内存布局有什么要求?而我们的程序又能否依赖这种布局?这些问题或许对不少朋友来说还有点模糊,那么本文就试着探究它们背后的秘密。 首先,至少有一点可以肯定,那就是ANSI C保证结构体中各字段在内存中出现的位置是随它们的声明顺序依次递增的,并且第一个字段的首地址等于整个结构体实例的首地址。比如有这样一个结构体: struct vector{int x,y,z;} s; int *p,*q,*r; struct vector *ps; p = &s.x; q = 阅读全文

posted @ 2013-09-27 13:39 屁屁侠 阅读(266) 评论(0) 推荐(0)

2013年9月26日

glibc中malloc()的空间overhead

摘要: 在linux下调用malloc()分配内存的时候,实际占用的内存与请求的内存尺寸的关系是什么呢,这个需要研究一下glibc中malloc()的实现。现在常见linux发行版中带的glibc中采用的都是Doug Lea的实现,下面的分析取自他的2.8.4版本的malloc.c。glibc对内存的管理是以chunk为单位的,未分配的chunk之间用双向链表连接成一个环,遍历的时候用指针遍历,已分配的chunk在其首部有chunk的大小,并以此字节数做遍历。每个chunk的首部要放置一个叫做malloc_chunk的struct,故每个chunk的大小至少是这个struct的大小,如果分配的空间或者 阅读全文

posted @ 2013-09-26 18:47 屁屁侠 阅读(1134) 评论(0) 推荐(0)

shell学习笔记之命令(四)

摘要: 命令的类型:1>.外部命令:在命令提示符中执行的普通命令。2>.内置命令:内置命令是在shell内部实现的。1.break命令#!/bin/shrm -rf fred*echo > fred1echo > fred2mkdir fred3echo > fred4for file in fred*do if [ -d "$file" ]; then break; fidoneecho first directory starting fred was $filerm -rf fred*exit 02.冒号:1.空命令,用于被简化逻辑,相当于tru 阅读全文

posted @ 2013-09-26 11:47 屁屁侠 阅读(363) 评论(0) 推荐(0)

2013年9月24日

字符设备驱动笔记——定时器防抖动(十)

摘要: 1.定时器:1).超时时间2).处理函数#include #include #include #include #include #include #include #include #include #include #include #include static struct class *sixthdrv_class;static struct class_device *sixthdrv_class_dev;volatile unsigned long *gpfcon;volatile unsigned long *gpfdat;volatile unsigned ... 阅读全文

posted @ 2013-09-24 22:51 屁屁侠 阅读(386) 评论(0) 推荐(0)

shell学习笔记之控制结构(三)

摘要: 1.if语句if conditionthen statementsesle statementsfi例:#!/bin/shecho "Is it morning? Please answer yes or no"read timeofdayif [ $timeofday = "yes" ]; then echo "Good morning"else echo "Good afternoon"fiexit 02.elif语句#!/bin/shecho "Is it morning? Please answe 阅读全文

posted @ 2013-09-24 18:45 屁屁侠 阅读(490) 评论(0) 推荐(0)

上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 23 下一页

导航