- 博客(22)
- 资源 (2)
- 收藏
- 关注
转载 关于模块的分工
最近工作有点感触, 关于如何分工的。我觉得所谓设计和实现是无论如何都很难分拆出去的。就是说你不实现你设想的结构,永远都很难知道哪里有问题;即使没有问题,换一个人来实现你想的东西,也无法把设计意图全部传达过去。如果可以做到,那么耗费的时间和精力足够你自己来实现了。这也是为什么我之前说,软件项目需要很多人一起完成可能是一个骗局 。但毕竟,一个人精力有限,项目时间也有限。分工是无奈之举。可这件事
2012-01-11 18:51:37
1015
原创 一个好用的grep插件
发现了一个新的grep的插件,EasyGrep,默认使用vimgrep,可以在windows下完美使用。可以方便的替换多个文件里的同一个词,方便的查找调用。具体介绍,可以看下面vim官网链接:http://www.vim.org/scripts/script.php?script_id=2438
2012-01-09 23:58:24
1050
原创 硬中断 和软中断以及时钟中断
<br />软中断是中断处理的下半部。从其需求上就是不需要像硬中断的响应那么快。<br />查了些书,并未有详细描述硬中断是在何时执行,我觉得应该是在每个时钟信号结束之后吧。<br />而软中断只有在几个特定的时刻被激活:<br />1 do_IRQ()完成了中断处理的时候。<br />2 时钟中断到来后会执行软中断。<br />这也就是为什么软中断没有硬中断的实时性强的缘故把。<br /> <br />而内核的动态定时器就是由软中断来处理的,本地时钟中断中不会处理内核的定时器操作。而多核下,cpu本地的a
2010-06-20 19:38:00
3120
原创 内核线程的使用
首先介绍几个创建线程相关的函数: struct task_struct *kthread_create(int (*threadfn)(void *data), void *data, const char namefmt[],
2010-05-27 11:09:00
949
原创 linux内核编译中的i2o选项
The Intelligent Input/Output (I2O) architecture allows hardware drivers to be split into two parts: an operating system specific module called the OSM and an hardware specific module called the HDM. T
2010-05-24 21:43:00
779
转载 raid10 raid01 raid5详解
RAID基础,RAID10与RAID01比较,RAID10与RAID5比较文档中,RAID10与RAID5抄袭了piner的文章,敬请谅解。文档内容3部分:1、基本的RAID级别介绍2、RAID10和RAID01的比较3、RAID10和RAID5的比较RAID10和RAID01的比较 RAID10是先做镜象,然后再做条带。 RAID01则是先做条带,然后再做镜象。比如以6个盘为例,RA
2010-05-19 10:22:00
1791
原创 gtags在vim中的应用
尽管ctags对于c语言的编写已经帮助很大,但在分析大型程序时,使用gtags则能够更准确的定位函数。gtags的功能就不多说了,请参看:http://www.gnu.org/software/global/我用的是windows下的gvim,下面具体讲一下如何在vim中运用gtags。首先在vimrc中添加一个映射来生成gtags的文件:map :exec "!gtags
2009-12-19 14:34:00
8007
原创 lun与volume的关系(摘自wiki)
To provide a practical example, a typical disk array has multiple physical SCSI ports, each with one SCSI target address assigned. Then the disk array is formatted as a RAID and then this RAID is
2009-09-22 10:32:00
3686
转载 qnx简介
黄 峰 单家方 匡光力(中国科学院等离子体物理研究所10室 230031)摘要: 本文介绍QNX6.20系统下设备资源管理器的运行机理和体系系统。结合PXI总线设备的体系结构,我们采用三级分离的方式开发PXI多功能采集卡的驱动程序。文章具体
2009-09-13 09:00:00
5114
原创 装了win7的体验
前几天给自己的x61装了win7现在主要有几个感受:1 散热量比windows大了(都是在性能最优的情况下)2 内存还是会耗多了,啥都不干500M。现在2g的内存只能说勉强应付工作(vmware+doc+vim+firefox+pdf)3 杀毒软件从mcafee换成了nod32,因为mcafee无法正确安装4 小红帽不好用了,装不上联想提供的ultranav for win7
2009-08-22 21:08:00
703
原创 vim配置文件
set nocompatiblesource $VIMRUNTIME/vimrc_example.vimsource $VIMRUNTIME/mswin.vimbehave mswinset diffexpr=MyDiff()function MyDiff() let opt = -a --binary if &diffopt =~ icase | let opt = opt .
2009-08-11 09:35:00
678
原创 c.vim
| 首页 | vim插件使用(二) -- OmniCppComplete >>2009-02-28vim插件使用(一) -- c.vim - [linux]版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://vitaminj.blogbus.com/logs/35851648.html
2009-07-31 09:41:00
1837
原创 windows下gvim+ctags+cscope+taglist
下载-----------------------------------下载cscope15.6-win32.zip安装 -----------------------------------安装很简单,只要将cscope的可执行文件放到PATH环境变量包含的目录中即可。(1) 推荐Windows用户将上面下载到的cscope.exe与gvim.exe放在同一个目
2009-07-30 11:08:00
11830
原创 cscope配置
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" CSCOPE settings for vim """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
2009-07-30 11:02:00
1108
转载 kzalloc函数
这个函数就是原来的两个函数的整合,即原来我们每次申请内存的时候都会这么做,先是用kmalloc()申请空间,然后用memset()来初始化,而现在省事了,一步到位,直接调用kzalloc(),效果等同于原来那两个函数,所有申请的元素都被初始化为0.其实对写驱动的来说
2009-07-29 17:10:00
2916
原创 buffer_head
buffer_head是disc cache中每个片段的头部。通过buffer_head可以找到disc中对应的数据的位置。要写盘时,通过buffer_head为bio结构体赋值,以保证io操作能正确执行。
2009-07-28 15:57:00
817
转载 EXPORT_SYMBOL标签
一个模块mod1中定义一个函数func1;在另外一个模块mod2中定义一个函数func2,func2调用func1。在模块mod1中,EXPORT_SYMBOL(func1);在模块mod2中,extern int func1();就可以在mod2中调用func1了。参考:http://topic.youkuaiyun.com/u/20070910/09/ee2cff13-9179-4
2009-07-27 10:41:00
1334
转载 块设备读写流程
块设备与字符设备的区别1、 从字面上理解,块设备和字符设备最大的区别在于读写数据的基本单元不同。块设备读写数据的基本单元为块,例如磁盘通常为一个sector,而字符设备的基本单元为字节。所以Linux中块设备驱动往往为磁盘设备的驱动,但是由于磁盘设备的IO性能与CPU相比很差,因此,块设备的数据流往往会引入文件系统的Cache
2009-07-24 15:58:00
2347
原创 并发与竞态
并发与竞态的产生有两个原因:多线程和临界资源。而linux通过信号量和自旋锁来避免出现竞态。 信号量与自旋锁的原理都来自于PV操作,而其(自旋锁与互斥体)主要区别在于:在拥有信号量时,线程可以进入休眠,而在拥有自旋锁时则不能进入休眠。自旋锁会不停的轮询以获得锁。 将信号量的初始值设为1,则称为互斥体(mutex--mutual exclusion)。 信号量与
2009-07-23 11:13:00
701
原创 Vmalloc与kmalloc的区别
Vmalloc与kmalloc的区别:1)kmalloc分配的物理地址与虚拟地址只有一个PAGE—OFFSET偏移,不需要为地址段修改页表。Vmalloc类函数地址完全虚拟,每次分配都需要对页表进行设置,当然效率低。2)vmalloc使用的正确场合是分配一大块,连续的,只在软件中存在的,用于缓冲的内存区域。不能在微处理器之外使用。3)vmalloc 中调用了
2009-07-22 17:28:00
1692
原创 ioctl参数命令设置
#define SCULL_IOC_MAGIC k #define SCULL_IOCRESET _IO(SCULL_IOC_MAGIC, 0) #define SCULL_IOCSQUANTUM _IOW(SCULL_IOC_MAGIC, 1, int) #define SCULL_IOCSQSET _IOW(SCULL_IOC_MAGIC, 2, int) #define
2009-07-22 16:59:00
1301
转载 GCC设定include和库路径
一、头文件 gcc 在编译时寻找所需要的头文件 : ※搜寻会从-I开始 ※然后找gcc的环境变量 C_INCLUDE_PATH,CPLUS_INCLUDE_PATH,OBJC_INCLUDE_PATH(这些变量在windows下对应的是include环境变量) ※再找内定目录/usr/include
2009-07-21 10:12:00
16173
linux设备驱动程序(第三版)
2009-07-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人