学科分类
目录
Linux编程

Linux文件系统版本

Linux早期在Minix系统上进行跨平台开发,其最初使用的文件系统是基于Minix的文件系统,虽然该文件系统非常稳定,但因为它能支持的最大空间仅有64M,支持的文件名最长只能有14个字符,随着Linux的不断发展,该文件系统逐渐无法满足Linux对于文件存储管理的需求,因此开发人员考虑开发一套属于Linux的独立的文件系统,也就是第一代扩展文件系统(Extended File System,简称ext)。

ext文件系统是一个虚拟文件系统,发布于1992年4月。为了避免新文件系统的出现可能带来的问题,也为了能给文件系统提供更好的接口,开发人员在Linux内核中添加了一个文件系统的虚拟层。ext文件系统是第一个使用虚拟层的文件系统,该文件系统解决了Minix文件系统的不足,它最多支持255个字符的文件名,支持2GB的空间。但ext文件系统自身又有新的问题出现:文件访问、inode修改与文件内容修改使用相同的时间戳。

为了解决ext的不足,第二代扩展文件系统(Second Extended File System,简称ext2)逐渐被开发。1993年1月,ext2文件系统首次被发布,该文件系统在ext的基础上,结合Unix中文件系统的诸多优点,性能再次得到提升。ext2中添加了许多新特性,如:POSIX、访问控制表等,此外,ext2具备可扩展性,它为自己未来的发展预留了一定空间。在之前的Linux内核版本中,由于块驱动的限制,ext2最大支持大小为2TB的单个文件。

ext2是Linux历史上第一个商业级的文件系统,之后随着Linux的逐渐发展,可用于Linux的文件系统有JFS2、ReiserFS、XFS以及ext2的后继版本ext3,虽然ext3的速度比之其它文件系统略有不足,但因可以在适当的时候由ext2升级且无需备份和恢复数据、cpu使用率比同期部分文件系统的低等原因,ext3文件系统最终成为Linux系统中默认安装的文件系统。ext3文件系统较之ext2的最大更新在于,ext3是一个日志文件系统,其中添加了日志,保证文件系统在故障时,能快速恢复,并保持系统的一致性。

由于ext3系统的设计目标是高度兼容ext2,它与ext2的差别不是很大,又因ext3自身有许多限制与不足,于是后续有了ext4的开发。Ext4在初期开发时目标只是提升etx3的性能,但因为在其中添加的提升性能所需的延伸包可能会影响其稳定性,因此部分Linux开发者拒绝在ext3中添加延伸包,并要求将其命名为ext4,作为ext3的分支进行开发。2008年10月11日,ext4作为稳定版本,加入2.6.29版的源代码中,ext4的开发基本完成,2008年12月25日,ext4成为Linux官方建议的默认文件系统。

点击此处
隐藏目录