![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
User space
Tive_Liu
做flash cache的
展开
-
编译小记:
用我们自己定制的centos 编译ldd 中的 sbull,开始总是报错说没有 modpost, 上网查了一下,说是在内核目录下make scripts一把,生成这个脚本工具就可以了。可是我在运行这个命令的时候生成了为数不多的几个,没有这个工具。不知道怎么回事,后来问了李静,她说是没装好devel 和 head 两个rpm包,于是再次找到那些rpm包安装,安装之后再编译sbull,还是提示没有mo原创 2010-04-15 10:46:00 · 374 阅读 · 0 评论 -
修改sbull的一点体会
今天在修改sbull的 open函数时出现了一些问题,本来的想法是拿到设备文件系统的 inode 结点后,把其中的 i_data 中的 a_ops 里的prepare_write 替换成我们自己的。就是三两句代码的事,可是调了一个下午才通过了。开始是编译不过去,好不容易编译过了,insmod 和 mkfs 时都没有问题,最后在mount 时发生了几次 kernel panic. 下面把发生的原因和原创 2010-04-19 21:27:00 · 664 阅读 · 0 评论 -
内核修改初探
上午还在为修改内核的问题发愁,到现在已经不为这件事情发愁了,又更愁的事了。今天要做的事情很简单,在 fs/block_dev.c 里保存一个变量, 在 fs/ext3/inode.c 里去调用。我开始看到这两个文件都包含了一个头文件 mpage.h , 就想用最传统的方法,在头文件中加一句 extern ..., 然后随便在一个文件中定义这个变量就可以了。可是事实是,内核在编译了近一个小时的时原创 2010-04-20 21:46:00 · 532 阅读 · 0 评论 -
深入理解ext2/ext3文件系统真相
摘要:我们对于ext2/ext3文件系统的了解大多来自操作系统的课本或者《understanding linux kernel》这本书,但是最近做了一个项目,需要根据文件的inode结点号找到inode本身。因此需要对ext2/ext3文件系统做深入的理解。在做的过程中才发现,原来书上讲的理论和现实的差距太大了。可能是因为书比较早,或者书上只是讲了一个概念模型,以至从实际工程的角度来看,课本上有好多的东西简直可以说是错误的。本文就把在工程中发现的问题和ext2/ext3文件系统的真相展示出来。第一章:经典而原创 2010-07-22 18:08:00 · 2860 阅读 · 2 评论 -
安装perl模块和sort命令
<br />安装perl模块:<br /> perl -MCPAN -e shell<br />初次运行可能需要配置,全部默认即可。<br />进入命令行后:<br />cpan> h 帮助<br />cpan> m 列出所有模块<br />cpan> install DBI 安装模块<br /> <br /> <br />sort命令:<br />sort命令用法:<br />按第8列排序,即按第7个域排序<br />sort +7 -8 test<br />但这是以字符顺序排列的,也就是说 5要排在原创 2010-08-03 20:57:00 · 732 阅读 · 0 评论 -
从硬raid导出单盘并创建软raid
<br />从硬raid导出单盘:<br />第一步:登录<br />#hptraidconf<br />login: xxx<br />password:xxx<br />第二步:查看盘的情况 <br />query devices<br />只有状态为single的盘可以导出<br />第三步:导出单盘<br />create JBOD disks=1/1<br />create JBOD disks=1/2<br />create JBOD disks=1/3<br />可以导出多块盘,导出后fdis原创 2010-08-11 11:31:00 · 800 阅读 · 0 评论 -
getopt函数的使用
#include #include int main(int argc, char * argv[]){ int aflag=0, bflag=0, cflag=0; int ch; while ((ch = getopt(argc, argv, "ab:c")) != -1) { printf("optind: %d/n", optind); switch (ch) { case 'a': printf("HAVE o原创 2010-08-11 11:38:00 · 378 阅读 · 0 评论 -
在内核中读取磁盘相应位置的数据
<br /><br />涉及到一个问题,在内核态读磁盘固定的位置的数据应该怎么办。如果是在用户态,有C库函数可以做到,read, lseek 等都可以。但是在内核态呢?最直接的办法就是自己发bio去读,但这样有点麻烦,还有两种比较简单的方法。<br /> <br />一种是用buffer_head, 一种是用 dm_io_sync_vm。<br />第一种:buffer_head.<br />代码如下:<br /> 22static int __init bread_init(void)<br /> 23原创 2010-08-20 16:00:00 · 1402 阅读 · 0 评论