![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux
文章平均质量分 51
fengbangyue
做一个真实的自我
展开
-
linux3.0.4下编译helloworld内核驱动程序
看了Linux设备驱动程序第三版中说,要学习驱动编程,先要建立源码树。对照我的linux的ubuntu版本下了一个 2.6.35的,在编译helloworld程序时提示无效字符'I',查了下发现是由于版本不匹配。后来干脆下了一个最新版的内核3.0.4,直接升级我的ubuntu内核。一切还比较顺序,一个一个命令执行下来顺利完成升级。最后在编译helloworld程序的时候居然没有打印出想要的效果。在原创 2011-11-14 23:10:25 · 1035 阅读 · 1 评论 -
完成《深入Linux内核架构》第二章的阅读
昨天,硬着头皮把第二章看完了,该章主要是将内核如何实现进程的管理和调度,但回想起来讲的那些数据结构这些的已经忘记了。只记得里面提到使用红黑树维护进程的就绪队列,自己对红黑树去查了一下就是平衡二叉树的一种。这个数据结构应该要学学,应该会很有用。看第二章的时候,心中想随便看看,看完再回头仔细看一遍。但看完后,我还是认为先看第三章。因为这本书比较厚,要每章都理解完再读下一章,我怕不知道那年才看得完。加上原创 2011-12-06 20:13:54 · 949 阅读 · 0 评论 -
11月学习总结---确定以Linux为终身的发展方向
11月份非常不错,由于对Android系统的兴趣,也曾经买个两本Android方面开发的书。但简单浏览了一下,由于对Java语言本身不是熟悉,当然代码还是看得懂,主要还是对应用层没用兴趣。于是准备对Android驱动开发进行学习。但Android本身是基于Linux的,那我就学习Linux设备驱动编程吧。学习Linux设备驱动编程,就要和内核打交道了,在看第三版时,一口气看完不是很难,理解基本不成原创 2011-11-30 20:00:18 · 1403 阅读 · 1 评论 -
Linux 下HelloWorld程序的一些测试
Linux驱动编程,和在Windows下的编程基本上没什么出入。一个入口函数,一个清理函数,也好比C++中的类的构造和析构函数一样,确实没什么难理解。通过对驱动HelloWorld程序的学习,确实提高了我对Linux的积极性,因为发行没什么难度阿,基本上和C语言编程一样。你说是内核编程,不能够使用c库,可是我不管什么库,只要你有对应的东西给我实现相同的功能即可。这个内核提供的库,也太好了点,我测试原创 2011-11-22 21:48:29 · 1359 阅读 · 1 评论 -
Linux在帅工具VI命令收集
准备学习Linux内核编程,一直在linux下面打开文件都向在windows下一样操作,太不专业了。于是今天补一补vim工具命令使用,以后强制自己多使用vim,熟练掌握vim命令。下面的这些命令是从网上收集而来,而起我一个一个的在握的ubuntu上测试过,都能够顺序完成其功能。程序员写代码就应该用vi这样的工具,用鼠标太不专有了(我基本上都是一手键盘一手鼠标的,呵呵,以后改).1). 插入模式原创 2011-11-21 20:02:00 · 627 阅读 · 0 评论 -
Linux内核驱动学习之锁
谈到并发访问共享资源,就会谈到锁的问题,不论是什么系统,什么层次。 而今天主要是对Linux内核中锁的知识进行了学习,由于知识理论上的学习,知道有这么个东西,具体的深入需要在以后的编码过程中慢慢体会了。 记得在操作系统课程中学过锁,已讲解了生产者和消费者之间锁的关系,而Linux学习的第一个锁也就是这样的一个所,或者在印象中应该叫做信号量吧,特别之处就是该信号量的值我们总是让原创 2011-11-18 21:18:10 · 1979 阅读 · 0 评论 -
linux 驱动学习之scull驱动的安装
在昨天scull驱动已经成功编译通过,于是可以安装驱动了。由于对linux 设备驱动程序3中没有彻底的理解。认为使用insmod后就可以使用scull提供的 app.c文件进行访问了。结果是失败了。于是在看了在回到下载scull源码的地方看了下那位同志写的说名。说需要使用scull_load脚本安装驱动,使用scull_unload脚本卸载驱动。回到下载的源码目录也看到果然有这两个文件,而且在回到原创 2011-11-17 22:45:48 · 1290 阅读 · 0 评论 -
linux 内核驱动学习之scull代码编译
学到了Linux设备驱动程序第三版中文版到第三章中,对驱动scull进行了介绍。于是再网上找到了源码来,下载下来后进行编译,发现一些错误,主要是由于Linux版本升级所致。现在记录下来 ,以备查询。scull驱动所针对到版本我也不清楚,应该是2.6.*吧 ,而我到Linux内核版本是3.0.4到。1、main.c:17: fatal error: linux/config.h: No原创 2011-11-16 20:53:09 · 3745 阅读 · 0 评论 -
Linux驱动学习字符设备
在内核中,dev_t类型(在中定义)用来持有设备编号--主次部分都包括。对于2.6.0内核,dev_t是32位的量,12位用作主编号,20位用作次编号。为获得一个dev_t的主或次编号使用:MAJOR(dev_t dev);获取主编号MINOR(dev_t dev);获取次编号如果有主次编号,需要将其转换为一个dev_t,使用MKDEV(int major, int mi原创 2011-11-15 23:27:12 · 826 阅读 · 0 评论 -
红黑树的经典讲解
在看见Linux内核进程调度使用红黑树进行管理时,看到的一边对红黑树的博客,还没消化完,先收藏着了。原文,非常好的讲解:http://www.cppblog.com/goodwin/archive/2011/08/08/152797.html理解红黑树树型结构一直是一种很重要的数据结构, 我们知道二叉查找树BST提供了一种快速查找, 插入的数据结构. 相比散列表来说BS转载 2011-12-07 19:15:53 · 7038 阅读 · 0 评论