Chinaunix首页 | 论坛 | 博客
  • 博客访问: 58585
  • 博文数量: 8
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 82
  • 用 户 组: 普通用户
  • 注册时间: 2014-11-04 17:00
文章分类

全部博文(8)

文章存档

2016年(5)

2015年(3)

我的朋友

分类: LINUX

2016-02-20 09:50:14

如有错漏,恳请指正。
转载请注明出处http://blog.chinaunix.net/uid-30008524-id-5613285.html

硬盘存储结构


盘面:一个硬盘由多层磁盘面组成(一般255层),每层都像黑胶唱片一样,有个探头读写数据,叫磁头(Heads)。
磁道(Track):每层都由一圈圈的磁道围绕而成,就像田径跑道一样。
柱面(Cylinders):所有盘面上同一位置的磁道组成的立体柱面。
每条磁道都平均划分为一小块一小块,每个单位叫扇区(sector),大小为512字节。
用fdisk -l 可以查看硬盘物理信息

可以看到,该硬盘有255个磁头,即255层盘面,有3916个柱面,即每层有3916条磁道。有63个扇区,即每条磁道分63个扇区。每个扇区512字节。
则硬盘总大小=255层*3916道*63扇*512字节
磁头读写数据流程:先径向移动寻找磁道,寻到之后旋转盘面,找到扇区,然后读写。
所以总时间=寻道时间+旋转时间+读写时间
平常说的硬盘转速5400rpm,就是指寻找扇区时的转速为5400转/分钟。
磁盘分区的时候一般以柱面为界来分,如1-100柱面为一个分区,100-200柱面为一个分区。在同一个分区里面读写文件,只需访问一部分柱面就行了,这种分区方式可以减少磁头移动寻道的时间。
读写硬盘中的文件时,以连续的8个扇区为单位,称为块(block),大小4KB。读取一个3KB的文件,会把整个块的数据读到内存缓冲区,里面包含了剩余的1KB。写入的时候也会找到4KB的倍数地址才写入,跟C语言里面的结构体成员字节对齐的存放方式有点像。文件在磁盘存储的时候,先找到空闲块,然后写入,写完再继续寻找空闲的块,所以一个文件可能分散存储在各个角落。再次读取的时候时间大部分花在磁头移动上,平常说的磁盘碎片整理就是把一个文件放到连续的区域内,这样可以加快文件的读取。

inode
inode是一个记录文件信息的索引节点。每个inode默认128或者256字节,用stat命令可以查看一个文件名所指向的源文件的inode信息。硬盘格式化的时候,自动划分为两个区域,一个是inode区,存放inode节点,一个是数据区,存放文件数据。
在Linux中,系统是用inode号来识别文件的,根本不care文件名是什么,所以一个文件只有一个inode,但可以有多个文件名。inode和文件名之间通过硬链接来对应。
命令:
touch 文件名1
ln 文件名1 文件名2
ln -s 文件名2 文件名3
则形成下图的构造,文件名1,2通过硬链接映射到inode,文件名3通过软链接映射到文件名2。


rm 文件名1,其实是删除一个硬链接,inode还在,文件数据还在,用文件名2还可以访问到数据。inode里面有个成员记录了硬链接的数量,每增加一个硬链接,计数加一,删除一个硬链接,计数减一。若继续删除文件名2,则所有的硬链接都被删除了,系统回收这个inode,删除块里面的文件数据。inode是有限的,inode用完的时候就不能创建文件了。
软链接是两个文件名之间的联系,跟inode无关。所以rm 文件名3不会对文件数据有任何影响。但删除文件名2就无法通过文件名3来访问文件数据了,因为文件名3是通过文件名2来访问的,相当于文件名2的一个快捷方式。
按以下命令执行:
touch file
ln file file1
ln -s file file2
ls -il

可以看到,软链接file2是有自己的inode号,并且占用4字节,是个独立的文件。
而file1和file则共同指向一个inode号,并且不占字节。

POSIX标准规范了inode的内容:
1.以字节为单位的文件大小
2.设备ID,标识容纳该文件的设备
3.文件所有者的User ID
4.文件的Group ID
5.文件的模式(mode),确定了文件的类型,已经文件的访问权限
6.额外的系统与用户标志(flag),用来保护文件。
7.3个时间戳,记录了inode自身被修改(ctime,inode change time)、文件内容被修改(mtime,modification time)、最后一次访问(atime,access time)的时间。
8.1个链接数,记录有多少个硬链接指向该inode。
9.到文件系统存储位置的指针。通常是1K字节或者2K字节的存储容量为基本单位。


参考链接:


阅读(2238) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~