Linux文件系统学习摘要--1

声明:

本文只作为参考,我也是初学者,请辩证的看待文章内容。

 

Linux系统最重要的几个单元:CPU 内存 文件。

由此看出来文件处在一个很重要的位置!文件当然需要管理了,可以粗暴的认为这就是文件系统的由来吧。

文件系统主要管理的是文件,文件储存在硬盘上,硬盘只是一个存储介质,通过硬盘的IO控制端口向硬盘下发指令以及对应的数据,那么硬盘本身的硬盘控制器会执行该操作,但是放到哪里,怎么放这些事情是由文件系统来决定的。文件系统的作用就是让用户可以快速准确的存储以及找到文件储存在磁盘上的的数据。

先说下文件系统的一个整体结构:

SCI(system call interface)

-----------------------------------------

VFS(虚拟文件系统接口)

------------------------------------------

各个文件系统(ext2 ext3  ext4等等)

------------------------------------------

General Block Device Layer(驱动统一层,不同驱动提供统一接口,类似adapter)

--------------------------------------------

驱动层

-------------------------------------------

硬件

 

 

linux系统主要就是存文件+目录两部分,当然会引申出很多其它需要存储的点以及对磁盘的管理。

文件系统对磁盘块划分为三个部分:

超级块+inode表+数据区。

超级块就是存储一些比较重要的信息,比如有多少个block,多少个inode空间,多少个已经使用等等

inode表就是专门用来保存inode的地方。

数据区就是存储数据。

 

其中文件主要有这么三个部分:文件名,inode,数据块(文件数据)

目录也是三个部分:目录名字,inode,数据块(目录包含的文件名和inode)

同时可以看到对于Linux,文件和目录是一样的,只是数据块里面存储的东西不一样。

文件名就是文件名字,这个没有什么说的

inode保存了文件的属性(metadata),以及数据保存在硬盘的哪些block

数据块就是指的磁盘物理块。

那么查找一个文件就是先在目录这个文件里面根据文件名字找到该文件的inode,然后根据该inode找到文件的真正数据内容,当然文件系统是有一个inodetable的,一般来说inodetable占了该分区上的文件系统所在的磁盘的1%。

 

接下来说几个概念:

软链接和硬链接

软链接是一个单独的文件,只是文件的数据块里面存放的是想链接的文件的完整位置,软链接有自己的读写权限以及inode号。

硬链接操作的是想要创建链接位置的目录,在目录里面增加一个条目,条目内容是硬链接名字和要链接文件的inode号。

硬链接有两个限制:

不能跨文件系统,跨了文件系统,如果源文件或者链接位置的文件系统类型不一致,就会遇到问题。

硬链接不能做目录的硬链接,原因为:容易引起死循环;做了目录链接,当cd ..时应该调到谁的父目录?管理混乱;做了目录链接,当在链接过的目标文件夹下面创建文件时,是不是应该在源文件夹下面也创建一个?很复杂。等等原因

具体可见:https://blog.csdn.net/weixin_36142178/article/details/78699646

 

mount到底是做什么用的?

mount是把当前设备挂到跟目录(/)下面的一个命令,也就是说一个设备只是孤立的一个设备,需要引入到根目录的管理下面,这样才可以在命令行一步步的根据文件查找的方法找到。

具体可以看:https://blog.csdn.net/qq_39521554/article/details/79501714

 

RAM ROM

RAM全称是Random Access Memory,就是随机存储器,指定一个地址就可以读取

ROM全称是Read Only Memory,只读存储器,比如硬盘。

RAM分为SRAM和DRAM,也就是静态RAM和动态RAM

静态RAM和动态RAM的区别是:前者不需要定时重新设置位。速率高,经常做为CPU缓存,后者用来做内存。

 

stat一个文件时有三个time,分别是:上一次的 访问时间atime,内容修改时间modifytime,inode修改时间changetime

访问时间不用多说

内容修改时间就是修改了数据区的数据,比如增加了文件,删除了文件,修改了文件。

inode修改时间,比如修改了文件权限等

mv操作只会修改文件的inode,修改了文件名,所以只有changetime变了,当然所在文件夹的inode的modifytime和changetime都变了。

具体可以参考:https://blog.csdn.net/cheryll/article/details/77863158

 

 

 

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值