linux内核编程
xiaominthere
这个作者很懒,什么都没留下…
展开
-
事件驱动
事件驱动这里不得不说《冒号课堂——编程范式与OOP思想》真是一本好书,之前已经看过一遍。这几天读Spring源码,发现Spring经常用到回调,对这个概念有些模糊了,于是把这本书翻出来看,算是温故知新。事件驱动式模型事件是程序中令人关注的信息状态上的变化。在基于事件驱动的系统中,事件包括内建事件与用户自定义事件,其中内建事件又分为底层事件和语义事件。此外,事件还有自然事件与合成事件转载 2014-04-14 09:36:07 · 693 阅读 · 0 评论 -
FreeBSD与Linux十个本质上的区别
作者:原作网址:转载 2014-10-31 13:04:15 · 815 阅读 · 0 评论 -
跟我一起写 Makefile(一)
作者:原作网址:转载 2014-08-25 16:00:00 · 583 阅读 · 0 评论 -
SDRAM工作原理
SDRAM(Synchronous Dynamic Random Access Memory,同步动态随机存储器)也就是通常所说的内存。在我们现在所用的PC机中,所指的内存,其实就是SDRAM,只不过是他的升级版,如DDR内存,DDR2内存,DDR3内存等等,大部分显卡上的显存也是SDRAM的。 内存是代码的执行空间,以PC机为例,程序是以文件的形式保存在硬盘里面的,程序在运行之前先转载 2014-06-16 22:33:40 · 3140 阅读 · 1 评论 -
MMU
一、MMU的产生 许多年以前,当人们还在使用DOS或是更古老的操作系统的时候,计算机的内存还非常小,一般都是以K为单位进行计算,相应的,当时的程序规模也不大,所以内存容量虽然小,但还是可以容纳当时的程序。但随着图形界面的兴起还用用户需求的不断增大,应用程序的规模也随之膨胀起来,终于一个难题出现在程序员的面前,那就是应用程序太大以至于内存容纳不下该程序,通常解决的办法是把程序分割成转载 2014-06-16 11:08:40 · 622 阅读 · 0 评论 -
S3C2440的存储器映射(4GB)
查S3C2440的数据手册可知S3C2440可寻址1G的地址范围,但是S3C2440的地址线只有27根,理论上只能寻址2的27次方等于128M的地址范围。通过细致的分析可知:S3C2440通过一个BANK来解决了这个问题。S3C2440有8个存储器BANK,引出了8根BANK线(对应nGCS0~ nGCS7),通过这个8根线来选通和关闭不同的存储器,这样S3C2440最多就可以转载 2014-06-16 23:19:39 · 1539 阅读 · 0 评论 -
理解bitops中的__set_bit及其应用
【代码基于Android JB】 【参考:http://blog.csdn.net/lbmygf/article/details/6569580 】位操作在kernel中很普遍,以下针对__set_bit函数为例来分析其原理:在kernel/include/asm-generic/bitops/non-atomic.h头文件下有如下/** * __s转载 2014-06-09 09:37:25 · 1058 阅读 · 0 评论 -
Linux如何查看与/dev/input目录下的event对应的设备
作者:Arrow原作网址:转载 2014-06-04 23:07:02 · 1088 阅读 · 0 评论 -
vim全局替换命令
作者:原作网址:语法为 :[addr]s/源字符串/目的字符串/[option]全局替换命令为::%s/源字符串/目的字符串/g[addr] 表示检索范围,省略时表示当前行。如:“1,20” :表示从第1行到20行;“%” :表示整个文件,同“1,$”;“. ,$” :从当前行到文件尾;s : 表示替换操作[option] : 表示操作类型如:g 表转载 2014-04-24 20:49:10 · 677 阅读 · 0 评论 -
void及void指针含义的深刻解析
作者:闫明原作网址:转载 2014-04-24 11:29:38 · 530 阅读 · 0 评论 -
linux的同步与互斥
临界区:(critical region)所谓临界区就是访问和操作共享数据的代码段。并发有伪并发(单处理器)和真并发(多处理器)之分,但是都会造成竞争条件。同步:(synchronization)避免并发(多个执行线程并发访问同一个资源)和防止竞争条件(两个执行线程处于同一临界区)被称为同步。用户空间之所以需要同步,是因为用户程序会被调度程序抢占和重新调度。造成转载 2014-04-18 20:53:46 · 629 阅读 · 0 评论 -
Makefile 中:= ?= += =的区别
作者:原作网址:转载 2014-04-17 19:50:08 · 518 阅读 · 0 评论 -
obj-m ,obj-y,obj-n
obj-m:比啊obj-yobj-n原创 2014-04-17 19:44:45 · 2497 阅读 · 0 评论 -
ifeq,ifneq,else,endif”
条件语句中使用到了三个关键字:“ifeq”、“else”和“endif”。其中:1. “ifeq”表示条件语句的开始,并指定了一个比较条件(相等)。之后是用圆括号括包围的、使用逗号“,”分割的两个参数,和关键字“ifeq”用空格分开。参数中的变量引用在进行变量值比较时被展开。“ifeq”之后就是当条件满足make需要执行的,条件不满足时忽略。2. “else”之转载 2014-04-17 19:40:28 · 4336 阅读 · 0 评论 -
printk打印级别
作者:原作网址:转载 2014-04-15 22:42:58 · 836 阅读 · 0 评论 -
代码段,数据段和bss段
一个编译完的程序的结构一般分为3段:text段,data段,bss段 一个程序一般分为3段:text段,data段,bss段 text段:就是放程序代码的,编译时确定,只读, data段:存放在编译阶段(而非运行时)就能确定的数据,可读可写 就是通常所说的静态存储区,赋了初值的全局变量和静态变量存放在这个区域,常量也存放在这个区域 bss段:定义而没有赋初值的全局变量和静态变量原创 2014-04-14 18:54:42 · 897 阅读 · 0 评论 -
KDE/QT与GNOME/GTK比较
转载:http://www.cnblogs.com/itech/archive/2009/08/18/1548964.html虽然在商业方面存在竞争,GNOME与KDE两大阵营的开发者关系并没有变得更糟,相反他们都意识到支持对方的重要性—如果KDE和GNOME无法实现应用程序的共享,那不仅是巨大的资源浪费,而且将导致Linux出现根本上的分裂。从2003年开始经过两年多的努力,KDE和GNOM转载 2014-12-09 16:42:34 · 828 阅读 · 0 评论