NTFS 是目前最先進的文件系統嗎?
Comparison of file systems - Wikipedia, the free encyclopedia | http://en.wikipedia.org/wiki/Comparison_of_file_systems
(1) NTFS - Wikipedia, the free encyclopedia | http://en.wikipedia.org/wiki/NTFS(2) HFS Plus - Wikipedia, the free encyclopedia | http://en.wikipedia.org/wiki/HFS_Plus
王老師太壞了,居然忽略掉 ext3 和 ext4.
HFS+ 與 NTFS 很類似,有一些兼容性。NTFS 和 HFS+ 原生支持 ACL ,它是 NFSv4 下的一個標準,用於控制訪問權限的,現在已經成爲一個潮流了,整個 UNIX 世界也逐漸意識到 ugo 開始不夠用了,也逐漸引入 ACL 機制。
NTFS/HFS+ 還更好的支持對空間的高效利用,傾向於用少量性能開銷來提高磁盤的利用率,因此他們相比 FAT32 ,對磁盤整理的要求降低了不少。---------------------------------------
FAT32 有一個好處就是它很老。這樣有一些老程序可能會依賴它。很多 mp3 播放器只認這一種格式。有一件事我覺得蠻有趣的在這裡說一說。我公司用一套比較老的叫做超贏的財務軟體,它爲了防盜版,自己繞過操作系統的來操作 FAT32 文件系統以求加大破解的難度。於是我們部門主管有一次維護一臺被授權的機器上的超贏系統時需要將 NTFS 格式轉成 FAT32 格式。關於 FAT32 的文件名編碼格式,被微軟的文檔坑了。看這一段:http://msdn.microsoft.com/en-us/library/windows/desktop/dd317748(v=vs.85).aspx
NTFS stores file names in Unicode. In contrast, the older FAT12, FAT16, and FAT32 file systems use the OEM character set.For more information, see Code Pages
.
實際上這段描述是錯的。看它給的這個鏈接:http://msdn.microsoft.com/en-us/library/dd317752(VS.85).aspx
They are also used for the non-extended file names in the FAT12, FAT16, and FAT32 file systems, as described in
Character Sets Used in File Names. The usual OEM code page for English is code page 437.
先說一下之前回答有幾個不專業的地方:
很多人把文件系統本身和文件系統實現混為一談:
1、大部分文件系統驅動都把星號"*"當做通配符,但是大部分文件系統規範里都沒有限制星號作為文件名存在。那些說文件名字元限制的可以歇歇了。NTFS規範里只限制了NUL和斜杠,別的都能用。
2、Windows路徑長度就250多個字元,但這是為了API兼容才這麼設計的,FAT32驅動里都支持64K長度的路徑,也有外部API能這麼用,別拿最長路徑說事。再說,ext里路徑也是無限長的嗎?文件系統驅動限制路徑長度是64K,但不代表最大路徑就這麼長。
3、大部分文件系統規範里,最大容量都在2^60Bytes以上,但實際應用中一般都不弄這麼大,就好比你用64位CPU就必須要配置16777216TB內存嗎?場景不同,搞那麼大沒用。
要比較文件系統的好壞,不應該比較文件系統驅動的好壞,要比實現的好不好,要不要比一比bug數?
一般比較文件系統的好壞,要看:
1、一些基本的參數限制;
2、文件系統的基本特性:許可權控制、時間戳、元數據可靠性、文件校驗等等;
3、文件系統的擴展特性:日誌、鏈接(軟連接、硬鏈接)、塊分配策略等等。
再說結論:
在Windows平台上NTFS必然是最好的文件系統;
放眼世界上所有的文件系統,NTFS不算最好,只能算中等,具體的看這裡:
Comparison of file systems
這裡有各種文件系統的比較。ZFS才是最先進的文件系統. 基本上, 文件系統方面在ZFS之後, 要再有突破性的革新, 需要一些時間了.
就拿路徑長度居然是固定的有限制的這一點來說,ntfs就只是一個渣文件系統,先進二字與它不沾邊。
ntfs都存在了好多年了。。。ms的東西,一切為了兼容性,先進性就不好弄了。關於路徑,使用Unicode版本的API,加\?前綴,就可以使用32,767個寬字元長度的路徑。
Linux的fs大多不支持加密, 於是都不如NTFS先進
不過NTFS不包含針對flash的優化, 因此不算先進推薦閱讀:
※如何從零開始構建計算機軟體系統?
※如何把兩台電腦連接在一起,並行執行?
※Windows 10 已經推出 1 年多了到底跟 Windows 7 比怎麼樣?
※為什麼電腦的風扇背對 CPU 吹,而人是把風扇面對自己吹?