了解磁盘结构
如何找到一个指定的扇区
找到指定的磁头(header)找到指定的磁道(Cylinder)找到指定的扇区(Sector)在操作系统中,为了实现内核对磁盘的管理,对磁盘进行一个逻辑抽象的管理。把磁盘抽象的看作为一个数组。
该数组叫做sector disk_arry[N]数组,文件=很多个secotr数组下标,操作系统可以通过扇区的下标转化为CHS地址,从而定位到指定的扇区
操作系统与磁盘进行交互时(为了拷贝更多的数据),一次性读取磁盘的基本单位:4Kb 8*扇区理解为八个连续的扇区,在系统层次上叫做数据块。文件=很多数据块构成,操作系统在访问文件时都需要有CHS地址,每一个数据块都有一个编号,该编号称为LBA(逻辑区块地址)通过LBA转化为CHS地址,照样可以找到文件。操作系统在访问磁盘时,会把磁盘看作为一个线性结构(数组)由此得到了一个LBA blocks[N]数组
为了更好的管理内存,把数据块进行了分区管理,再把每一个区进行分组管理,层层往下细分管理来管理内存。文件=文件属性+文件内容,在Linux系统中,属性和内容是分开存储的。
操纵系统层面如何查找文件:
通过文件名找到文件名所在的目录目录也是文件,层层递归,找到根目录再从根目录顺着往下查找文件,拿到文件的inode,通过inode映射的数据块拿到文件内容因此,在linux系统下查找文件,是先逆向查找再依次向下查找,对于经常访问的路径,linux会对其进行路径缓存,就不用像刚开始那样依次递归查找