很少有文件系統通過標準委員會標準化。實際上,不打破兼容性的承諾是因爲我們需要保持與舊版本Linux的向後兼容性。對於MacOS,Windows等也是如此。當使用MacOS 10.1編寫的文件系統無法被MacOS 10.3等讀取時,用戶會變得焦躁不堪。在012版本中,超級塊。當我們添加一個新功能時,我們在三個功能位掩碼中的一箇中定義一個新位:compat,r / o compat,incompat。如果內核在r/o compat位掩碼中看到了一些它不知道的信息,它現在將允許文件系統以讀/寫方式掛載,但是它將允許它以只讀方式掛載文件系統。如果內核看到它在incompat位掩碼中不理解的位,那麼它將不允許文件系統被掛載。如果在compat文件系統中有一些內核不理解的內核,內核知道無論如何都可以安裝文件系統。但是,文件系統一致性檢查程序(e2fsck)和某些其他文件系統實用程序(例如resize2fs)可能需要更嚴格的兼容性檢查,因此它們不會嘗試對具有某些兼容功能的文件系統進行更改它不明白。
實際上,當我們添加一個新功能時,我們會等待很長時間,然後mke2fs實用程序會默認啓用該功能。這允許更多冒險的用戶在我們爲每個人默認啓用之前測試文件系統功能。在實踐中,其他操作系統只實現了ext4特性的一小部分 - 最常見的是ext2/ext3/ext4的非Linux實現大致對應於通過「 mke2fs -t ext2/dev/disk「。
這些功能自從幾乎四分之一世紀以前首次實現以來一直沒有改變。而且他們不會因爲很多企業仍在使用RHEL 5而改變,因爲RHEL 5使用的是十年前發佈的內核,我們關心的是向後兼容自己以及其他方面操作系統。所以你可以看看1994年出版的「Ext2的設計和實現」(http://web.mit.edu/tytso/www/linux/ext2intro.html)論文,並且就基本而言它們並沒有改變。
當然,我們還在增加新功能---例如,最近我們添加了文件系統級加密(在Android中很快使用,希望是Chrome OS),項目配額和元數據校驗和等。到ext4。這些新功能中的每一個都受功能標誌保護,並且所有這些功能在e2fsprogs源代碼發行版中分發的mke2fs當前版本中均未默認啓用。某些社區發行版(如Debian)可能會啓用某些出血性功能,例如元數據校驗和,以便在所有人(包括企業Linux發行版的更保守的企業用戶)獲得啓用之前獲得更多曝光和測試。
當然,其他操作系統將不支持這些最新出血功能。但這沒關係,因爲您還可以使用「mke2fs -t ext2」創建文件系統,這將更加基礎,並且應該很容易地用於互操作性。一般而言,人們將使用具有高級功能的文件系統作爲本地使用,以及具有爲交換目的關閉所有高級功能的非常基本的文件系統。這就是爲什麼許多USB存儲棒使用FAT ---因爲Linux,Windows和MacOS可以讀取FAT文件系統而無需任何特殊處理。
另一種可能性是最新版本的e2fsprogs附帶一個名爲fuse2fs的ext4用戶空間文件系統實現。對於支持FUSE(其中包括大多數BSD系統和MacOS)的操作系統,這可以是讀取ext4文件系統的便捷方式。它不會是一個高性能的讀/寫實現,但是隻想從ext4文件系統映像中獲取數據的人,fuse2fs工作得很好。