常見文件系統的格式

 文件系統(File System)是文件管理系統的簡稱,根據維基百科的描述,文件系統是用來組織數據在存儲介質上的存儲方式以及檢索方式的。沒有文件系統,信息在存儲介質上會是一個很大的信息塊,無法知道一條信息何時會結束,也無法知道信息在何時開始,對信息的管理就會十分的麻煩。node

  文件系統的種類有不少,每一種文件系統的結構,邏輯,存取速度,靈活性,安全性,大小,等等都不同。linux

  文件系統能夠被使用在不少不一樣的存儲設備(storage devices)上,這些存儲設備使用不一樣的媒介(media),好比磁帶,移動硬盤,閃存等,有時候,計算機的主存(RAM)甚至會建立一個臨時的文件系統來臨時使用。windows

  總之,文件系統的類別有不少,也很複雜,又想弄明白文件系統的原理,須要學習的東西有不少,這裏只介紹一些平時在使用不一樣的操做系統時可能用到的一些知識,幾種不一樣系統下的常見文件系統格式。緩存

常見文件系統的格式安全

windows系統常見的文件系統app

FAT工具

wikipedia FAT文件系統性能

  FAT(File Allocation Table)文件系統誕生於1977年,它最初是爲軟盤設計的文件系統,可是後來隨着微軟推出dos和win 9x系統,FAT文件系統通過適配被逐漸用到了硬盤上,而且在那時的20年中,一直是主流的文件系統。學習

  後來隨着硬件技術的進步,硬盤的容量也愈來愈大,這種文件格式逐漸被擴展了,出現了FAT12,FAT16,FAT32等文件系統,甚至後來還出現了FAT64的文件系統。操作系統

  在今天,FAT已經不是windows系統的主流文件系統了,可是它在軟盤,閃存(u盤),以及不少嵌入式設備上仍是很常見的。

  詳細的狀況wikipedia上有幾張表,相關信息均可查看到。
  目前最通用的的是FAT32,不少U盤上都是FAT32格式,關於FAT32文件系統,如下幾點值得注意:

單個文件最大爲4G
最大文件數量268,435,437
分區最大容量8TB
可在多種操做系統讀寫
有時候,咱們向U盤拷貝大文件時,會發現拷不進去,實際上就是由於這個U盤是FAT32格式的。

NTFS

  NTFS全稱是New Technology File System,它是一種比FAT32功能更增強大的文件系統。
  從windows 2000以後的windows系統的默認文件系統都是NTFS,並且這些windows系統只可以安裝在NTFS格式的磁盤上。
NTFS具備如下特色:

理論上最大文件尺寸可達16EB-1KB,實際上有16TB-64KB(1EB = 1024PB 1PB = 1024TB,至於理論和實際爲何差這麼多,沒有進行過深刻研究,有多是如今的科技還不足以製造出這麼大的磁盤的)
最大文件數量可達232-1個
操做系統支持大部分windows系統,Unix/Linux系統,Mac OS(在Mac OS 10.4+系統上,NTFS格式是隻讀的,即在Mac系統下,你只能從NTFS格式的磁盤上讀取數據,而不能寫入數據)
NTFS系統是一個日誌性的文件系統,系統中對文件的操做均可以被記錄下來,當系統崩潰以後,利用日誌功能能夠修復數據
  因爲在Mac系統下,ntfs是隻讀的,因此要想在Mac下想ntfs格式的硬盤寫入數據,要裝一個插件Paragon NTFS,但聽說不是太穩定。
3. ExtFAT

   ExFAT(Extended File Allocation Table)又叫FAT64,看名字就知道它是對FAT文件系統的擴展。
  E下FAT是雖然也是微軟開發的文件系統,但說它是windows下的文件系統並不合適,它是專門爲閃存盤設計的文件系統,單個文件突破了4G的限制,並且分區的最大容量可達64ZB(比EB大一級的),建議512TB。
  ExFAT在windows,Linux以及Mac系統上,均可以讀寫,做爲U盤或者是移動硬盤的格式仍是比較合適的。

Mac OS系統常見的文件系統

HFS/HFS+
  HFS全稱叫分層文件系統(Hierarchical File System,HFS),誕生於1985年,最初被設計用於軟盤和硬盤,同時也能夠在在只讀媒體如CD-ROM上見到。
  HFS+是一個HFS的改進版本,支持更大的文件,並用Unicode來命名文件或文件夾,代替了Mac OS Roman或其餘一些字符集。
  HFS+的最大文件尺寸能夠達到8EB,文件數量能夠達到232 - 1個。
   因爲這兩種文件格式是蘋果專有的文件系統,因此在windows系統下,是看不到HFS分區的。
Linux系統常見的文件系統

   這幾種文件系統wikipedia上資料也很少,因此就直接拷過來了。

Ext2
  wikipedia英文:https://en.wikipedia.org/wiki/Ext2
  wikipedia中文:https://zh.wikipedia.org/wiki/Ext2

  第二代擴展文件系統(英語:second extended filesystem,縮寫爲 ext2),是LINUX內核所用的文件系統。它開始由RémyCard設計,用以代替ext,於1993年1月加入linux核心支持之中。ext2的經典實現爲LINUX內核中的ext2fs文件系統驅動,最大可支持2TB的文件系統,至linux核心2.6版時,擴展到可支持32TB。其餘的實現包括GNU Hurd,Mac OS X (第3方),Darwin(第3方),BSD。
  ext2爲數個LINUX發行版的默認文件系統,如Debian、Red Hat > Linux等。
Ext3
  wikipedia英文:https://en.wikipedia.org/wiki/Ext3
  wikipedia中文:https://zh.wikipedia.org/wiki/Ext3

  第三代擴展文件系統(英語:Third extended filesystem,縮寫爲ext3),是一個日誌文件系統,經常使用於Linux操做系統。它是不少Linux發行版的默認文件系統。Stephen Tweedie在1999年2月的內核郵件列表[2]中,最先顯示了他使用擴展的ext2,該文件系統從2.4.15版本的內核開始,合併到內核主線中[3]。
  它的性能(速度)不如它的競爭對手,例如JFS2,ReiserFS和XFS,但它具備重要的優點,那就是它容許在適當的時候從流行的ext2文件系統升級,而無需備份和恢復數據;除此以外,它還具備比ReiserFS和XFS更低的的CPU使用率。
  儘管Ext3相對於Ext2有了很多的優點,可是它仍是有一些劣勢:
(1)ext3會在刪除文件時把文件的節點(inode)中的塊指標清除。這樣作能夠在unclean載入文件系統後,重放日誌時,能夠減小對文件系統的訪問。但也一樣也增長了文件在反刪除上面的困難。用戶惟一的補救是在硬盤中撈取數據,而且要知道文件的起始到結束的塊指標。儘管提供了比 ext2在刪除文件上稍微高一些的安全性,卻也無可避免的帶來了不便之處。
(2)Ext3不支持透明壓縮(Ext2以非官方補丁支持)。
(3)大小限制,見下表。

塊尺寸 最大文件尺寸 最大文件系統尺寸
1KB 16GB 2TB
2KB 256GB 8TB
4KB 2GB 16TB
8KB 16GB 32TB
(4)Ext3在寫入日誌時,並不作校驗和。若是barrier=1沒有做爲加載參數(在文件/etc/fstab),而且若是硬件在無次序的寫入緩存,在崩潰時會嚴重損壞文件系統(該選項在大多數流行的Linux發行版中都沒有被啓用,因此大多數發行版的處境都很危險。)
3 . Ext4
  wikipedia英文:https://en.wikipedia.org/wiki/Ext4
  wikipedia中文:https://zh.wikipedia.org/wiki/Ext4
Ext4具備如下特色

大型文件系統   ext4文件系統可支持最高1 Exbibyte的分區[6]與最大16 Tebibyte的文件。Extents   ext4引進了Extent文件存儲方式,以替換ext2/3使用的block mapping方式。Extent指的是一連串的連續實體block,這種方式能夠增長大型文件的效率並減小分裂文件。ext4支持的單一Extent,在單一block爲4KB的系統中最高可達128MB[1]。單一inode中可存儲4筆Extent;超過四筆的Extent會以Htree方式被索引。向下兼容   ext4向下兼容於ext3與ext2,所以能夠將ext3和ext2的文件系統掛載爲ext4分區。因爲某些ext4的新功能能夠直接運用在ext3和ext2上,直接掛載便可提高少量性能。 ext3文件系統能夠部分向上兼容於ext4(也就是說ext4文件系統能夠被掛載爲ext3分區)。然而如果使用到Extent技術的ext4將沒法被掛載爲ext3。預留空間   ext4容許對一文件預先保留磁盤空間。目前大多數文件系統作到這點的方式是直接產生一個填滿0的文件;ext4和XFS可使用Linux核心中的一個新的系統調用「fallocate()」獲取足夠的預留空間。延遲獲取空間   ext4使用一種稱爲allocate-on-flush的方式,能夠在數據將被寫入磁盤(sync)前纔開始獲取空間;大多數文件系統會在以前便獲取須要的空間。這種方式能夠增長性能並減小文件分散程度。突破32000子目錄限制   ext3的一個目錄下最多隻能有32000個子目錄。ext4的子目錄最高可達64000,且使用「dir_nlink」功能後能夠達到更高(雖然父目錄的link count會中止增長)。爲了不性能受到大量目錄的影響,ext4默認打開Htree(一種特殊的B樹)索引功能。該功能已經實現於Linux核心2.6.23版。日誌校驗和   Ext4使用校驗和特性來提升文件系統可靠性,由於日誌是磁盤上被讀取最頻繁的部分之一。這個特性還有一個好處就是能夠安全地避免日誌處理時磁盤I/O的等待,而稍微提升一些性能。日誌校驗和的技術源於威斯康辛大學的一篇名爲IRON File Systems的研究論文(見第六節 transaction checksums校驗和處理)[7]在線磁盤整理   對於在線磁盤整理工具備許多草案,可是這些草案都沒有被包含在主流的內核當中。即便Ext4包含有許多避免磁盤碎片的技術,可是磁盤碎片仍是不免會在一個長時間使用過的文件系統中存在。Ext4將會有一個具備磁盤整理功能的工具[8]。快速文件系統檢查   Ext4將未使用的區塊標記在inode當中,這樣可使諸如e2fsck之類的工具在磁盤檢查時將這些區塊徹底跳過,而節約大量的文件系統檢查的時間。這個特性已經在2.6.24版本的Linux內核中實現。

相關文章
相關標籤/搜索