在此节选了网络上的两篇关于2.6内核文档系统的文章, 并附上本人截下的几副图, 用于2.4和2.6相比较
Linux 2.6内核的出色世界 | ||||
文档系统
Linux(或其他一些系统)下块设备的最常见用法是在块设备上面建立一个文档系统。相对Linux 2.4而言,Linux 2.6对于文档系统的支持在很多方面都有大的改进。关键的变化包括对扩展属性(extended attributes)连同POSIX标准的访问控制(access controls)的支持。
EXT2/EXT3文档系统作为多数Linux系统缺省安装的文档系统,是在2.6中改进最大的一个。最主要的变化是对扩展属性的支持,也即给指定的文档在文档系统中嵌入一些元数据(metadata)。一些扩展属性被系统使用,只能由root用户进行读写。很多其他操作系统,如Windows和MacOS系统已大量地使用了这种扩展属性。不幸的是,UNIX系的操作系统一般都还没有很好地支持扩展属性,很多用户级的程式(比如tar)需要进行更新才能保存和转储这些扩展属性信息。这是Linux成长的又一方面;Linux对扩展属性的支持正在成熟。
新的扩展属性子系统的第一个用途就是实现POSIX访问控制链表。POSIX访问控制是标准UNIX权限控制的超集,支持更细粒度的访问控制。必要的话(比如从NFS输出文档的时候),这些访问控制能够被映射到标准的user/group权限控制上。除了以上,EXT3更有其他一些小的变化。文档系统日志提交(commit)的时间能够进行调整得更加适合于笔记本电脑(处于省电模式时,可能会加速驱动器);缺省的加载选项能够保存在文档系统自身之中(这样不用每次加载时都输入加载选项);能够标记一个目录为"indexed"以加速在这个目录中的文档查找。
Linux对文档系统层还进行了大量的改进以兼容PC机的主流操作系统。首先,Linux 2.6支持Windows的逻辑卷管理器(即动态磁盘Dynamic Disks)。这个是Windows XP及后续版本中新的分区表机制,能够很方便的支持多分区系统中的分区大小的调整连同新分区的创建。(当然,Linux系统不一定会马上使用这一机制)其次,Linux 2.6对NTFS文档系统的支持也进行了重写,现在能以读/写模式安装一个NTFS卷。写支持仍处于试验阶段,在逐步改进;最终的内核发布版中可能含有也可能不含有写支持这一部分。最后,Linux对FAT12(很老的系统或软盘上使用的DOS文档系统)的支持中消除了使用一些MP3播放器时所碰到的bug。跟踪PC领域的其他一些技术将一直是Linux核心向前发展的一个重要环节。
文档系统部分在和其他操作系统的兼容性方面也有改进。对HPFS文档系统(OS/2和其他系统中使用)的扩展属性的支持有了改进。OS/2风格的扩展属性被分离到另一个的名字空间中。XFS文档系统也得到了更新,以达到和IRIX操作系统的磁盘级(on-disk)兼容。
此外,Linux文档系统中更有很多分散的变化。配额(quota)管理进行了重写以便系统能够支持更多的用户;用户能够标记目录为同步,从而任何变化(增加文档等)都是原子的(这一点对于邮件系统和基于目录的数据库系统尤为重要,而且在磁盘故障的恢复方面也更好一些);透明压缩功能(仅Linux支持的扩展)被加到ISO9660文档系统(CD-ROM中使用)中。最后,一个新的基于内存的文档系统(hugetlbfs)被创建;创建该文档系统旨在更好地支持基于共享内存的数据库。
网络文档系统
Linux对网络文档系统的支持构建在Linux健壮的网络协议支持之上,他也同样健壮。安装或输出(export)一个网络文档系统,是需要内核直接参和的为数不多的几个上层网络相关操作之一。(另外比较明显的更有对于网络块设备的支持,在2.6中没有特别大的改变,并且也只是在类似文档系统操作的特定应用中使用。)任何其他的网络相关操作都能够被放到用户空间去,而无需核心研发人员去考虑。
在Linux和类UNIX世界中,最普遍的网络文档系统是个名为Network File System的文档系统,简称NFS。
NFS是个复杂的文档共享协议,跟UNIX特别是Sun Solaris有相当深厚的渊源。能够使用TCP或UDP作为NFS的主要传输协议,但也需要其他一些子协议,这些协议又各自运行在RPC(远程过程调用)协议之上。这其中包括单独的用于认证的mount协议连同用于文档锁的NLM(network lock manager)。(通常的实现版本同时也跟其他一些基于RPC的协议紧密地结合在一起,比如用于身份验证的NIS-网络信息服务--用于认证。NIS在Linux机器上没有得到广泛应用,主要因为他缺乏安全性。)可能正是因为NFS协议如此的复杂性,才没有被作为"Internet协议"广泛接受。
Linux 2.6中,NFS文档系统得到了很大的更新和改进。最大的改进就是实验性地支持新的并且还没有被广泛接受的NFSv4协议(以前的linux版本支持NFS2和NFS3两种协议)在客户端和服务器端的实现。新的版本有更强、更安全的身份认证(采用加密技术),支持更智能化的锁管理,支持伪文档系统等。Linux还没有实现任何NFS4的新特征,但是现在的版本已比较稳定并且能够支持一些产品级的应用。并且,基于Linux的NFS服务端的实现已得到改进,从而具备了更好的扩展性,更好的完整性(支持UDP还支持TCP),更健壮(文档系统在输出文档的时候能够进行调整以维持他们自有的一些特征),更简便的管理(通过新的nfsd文档系统,而不再是系统调用)。更有其他方面的一些改进,比如分离lockd和nfsd,支持零拷贝传输等。NFS客户端也因为底层RPC协议在缓存机制、UDP连接控制连同其他在TCP协议上的改进而受益。Linux支持NFS共享卷作为根文档系统的功能也因为核心对TCP协议上的NFS的改进而改进。
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!








