Linux.ChinaUnix.net
ChinaUnix | Linux首页 | 新闻 | 博客 | 文章 | 专栏 | 新手 | 方案 | 图书 | 下载 | 人才 | 手册 | wiki | 搜索     
Linux论坛
  会员: 密码: 免费注册 | 忘记密码 | 会员登录 | 搜索



文件系统具体如何工作????

首页 » CU论坛 » Linux » 汇总贴列表 » 内核源码 »  
[打印] [订阅] [收藏] [本帖文本页] [推荐此主题给朋友,立即获积分]
g_hk
精灵王




CU编号: 374803
注册:2006-2-20
最后登录: 2009-02-23
帖子:299
精华:0

可用积分:384 (白手起家)
信誉积分:100
专家积分:0 (本版:0)
空间积分:0
推广积分:0

状态:...离线...

[个人空间] [短信] [博客]


1楼 发表于 2007-5-8 12:03 
很想了解2.6kernel中一个文件系统模块是如何被调用的.

我有一个想法不知道可不可性????

如: fat32文件系统在2.6中有vfat模块.

可不可以, 自己编译一个模块如:vfat.ko
采用insmod / mount / umount / rmmod 的方法来可以自己控制的使用vfat.ko

关键是我要在vfat源码中添加注释来查看vfat是如何调用...

请高手多指教, 可以实现吗?, 怎么实现....

多谢,多谢!!!
很想知道!!!



您对本贴的看法:鲜花[0] 臭蛋[0]
g_hk
精灵王




CU编号: 374803
注册:2006-2-20
最后登录: 2009-02-23
帖子:299
精华:0

可用积分:384 (白手起家)
信誉积分:100
专家积分:0 (本版:0)
空间积分:0
推广积分:0

状态:...离线...

[个人空间] [短信] [博客]


2楼 发表于 2007-5-8 12:05 
回复 #1 g_hk 的帖子

如:
  df -l
  
  会调用struct super_operations tmp_super_ops中的.statfs函数



您对本贴的看法:鲜花[0] 臭蛋[0]
g_hk
精灵王




CU编号: 374803
注册:2006-2-20
最后登录: 2009-02-23
帖子:299
精华:0

可用积分:384 (白手起家)
信誉积分:100
专家积分:0 (本版:0)
空间积分:0
推广积分:0

状态:...离线...

[个人空间] [短信] [博客]


3楼 发表于 2007-5-8 12:07 
回复 #1 g_hk 的帖子

我自己把vfat fat模块用rmmod删除了, 在手动mount -t vfat /dev/hda1 /mnt是还是可以成功!!

真是不知道如何是好!!

在线等.....



您对本贴的看法:鲜花[0] 臭蛋[0]
g_hk
精灵王




CU编号: 374803
注册:2006-2-20
最后登录: 2009-02-23
帖子:299
精华:0

可用积分:384 (白手起家)
信誉积分:100
专家积分:0 (本版:0)
空间积分:0
推广积分:0

状态:...离线...

[个人空间] [短信] [博客]


4楼 发表于 2007-5-8 14:05 
回复 #1 g_hk 的帖子

OK了,

将2.6 源码中的fs/fat, fs/vfat那出来, 放在自己的编译环境中分别编译成fat.ko vfat.ko最好将vfat中修改一下为
static struct file_system_type vfat_fs_type = {
        .owner          = THIS_MODULE,
        .name           = "myfs",
        .get_sb         = vfat_get_sb,
        .kill_sb        = kill_block_super,
        .fs_flags       = FS_REQUIRES_DEV,
};

在mount -t myfs /dev/hda1 /mnt
就可以了...



您对本贴的看法:鲜花[0] 臭蛋[0]
albcamus (百無一用書生)
法王
[知否興風狂嘯者,回眸時看 ...



CU编号: 140189
注册:2004-3-7
最后登录: 2009-07-03
帖子:12176
精华:22

可用积分:11608 (大富大贵)
信誉积分:110
专家积分:71 (本版:0)
空间积分:0
推广积分:0

来自:嫏嬛閣
状态:...保密...

[个人空间] [短信] [博客]


5楼 发表于 2007-5-8 15:45 
回复 #3 g_hk 的帖子

mount时如果发现-t指定name的文件系统不被支持, 会尝试加载叫name的模块, 然后继续。

你把vfat.ko从/lib/modules/`uname -r`/kernel下移走, 然后运行depmod -a, 再重启, 这样也会无法加载fat32分区。



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________



  •  平生自有千秋在,不向群兒問毀譽!
     
  •  爱国主义是群氓的道德安全套。
     
  •  有些爱国青年想必是为人做了太多blowjob,不然为何张口便吐生殖器?
     
  •  Feel free to ask questions by 站内短信, and I'll feel free to ignore you.


g_hk
精灵王




CU编号: 374803
注册:2006-2-20
最后登录: 2009-02-23
帖子:299
精华:0

可用积分:384 (白手起家)
信誉积分:100
专家积分:0 (本版:0)
空间积分:0
推广积分:0

状态:...离线...

[个人空间] [短信] [博客]


6楼 发表于 2007-5-8 21:28 
回复 #5 albcamus 的帖子

yea, 原来这些模块都在这啊! /lib/modules/2.6.9-34.EL/kernel/fs
怪不得rmmod删除了也不好使!

多谢,多谢!!!



您对本贴的看法:鲜花[0] 臭蛋[0]

首页 » CU论坛 » Linux » 汇总贴列表 » 内核源码 »

 


Copyright © 2001-2008 ChinaUnix.net All Rights Reserved     联系我们:

感谢所有关心和支持过ChinaUnix的朋友们    转载本站内容请注明原作者名及出处

京ICP证041476号


清除 Cookies - Linux时代 - Archiver - WAP - TOP

Processed in 0.051546 second(s), 5 queries , Gzip enabled