先来研究一下磁盘:
LBA
磁头=面数 所有磁头是共进退的。
每个扇区的大小假设为:512
磁盘的总容量:盘面*t*s*512
数组的下标范围:盘面*t*s
LBA:xxx 假设xxx为LBA地址
xxx/1000=h 及为h号盘面
xxx/100=c 及c号磁道
xxx%100=s 及s号扇区
OS为什么进行逻辑抽象
1.便于管理
2.防止OS的代码和硬件抢耦合!!!
虽然对应的磁盘访问的基本单位为512字节,但是任然很小。
OS内的文件系统会定制一种方案,同时进行多个扇区的读取。其大小通常为1KB,2KB,4KB
stat index.html
即使想要读取或修改1bit,也必须将4KBload到内存,进行读取或修改,然后在将其写入磁盘。
内存是被划分成为4KB大小的空间-----页框
磁盘中的文件尤其是可执行文件------按照4KB大小划分的块------页帧
ls -l读取存储在磁盘上的文件信息,然后显示出来
ls -li
显示文件的inode编号。
任何一个文件都在目录下,目录有属性和内容,故目录的数据块中放的是当前目录下文件名和iNode的印射关系。
在一个目录下创建文件,必须得有写入权限,向当前目录的内容中写文件名和iNode的印射关系。
读取时,必须通过文件名找到iNode,访问目录的数据块。
定位扇区
磁盘中定位任何一个扇区,采用的硬件基本的定位方式:CHS定位法。
柱面(磁道): 多盘磁盘,每盘都是双面,大小完全相等。那么同半径的磁道,整体上便构成了一个柱 面
每个盘面都有一个磁头,那么磁头和盘面的对应关系便是1对1的
所以,我们只需要知道,磁头(Heads)、柱面(Cylinder)(等价于磁道)、扇区(Sector)对应的编 号。即可在磁盘上定位所要访问的扇区。这种磁盘数据定位方式叫做 CHS 。不过实际系统软件使用 的并不是 CHS (但是硬件是),而是 LBA ,一种线性地址,可以想象成虚拟地址与物理地址。系统 将 LBA 地址最后会转化成为 CHS ,交给磁盘去进行数据读取。不过,我们现在不关心转化细节,知 道这个东西,让我们逻辑自洽起来即可。