Feb 3.2013
 
       近来,在阅读《Linux运维趋势》电子杂志时,看到一篇很有趣味的文章《 为什么Linux不需要磁盘碎片整理 》,使用Windows的我们一般都知道,经常对文件系统进行磁盘碎片整理会提高计算机的速度。而Linux为什么不需要呢?这引起我莫大的好奇心。
       通常,我们都知道磁盘碎片整理这个系统工具,但磁盘碎片整理与文件系统之间什么关系?大致的道理了解,但是细节之处,还是需要细细地学习才能更深入认识:Windows文件系统和Linux文件系统的区别?从维基百科了解到——
       磁盘文件系统是一种设计用来利用数据存储设备来保存计算机文件的文件系统,最常用的数据存储设备是磁盘驱动器,可以直接或者间接地连接到计算机上。例如:FAT exFATNTFSHFSHFS+ext2ext3ext4ODS-5btrfs
      常见的,Windows 98Windows ME使用FAT文件系统,Windows XP200020032008以及Windows 7使用NTFS文件系统。Linux使用ext2ext3ext4文件系统。
 
从磁盘碎片整理认识:Windows文件系统和Linux文件系统_第1张图片
 
 
Windows文件系统学习
 
      微软的DOSwindows文件系统文件结构采用树型结构,在DOS windows中这样的树型结构的根是磁盘分区的盘符(如C:),有几个分区就有几个树型结构,他们之间的关系是并列的。可以使用cd命令来切换目录,有趣的是:在命令行下目录结构Windows是“\”,而Linux是“/
 
      了解一下Windows磁盘碎片整理的原理——
 
 
从磁盘碎片整理认识:Windows文件系统和Linux文件系统_第2张图片
 
      磁盘驱动器上有很多扇区,每个扇区都有存放一小段数据。文件,特别是大文件的存储需要占用很多不同的扇区。
      有很多个文件存在的文件系统里,每个文件都会被存储在一系列连接的扇区里。后来更新了其中的一个文件,它的体积变大了。文件系统尝试把文件新增的部分存放到紧邻原始文件的扇区里。但,它周边已经没连续的足够扇区空间了,文件需要被分割成数段——这些都在自动进行的。当从磁盘上读取这个文件时,磁盘磁头需要跨越数个不同的物理位置来读取各个扇区——这样会使速度降低。
        磁盘碎片整理就是小心地移动这些小文件块来减少碎片,让每个文件都能连续的分布在磁盘上。
       如果是固态硬盘,情况又不同了,固态硬盘没有机械移动,不应该进行碎片整理——对一个u盘进行碎片整理通常会降低它的寿命。
       由于这些文件系统的工作原理,它们注定需要进行碎片整理来保持高性能。微软在它最新的视窗系统里通过在后台运行一个磁盘碎片整理进程来解决这个问题。
 
 
Linux文件系统学习
 
 
       Linux系统中每个分区都是一个文件系统,都有自己的目录层次结构。
     如几个重要的目录:/etc 系统管理和配置文件、/home 用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示
 
从磁盘碎片整理认识:Windows文件系统和Linux文件系统_第3张图片
 
 
        Linux文件系统使用索引节点来记录文件信息。
     了解一下Linux中文件系统如何处理数据文件,而不需要进行碎片整理?
 
       Linuxext2ext3ext4采用一种聪明的方法来存放文件。把多个文件并排放在磁盘上不同位置,Linux文件系统把所有文件都分散到了整个磁盘上,每两个文件之间都留有相当巨大的空闲空间。当文件被修改、体积增加时,它们通常有足够的空间来扩展,一旦有碎片产生时,文件系统会尝试移动整个文件来消除碎片。所以不需要一个碎片整理工具。