
公司培训
文章平均质量分 68
yangp01
这个作者很懒,什么都没留下…
展开
-
2010-3-5 代码阅读 编译 学习
代码阅读主要是使用source insight 和 vi+cscope+ctag。以前使用SI阅读过btreplay的源代码,有点熟悉,只要建立工程,然后导入文件,就可以很方便的阅读源代码了。而vi+cscope+ctag稍微麻烦一点,但是简单的操作也好上手。vi的使用一般vi自己的功能有限,需要装vim,如果是ubuntu系统的话,只需要apt-get vim貌似就可以了。原创 2010-03-05 21:58:00 · 684 阅读 · 0 评论 -
2010-3-15 sys_read()的流程
上次看sys_read()看得太乱了,主次不分,于是重新看了遍,对流程有了个大致的了解: read()系统调用所涉及的内核组件如上图所示,依次为vsf层、磁盘高速缓存、映射层、通用块设备层、I/O调度层、磁盘设备驱动。作用大致如下:vfs层决定如何执行read操作,将filp->f_op->read指向具体的函数;内核映射层确定数据的物理位置,主要执行两原创 2010-03-15 22:43:00 · 1117 阅读 · 0 评论 -
2010-3-14 mount 和 open的过程
看了看网上的博客和书上的介绍,我了解到sys_read()之类操作的都会用到file结构中的f_op,为了弄清楚f_op是如何来的,这两天我结合《深入理解linux内核》看了下sys_mount和sys_read的基本流程,看得不是很懂,只是想知道对f_op赋值的由来,大致如下(由于内核版本不用,所以与书上有差异) mount的大致流程为: sys_open的大致流程:原创 2010-03-14 22:03:00 · 630 阅读 · 0 评论 -
2010-3-10 sculla具有访问控制的字符设备 sbull块设备 代码阅读
sculla具有访问控制的字符设备 一、sucll_access_init()1、与以前的简单scull和scullp一样,一开始就是分配设备号; (这个函数中没有为scull_dev结构申请内存,是因为这些结构的空间已经静态分配了)2、在循环中调用scull_access_setup()原创 2010-03-10 18:00:00 · 953 阅读 · 0 评论 -
2010-3-8 scull代码阅读 编译 测试
上午,我主要在阅读ldd书中scull的代码编译scull目录下的代码,并insmod后会出现3个设备scull、scullp、sculla,其中scull是最简单的,scullp设备使用了环形缓冲区和阻塞读写的技术,sculla貌似是添加了访问控制的功能,我主要在看scull的代码,并把scull设备的代码独立出来了,之后对其进行编译、插入模块、读写等操作。scull的整体结原创 2010-03-08 21:14:00 · 1272 阅读 · 0 评论 -
2010-3-9 scull、scullp代码阅读(写文档)
scull简单驱动程序阅读 一、驱动程序加载module_init(scull_init_module);指定了使用insmod加载模块时,调用scull_init_module进行初始化,在该函数中做的事情就是分配设备号等工作,具体如下:1、如果指定了主设备号,则使用register_chrdev_region()函数尝试静态分配设原创 2010-03-09 21:38:00 · 1137 阅读 · 0 评论 -
2010-3-11 linux 读写过程(1)
我先从sys_read入手,然后进入了函数vsf_read,在rw_verify_area()和security_file_permission()处纠缠了很久(最后还是几乎无功而返),之后就遇到了file->f_op->read()和do_sync_read()。由于file->f_op->read()与具体的文件系统有关,于是我就先进入了do_sync_read(),在这里面原创 2010-03-11 22:54:00 · 1182 阅读 · 0 评论 -
2010-3-7 sbull代码阅读
昨晚,我把sbull的代码,大体上看了一下,因为ldd这一章已经看过,此外对Linux驱动程序的结构有一定了解,所以基本上看得懂,但是也遇到了一些疑惑,今天上午,我再次阅读了ldd中的相关内容,主要如下:1、弄清楚了以下几个概念:请求函数(请求处理函数):负责执行块设备的读写请求,blk_init_queue函数负责分配请求队列,并绑定自旋锁和请求函数原创 2010-03-07 13:42:00 · 1162 阅读 · 0 评论 -
2010-3-6 代码阅读(续)编译内核 学习
昨晚,赵猛学长给我演示了一下cscope的使用,我才知道在进入vi后还可以继续使用cscope,于是今天上午我就弄了下这个,在vi中输入:cs出现了以下的提示:cscope commands:add : Add a new database (Usage: add file|dir [pre-path] [flags])find : Query f原创 2010-03-06 16:48:00 · 868 阅读 · 2 评论 -
2010-3-4 linux常用命令学习(续) LVM学习
screen 命令主要用于建立一个新的终端,以便于退出shell后,程序能继续运行,建立新的终端只需要敲入screen就可以了,其他常用的命令选项为:-ls 列出所有已创建的screen 会话-d 离开现在的screen 会话-r sessionid 进入指定sessionid的screen 会话-m 在screen 会话中建立screen 会话时需要使用-x 进入上次离开原创 2010-03-04 21:03:00 · 604 阅读 · 0 评论 -
2010-3-20 sys_read sys_wite pdf
好几天没写博客了,因为这几天一直在看与sys_read()和sys_write()有关的内容,昨天终于弄得可以说服自己不看了,做了个pdf把它放到了我的资源里面,弄得蛮辛苦的,资源分设定为5分,谁感兴趣就下吧。原创 2010-03-20 21:39:00 · 636 阅读 · 0 评论