Ext2

历史

Linux早期开发是在Minix系统上进行的跨平台开发。因此，MINIX文件系统被用作Linux的第一个文件系统。尽管Minix文件系统十分稳定，但是由于其内部使用了16位的偏移量，使得它能够支持的最大空间只有64MB，支持的最大文件名为14个字符。正是由于这些不足，开发一套Linux本地的文件系统开始了。
为了避免新文件系统的出现带来的问题，同时也为了给文件操作提供更好的API，虚拟文件系统，一个文件系统的虚拟层，被加入到了Linux内核中。第一代扩展文件系统（英语：extended file system）作为第一个使用虚拟文件系统的文件系统，发布于1992年4月，并集成在了版本为0.96c的Linux中。扩展文件系统解决了Minix文件系统中的两个主要的问题，它支持最多255个字符的文件名，最大支持2GB的空间。但是它同样也存在问题：文件访问，Inode修改以及文件内容修改没有使用独立的时间戳。
为了解决这个问题，两种新的文件系统被开发出来，并出现在1993年1月发布的版本为0.99的Linux内核中，分别是：xiafs和第二代扩展文件系统（ext2）,它从Unix文件系统中吸取了很多优点，并用这些优点来改进之前的第一代扩展文件系统。并且第二代扩展文件系统在磁盘上存储的（与磁盘功能相关的）数据结构中预留了很多空间供未来进一步开发使用，这也使得它具有很好的可拓展性。
从那时起，第二代扩展文件系统就成为了许多对虚拟文件系统的API进行拓展的开发的测试平台。由于第二代扩展文件系统好的拓展性以及开发人员对其内在实现非常清楚的优点，很多新特性，例如：POSIX，访问控制表和extended attribute都是最初在第二代扩展文件系统上实现的。
在Linux内核版本号低于2.6.17，块驱动（block driver）中的限制使得第二代扩展文件系统最大支持至2TB的单个文件。

技术内容

其实现方式受到Unix文件系统的影响。