文件系统三ext3

EXT3

EXT2的文件读取
    1.先确定用户对于欲新增档案的目录是否具有W与X权限
    2.根据inode bitmap找到没有使用的inode号码,并将新的档案权限/属性写入;
    3.根据block bitmap找到没有使用中block号码,并将新实际的数据写入block中,且跟新inode的block的指向数据;
    4.将刚写入的inode与block数据同步跟新inode bitmap与block bitmap,并更新superblock的内容。
    
一般来说inode table与data block称为数据存放区域,至于其他例如superblock,block bitmap,inode bitmap
等区段称为metedata(元数据)。

数据不一致(Inconsistent)
     当文件写入文件系统时,应为不知道原因系统的中断(突然断电,系统核心发生错误),所以写入的数据仅有inode table
     以及data block而已,最后一步跟新元数据时步骤没有完成,此时就会发生metedata的内容与实际数据存放区产生不一致的情况
     (Inconsistent)的情况。
早起的EXT2文件系统,如果发生这个问题,那么系统重新启动的时候,就会从surperblock当中记录的vaild bit(是否挂载)与filesystem state(clan 与否)
状态来判断是否强制进行数据的一致性检查,若需要检查则以e2fsck这支程序来进行。不过这样的检查很费时间。

日志式文件系统(EXT3)(Junrnaling filesystem)
为避免EXT2文件系统图不一致的情况发生,EXT3最大的升级就是站在filesystem当中规划处一块区块,该区块专门记录或写入档案时的步骤,
就可以就可以简化一致性检查的步骤:
    1.预备:当文件系统写入一个文件时,会先在日志区块记录某个文件要写入的信息;
    2.实际写入:开始写入数据文件的权限于数据,开始更新元数据区;

    3.结束:完成数据与metedata的跟新后,在日志文件当中完成该文件的记录。


    
Linux文件系统的运作:
    所有的数据都得要加载到内存后CPU才能对该数据进行处理,但磁盘的读写速度要比内容慢的多,因此你会经常耗在等待硬盘读入上,降低效率。
    为了解决这个效率的问题,因此我们的Linux使用的方式是透过一个称为异步处理(asynchronously)的方式,异步处理是这样的:
    当内存加载一个文件到内存后,如果文件没有更改过,则在内存的区段的文件会被设置为(clean)的,但如果内存中的档案数据被更改过,此时数据会被
    设置为(Dirty),此时所有的动作都还在内存中执行,并没有写入到磁盘,系统会不定期将内存中的数据写回磁盘,以保持磁盘于内存
    数据的一致性。可以使用sync命令强制写入磁盘。
    
挂载点的意义(mount point):
    每个filesystem都有独立的inode /block /superblock等信息,这个文件系统要能够链接到目录树才能被我们使用,
    将文件系统与目录树结合的动作我们称之为挂载,重点是:挂载点一定是目录,该目录为进入该文件系统的入口,因此
    并不是你有任何文件系统都能使用,必须要挂载到目录树的某一个目录后,才能使用该文件系统。
    
其他Linux支持的文件系统与VFS
虽然Linux的标准文件系统时EXT2,且增加了日志功能ext3,事实上,Linux还支持很多文件系统的格式,尤其是最近推出的快速日志式文件系统,包括SGI的XFX,可以用于
小型文件的resierfs文件系统,已经Windows的FAT文件系统等等,都能被Linux所支持,常见的支持文件爱你系统有:

        .传统的文件系统:ext2 /minix/MS-DOS/FAT/iso9660
        .日志式文件系统: ext3 /ReiserFS/Window'NTFS/IBM'sJFS/SCI'XFS

        .网络文件系统:NFS/SMBFS


查看Linux支持的文件系统有哪些:
ls -l /lib/modules/$(uname -r)/kernel/fs
系统目前加载到内存中支持的文件系统有:
cat /proc/filesystems

Linux VFS(virtual filesystem switch)

linux认识文件系统其实都是在VFS进行管理的,我们使用者并不知道每一个partition上头的filesystem是什么,VFS会主动帮我们做好读取操作,

我只需对VFS做操作,内核会对其他文件系统和VFS进行操作,示意图如下:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值