`

为什么 Linux 不需要碎片整理

阅读更多

翻译一篇小文章,练练英语翻译^_^
本文原文地址:http://geekblog.oneandoneis2.org/index.php/2006/08/17/why_doesn_t_linux_need_defragmenting
译者:jjmmma@gmail.com
使用 Linux 的人经常会问这个问题:为什么 Linux 文件系统(filesystem)不需要碎片整理(defragment)? 以下我尝试用一个简单的,非技术的解答来会回答为什么有些文件系统会比另一些文件系统产生更多的碎片(fragment)。为了避免囫囵吞枣的使用 艰涩的技术方法来解释,我使用 ASCII 图形解释,一个 ASCII 图片抵万言^_^ 以下是我将用来解释整个问题的图形:
a b c d e f g h i j k l m n o p q r s t u v w x y z

a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
c 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
d 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
e 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
f 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
g 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
h 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
i 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
j 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
k 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
l 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
m 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
n 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
o 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
p 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
q 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
r 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
s 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
t 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
u 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
v 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
w 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
x 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
y 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
z 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

此图表示了一个(极小)的硬盘,此时硬盘还是完全空的——我用全部的零来表示。顶部和左面的 a 到 z 格子用来表示每一字节(byte)的数据:左上角是 aa,右上角是 za,左下角是 az。你一定明白了吧,我想信……
我 们开始描述一类大多数用户熟悉的简单文件系统:一个需要经常的碎片整理的文件系统。这个文件系统就是 Windows 和 Linux 都在使用过的 FAT(File Allocation Table 文件分配表)文件系统,如果仅仅作为 USB 闪盘的文件系统,那么这是一个很重要的文件系统,但是不幸的是,它会产生很多的碎片。
如果在我们的文件系统添加一个文件,这时候,硬盘看起来是这样的:

a b c d e f g h i j k l m n o p q r s t u v w x y z

a T O C h e l l o . t x t a e l e 0 0 0 0 0 0 0 0 0 0
b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
c 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
d 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 T O C
e H e l l o , _ w o r l d 0 0 0 0 0 0 0 0 0 0 0 0 0 0
f 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

(为了表示简明,忽略 g-z 空行)

解 释一下我们看到了什么:硬盘的前四行分配给了目录表(Table of contents)即 TOC。TOC 中保存了文件系统中所有文件的位置。在以上例子中,TOC 中包含了一个文件,它的名字是“hello.txt”,并且说明了,这个文件能在 ae 和 le 之间找到。我们找到这个地址,就能看到文件的内容“Hello, world”。
至此,一切都很好,现在,我们添加另外一个文件:
a b c d e f g h i j k l m n o p q r s t u v w x y z

a T O C h e l l o . t x t a e l e b y e . t x t m e z
b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
c 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
d 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 T O C
e H e l l o , _ w o r l d G o o d b y e , _ w o r l d
f 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

如你所看到的,第二个文件紧接着添加在第一个文件之后,这里的想法是这样,尽量把你的文件存放在一起,那样访问读取它们会很快很容易:硬盘的磁头是硬盘上移动最慢的部分,磁头移动越少,读写文件的速度就越快。
但是在我们决定编辑我们创建的第一个文件的时候,问题就来了。比如说,为了使我们的“Hello”看起来更有激情,我们想在后面添加一个感叹号,这时候我们 就遇到了麻烦:因为“bye.txt”占据了地方,文件系统中没有足够的空间添加感叹号。这时候,我们只有两种选择,但没有一种是理想的:
1、删除原先的文件,编辑完后添加在第二个文件结尾。
2、将第一个文件分拆开,这个文件就存放在两个不同的地方。

图例说明:第一种方案:
a b c d e f g h i j k l m n o p q r s t u v w x y z

a T O C h e l l o . t x t a f n f b y e . t x t m e z
b e 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
c 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
d 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 T O C
e 0 0 0 0 0 0 0 0 0 0 0 0 G o o d b y e , _ w o r l d
f H e l l o , _ w o r l d ! ! 0 0 0 0 0 0 0 0 0 0 0 0

第二种方案:
a b c d e f g h i j k l m n o p q r s t u v w x y z

a T O C h e l l o . t x t a e l e a f b f b y e . t x
b t m e z e 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
c 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
d 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 T O C
e H e l l o , _ w o r l d G o o d b y e , _ w o r l d
f ! ! 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

这就是 FAT 文件系统需要经常碎片整理的原因。所有文件都是紧接着前一个文件存放,因此当一个文件增大的时候,它被分块放置,而当一个文件减小的时候,留下了一个空缺。很快,硬盘上就留下了很多的碎片和空缺,性能就降低了。
然 后再考虑 Linux。Linux 是另外一种哲学。如果你只有一个用户,访问文件都是按照它们创建的顺序一个一个访问,那么 Windows 的文件系统是很理想的。而 Linux 则总是面向多用户系统:它要能保证在同一个时间有一个以上的用户试图访问一个以上的文件。所以 Linux 使用了另外一种方式。当我们在 Linux 的文件系统上创建了“hello.txt”时,硬盘看起来是这样的:


a b c d e f g h i j k l m n o p q r s t u v w x y z

a T O C h e l l o . t x t h n s n 0 0 0 0 0 0 0 0 0 0
b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
c 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
d 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 T O C
e 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
f 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
g 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
h 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
i 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
j 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
k 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
l 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
m 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
n 0 0 0 0 0 0 0 H e l l o , _ w o r l d 0 0 0 0 0 0 0
o 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
p 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
q 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
r 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
s 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
t 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
u 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
v 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
w 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
x 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
y 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
z 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

然后添加了另一个文件:
a b c d e f g h i j k l m n o p q r s t u v w x y z

a T O C h e l l o . t x t h n s n b y e . t x t d u q
b u 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
c 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
d 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 T O C
e 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
f 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
g 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
h 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
i 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
j 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
k 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
l 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
m 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
n 0 0 0 0 0 0 0 H e l l o , _ w o r l d 0 0 0 0 0 0 0
o 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
p 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
q 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
r 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
s 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
t 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
u 0 0 0 G o o d b y e , _ w o r l d 0 0 0 0 0 0 0 0 0
v 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
w 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
x 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
y 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
z 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

这种方式的聪明之处在于,硬盘磁头放在磁盘中间位置,那么平均来看,大多数的文件均匀的分布在磁头附近:这就是均衡的工作。
另外,当我们在这个文件系统添加感叹号的时候,什么问题会发生?

a b c d e f g h i j k l m n o p q r s t u v w x y z

a T O C h e l l o . t x t h n u n b y e . t x t d u q
b u 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
c 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
d 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 T O C
e 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
f 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
g 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
h 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
i 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
j 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
k 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
l 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
m 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
n 0 0 0 0 0 0 0 H e l l o , _ w o r l d ! ! 0 0 0 0 0
o 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
p 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
q 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
r 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
s 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
t 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
u 0 0 0 G o o d b y e , _ w o r l d 0 0 0 0 0 0 0 0 0
v 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
w 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
x 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
y 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
z 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

答对了,什么问题都没有。

Windows 试图将文件放在最接近硬盘开始的地方,因此当文件变大的时候由于没有足够的扩展空间,需要时常的产生碎片文件。
而 Linux 把文件分散在整个硬盘上,所以当文件大小改变的时候会有足够的空间。又由于有足够的空间来移动,它也能够动态的改变文件位置。在 Windows 的文件系统上进行磁盘碎片整理是一件很费时间的事情,因此在正常运行时在后台整理是不现实的。
碎片整理只有在 Linux 文件系统满得不再有足够的空间分块存放大文件时。当磁盘不到 80% 满的情况下,碎片整理都是不需要的。
另外也需要注意一点,尽管操作系统根据磁盘上文件的几何分布认为一个硬盘是完全碎片整理过的,碎片可能仍然存在:一个典型的硬盘有很多个磁盘,即盘 片。就那我们的例子来看,比如我们的硬盘事实上有两个盘片,分别是从 aa 到 zm 作为第一个,另外一个从 an 到 zz:

a b c d e f g h i j k l m n o p q r s t u v w x y z

a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
c 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
d 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
e 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
f 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
g 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
h 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
i 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
j 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
k 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
l 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
m 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

a b c d e f g h i j k l m n o p q r s t u v w x y z

n 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
o 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
p 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
q 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
r 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
s 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
t 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
u 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
v 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
w 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
x 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
y 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
z 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

下面这样的文件分布将会被认为是非碎片的,因为它连续分分在 m 行到 n 行。但是它忽略了磁盘磁头要从盘面的最后面移动到盘面的最前面才能读取这个文件。
a b c d e f g h i j k l m n o p q r s t u v w x y z

a T O C h e l l o . t x t r m e n 0 0 0 0 0 0 0 0 0 0
b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
c 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
d 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
e 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
f 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
g 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
h 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
i 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
j 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
k 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
l 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
m 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 H e l l o , _ w o

a b c d e f g h i j k l m n o p q r s t u v w x y z

n r l d ! ! 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
o 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
p 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
q 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
r 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
s 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
t 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
u 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
v 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
w 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
x 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
y 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
z 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
我希望这篇文章能够帮助你理解为什么 Linux 系统上不需要碎片整理工具。如果你还是不明白,我也会一直愿意提供建议。

参考至:http://hi.baidu.com/jjmmma/blog/item/15e39e3dd125a501bba1677a.html
如有错误,欢迎指正
邮箱:czmcj@163.com

分享到:
评论

相关推荐

    Linux磁盘碎片快速清理工具Kleandisk

    Linux 磁盘碎片快速清理工具 Kleandisk Kleandisk 是一个高效的磁盘清理工具,可以快速清理 Linux 系统中的磁盘碎片,以优化系统性能。下面是 Kleandisk 工具的详细介绍。 1. 磁盘碎片的危害 磁盘碎片是指文件...

    为什么Linux操作系统不需要碎片整理.docx

    Linux操作系统之所以不需要像Windows那样定期进行碎片整理,其原因主要归结于Linux文件系统的独特设计。在Windows系统中,由于FAT和NTFS文件系统的工作方式,文件可能会被分散存储在硬盘的不同位置,导致碎片的产生...

    Linux磁盘碎片问题

    综上所述,Linux文件系统的设计使得其在大多数情况下不需要像Windows系统那样频繁地进行磁盘碎片整理。通过采用智能的分配策略和高效的数据结构,Linux能够在保证高性能的同时降低磁盘碎片的影响。对于特定的应用...

    dragondjf#Linux-desktop-operating-system#Linux为什么不需要磁盘碎片整理1

    1. 什么是磁盘碎片 2. 磁盘碎片产生的主要原因 3. 磁盘碎片的危害 4.为什么Linux不需要磁盘碎片整理 1.在inode区域中找到对应文件 2.得出文

    Linux与磁盘碎片整理

    总的来说,Linux的文件系统设计使得磁盘碎片对系统性能的影响远小于Windows,一般情况下并不需要专门的磁盘碎片整理工具。当然,对于特定场景,如服务器系统处理大量小文件或旧的ext2文件系统,可能存在碎片问题,...

    清理Linux磁盘碎片.pdf

    Linux 操作系统中,磁盘碎片化是一个普遍存在的问题,不论 Linux 文件系统采用什么类型的文件格式(ext3、JFS、xFS、ReiserFS),使用什么类型的硬盘(IDE、SCSI),随着时间的推移,文件系统都会趋向于碎片化。...

    有效优化Linux防文件碎片降低硬盘性能.pdf

    7. 使用碎片整理工具:虽然Linux系统没有内置的碎片整理工具,但有一些第三方工具,如fsck、e2defrag等,可以帮助分析和整理文件系统碎片。 总之,尽管Linux系统的碎片化问题不像Windows那么突出,但通过以上策略的...

    使用c语言写的磁盘碎片整理程序

    尽管这个程序可以作为一个学习资源,但需要注意的是,现代操作系统如Windows、macOS和Linux通常都有内置的磁盘碎片整理工具,这些工具可能更加高效且适应系统。对于个人用户而言,定期进行磁盘碎片整理的需求已不如...

    磁盘碎片整理

    磁盘碎片整理.exe

    Linux系统硬盘的整理维护及其优化

    其次,针对磁盘碎片问题,Linux并不像Windows那样提供内置的碎片整理工具。然而,一个有效的解决方法是备份数据,重新格式化分区,再从备份恢复文件。这种方法确保新文件在写入时会被连续存储,从而避免碎片化。对于...

    FATDefrag:第一个用于Linux的FAT碎片整理工具-开源

    FATDefrag将是第一个用于Linux的FAT碎片整理工具。 我将支持FAT12 / 16/32文件系统。

    优化Linux系统服务器硬盘实用技巧

    2. 整理磁盘碎片:Linux下的碎片整理不同于Windows,最彻底的方法是进行全备份,然后重新格式化分区并恢复数据。这可以确保新文件被连续写入,减少碎片产生。对于频繁变动的分区,如/home,此方法尤其有效。 3. ...

    如何优化Linux服务器硬盘性能实用技巧

    综上所述,优化Linux服务器硬盘性能涉及清理磁盘、整理碎片、升级硬件以及选择高性能磁盘等多个方面。通过这些方法,可以有效地提升服务器的运行效率,减少延迟,保证服务的稳定性和响应速度。在实际操作中,应根据...

    linux内核细节描述

    它还实现了内存分页和内存碎片整理,以优化内存使用。 4. **文件系统**:Linux内核支持多种文件系统,如EXT4、XFS、Btrfs等。文件系统管理磁盘上的数据组织,实现文件的创建、读写和删除等操作,并提供统一的接口供...

    优化你的Linux系统硬盘.pdf

    2. 整理磁盘碎片:Linux的磁盘碎片整理方法与Windows系统不同。Linux中最好的方式是备份数据,然后重新格式化分区,并从备份恢复。这样在恢复文件时,文件会被写入连续的块中,避免碎片化。对于不经常改变的数据分区...

    生物信息学之玩转Linux教程.txt打包整理.zip

    【标题】"生物信息学之玩转Linux教程.txt打包整理.zip"揭示了这是一份针对生物信息学领域,专门讲解如何在Linux环境下进行工作和学习的教程。在生物信息学中,由于大量的数据分析和计算任务,Linux系统因其高效、...

    Linux内存整理doc.rar

    7. **内存碎片**:长期运行的系统可能会出现内存碎片问题,分为内部碎片(分配给进程的内存空间没有完全使用)和外部碎片(可用的内存块不足以满足新的分配请求)。Linux通过合理的内存分配策略来减少碎片。 8. **...

    提高Linux中文件系统使用效率方法介绍

    5. 定期碎片整理:虽然Linux文件系统通常比Windows更少受到碎片问题的影响,但在长期使用后,还是有必要进行碎片整理,以优化文件和目录的存储布局。 6. 优化挂载选项:在挂载文件系统时,可以调整挂载选项(如...

    Linux内核缓冲区管理

    在实际的实现中,kmem_cache_create的参数flags可指定为SLAB_HWCACHE_ALIGN,这样Linux会根据对象大小自动选择一个合适的对齐方式,以提升性能。 此外,对于初始化和销毁对象缓存,kmem_cache_init函数用于静态创建...

    linux的文件系统制作

    而Btrfs则提供了数据复制、在线碎片整理、快照等高级功能,适合于大规模存储系统。 制作文件系统的第一步通常是创建分区。在Linux系统中,可以使用fdisk、parted等工具来对硬盘进行分区操作。在分区的过程中,需要...

Global site tag (gtag.js) - Google Analytics