近些天,每天晚上都学一下Linux,主要是因为兴趣。现在主要对Linux学习内容做一些总结吧。
Linux 文件系统
首先什么是文件系统?
计算机的文件系统是一种存储和组织计算机文件和数据的方法,它使得对其访问和查找变得容易。文件系统通常使用硬盘和光盘这样的存储设备,并维护文件在设备中的物理位置。但是,实际上文件系统也可能仅仅是一种访问数据的界面而已,实际的数据是通过网络协议(如NFS、SMB、9P等)提供的或者内存上,甚至可能根本没有对应的文件(如proc文件系统)。
严格地说, 文件系统是一套实现了数据的存储、分级组织、访问和获取等操作的抽象数据类型(Abstract data type)。
Windows文件系统主要是 fat16 , fat32 和ntfs , windows 95 、windows98 文件系统主要是fat16 和 fat32 , windows NT操作系统文件系统则转到NTFS。
Windows | FAT(12/16) | FAT(32/VFAT) | NTFS |
Windows 3.x 或更早 (MS-DOS 6.22) (PC-DOS 7.0) | 可读/可写 | 不支持 | 不支持 |
95 | 可读/可写 | 不支持 | 不支持 |
95(OSR2以后) 98(含SE) ME | 可读/可写 | 可读/可写 | 不支持 |
NT | 可读/可写 | 不支持 | 可读/可写 |
2000 XP Vista Server 2003 Server 2008 7 | 可读/可写 | 可读/可写 | 可读/可写 |
注意:除非 NT 安装了 FAT32 For Windows NT 4.0 否则 NT 是不支持 FAT32。
Linux文件系统是什么呢?
随着技术的发展,Linux支持的文件系统越来越多,基本上有Btrfs、JFS、 ReiserFS、ext2、ext3、ext4、ISO9660、XFS、Minx、MSDOS、VFAT、NTFS、NFS、SMB等。
其中常用的还是 ext2(现在基本上弃而不用)、ext3、ext4、ReiserFS和NFS。
ext2到ext3升级增加的功能主要是增加日志功能,便于系统在恶劣环境下对意外的恢复;而ext3也少了删除恢复功能。这个功能对普通用户来说还是比较有用的,因为某种原因的误删,以后想恢复原文件也不是没有可能的。但是对于某些保密文件,希望删除后不能恢复,或者恢复起来更困难,我想ext3更适合。
对ext3的升级到ext4,用几个命令就可以完成,不需要重新格式化硬盘,带来的便利当然不言而喻了。至于ext4与ext3的区别,主要记住ext4具有现代文件系统的许多特点,各项性能较ext3有很大的提升。具体的区别可以查看Ext4,Ext3的特点和区别。
ReiserFS是一种性能非常好的文件系统,作者是Hans Reiser及其团队Namesys,1997年7月23日他将ReiserFS文件系统在互联网上公布。Linux内核从2.4.1版本开始支持ReiserFS。ReiserFS首先被 SUSE采用为默认的文件系统,不过后来又改用ext3了。原因可能跟hans同学谋杀妻子事件有关吧,即使这个被SUSE否认了。
ReiserFS技术上采用的是B-tree细节处理的,特别在处理小于4KB小文件,效率很高,比ext3要高10~15倍,在自动修复上也较ext2、ext3更优异,但是它也有其自身的缺点,很明显的一点就是每升级一个版本,ReiserFS都要求格式化硬盘,在某些大型服务器上,这显然是不现实的。
下面给一个各个文件系统综合比较的表格:
ext2 | ext3 | Reiserfs | JFS | XFS | |
---|---|---|---|---|---|
稳定性 | 出色 | 好 | 好 | 一般 | 好 |
反删除工具 | 有(复杂) | 有(复杂) | 无 | 无 | 无 |
系统崩溃后的重启时间 | 非常非常长 | 快 | 非常快 | 非常快 | 非常快 |
系统崩溃后数据的状态 | 一般来说不错,但是要冒丢失部分或全部数据的巨大风险 | 很好 | 一般[a] | 很好 | 很好 |
ACL支持 | 是 | 是 | 无 | 无 | 是 |
[a] 通过在 /etc/fstab 中添加data=journal的选项,日志记录不仅记录了元数据,还记录了数据。这将有得到更好的崩溃恢复结果。 |