1、什麼是NTFS-新(N)技術(T)文件(F)系統(S)?
想要了解NTFS,我們首先應該認識一下FAT。FAT(File Allocation Table)是"文件分配表"的意思。對我們來說,它的意義在於對硬碟分區的管理。FAT16、FAT32、NTFS是目前最常見的三種文件系統。
FAT16:我們以前用的DOS、Windows 95都使用FAT16文件系統,現在常用的Windows 98/2000/XP等系統均支持FAT16文件系統。它最大可以管理大到2GB的分區,但每個分區最多隻能有65525個簇(簇是磁碟空間的配置單位)。隨著硬碟或分區容量的增大,每個簇所佔的空間將越來越大,從而導致硬碟空間的浪費。
FAT32:隨著大容量硬碟的出現,從Windows 98開始,FAT32開始流行。它是FAT16的增強版本,可以支持大到2TB(2048G的分區。FAT32使用的簇比FAT16小,從而有效地節約了硬碟空間。
NTFS:微軟Windows NT內核的系列操作系統支持的、一個特別為網路和磁碟配額、文件加密等管理安全特性設計的磁碟格式。隨著以NT為內核的Windows 2000/XP的普及,很多個人用戶開始用到了NTFS。NTFS也是以簇為單位來存儲數據文件,但NTFS中簇的大小並不依賴於磁碟或分區的大小。簇尺寸的縮小不但降低了磁碟空間的浪費,還減少了產生磁碟碎片的可能。NTFS支持文件加密管理功能,可為用戶提供更高層次的安全保證。
2、什麼系統可以支持NTFS文件系統?
只有Windows NT/2000/XP才能識別NTFS系統,Windows 9x/Me以及DOS等操作系統都不能支持、識別NTFS格式的磁碟。由於DOS系統不支持NTFS系統,所以最好不要將C:盤製作為NTFS系統,這樣在系統崩潰後便於在DOS系統下修復。
NTFS與操作系統支持情況如下:
FAT16 windows 95/98/me/nt/2000/xp unix,linux,dos
FAT32 windows 95/98/me/2000/xp
NTFS windows nt/2000/xp
3、我們需要NTFS嗎?
Windows 2000/XP在文件系統上是向下兼容的,它可以很好地支持FAT16/FAT32和NTFS,其中NTFS是Windows NT/2000/XP專用格式,它能更充分有效地利用磁碟空間、支持文件級壓縮、具備更好的文件安全性。如果你只安裝Windows 2000/XP,建議選擇NTFS文件系統。如果多重引導系統,則系統盤(C盤)必須為FAT16或FAT32,否則不支持多重引導。當然,其他分區的文件系統可以為NTFS。
1、fat16
對電腦老"鳥"而言,對這種硬碟分區格式是最熟悉不過了,我們大都是通過這種分區格式認識和踏入電腦門檻的。它採用16位的文件分配表,能支持的最大分區為2gb,是目前應用最為廣泛和獲得操作系統支持最多的一種磁碟分區格式,幾乎所有的操作系統都支持這一種格式,從dos、win 3.x、win 95、win 97到win 98、windows nt、win 2000/XP,甚至火爆一時的linux都支持這種分區格式。
但是fat16分區格式有一個最大的缺點,那就是硬碟的實際利用效率低。因為在dos和windows系統中,磁碟文件的分配是以簇為單位的,一個簇只分配給一個文件使用,不管這個文件佔用整個簇容量的多少。而且每簇的大小由硬碟分區的大小來決定,分區越大,簇就越大。例如1gb的硬碟若只分一個區,那麼簇的大小是32kb,也就是說,即使一個文件只有1位元組長,存儲時也要佔32kb的硬碟空間,剩餘的空間便全部閑置在那裡,這樣就導致了磁碟空間的極大浪費。fat16支持的分區越大,磁碟上每個簇的容量也越大,造成的浪費也越大。所以隨著當前主流硬碟的容量越來越大,這種缺點變得越來越突出。為了克服fat16的這個弱點,微軟公司在win 97操作系統中推出了一種全新的磁碟分區格式fat32。
FAT即文件分配表,也即人們常說的FAT16。它是自DOS、Windows 3.x以來廣泛使用的硬碟分區格式,是傳統的16位文件系統。它有極好的兼容性,DOS、Windows 、Windows NT的各種版本,以及其他各類操作系統都支持FAT16。它相對速度快, CPU資源耗用少,所以至今仍是各類機器硬碟常用的分區格式。但是傳統FAT16的不支持長文件名,受到8+3,即8個字元的文件名加3個字元擴展名的限制。單個分區的最大尺寸為2GB,單個硬碟的最大容量一般不能超過8GB,所以如果硬碟容量超過8GB,8GB以上空間則因無法利用而浪費。當分區尺寸為2GB時,單"簇"(磁碟容量最小單位)尺寸為16KB,當文件數量巨大時會白白遺留許多無法利用的空間。在Windows NT中採用FAT格式,不能恢復已被刪除的文件。此外,這種文件系統因其兼容性好,來者不拒,就導致安全性差,易受病毒攻擊。
自Windows 95起微軟推出擴展文件分配表VFAT,它突破了8+3的限制,支持長文件名,最長可達255個字元,包括後綴,並且文件名中可包含多個空格或多個後綴,其它優缺點基本同FAT16。
2、fat32
FAT32是Windows 95 OSR2版開始推出兼容16位的32位文件系統。最大特點為使用較小的簇(每簇僅為4KB)分配文件單元,大大提高硬碟空間利用率,減少了浪費。單個硬碟的最大容量達到2TB(1TB=1024GB),為海量硬碟的使用者提供了方便。它支持長文件名,能很好運行 DOS、Windows 95-2000的各種版本,但系統開銷要大於FAT16。這種文件系統的安全性仍然較差;FAT32可以兼容FAT16,但無法訪問NTFS分區。對於像Word一類的編輯軟體產生的文本文件而言,在FAT32的機器上建立的文件只有以"純文本"格式存檔,才能在FAT16的電腦中打開,在Windows 95 OSR2、Windows 98中提供了FAT16向FAT32之間的單向轉換功能。
這種格式採用32位的文件分配表,使其對磁碟的管理能力大大增強,突破了fat16對每一個分區的容量只有2gb的限制,運用fat32的分區格式後,用戶可以將一個大硬碟定義成一個分區,而不必分為幾個分區使用,大大方便了對硬碟的管理工作。而且,fat32還具有一個最大的優點是:在一個不超過8gb的分區中,fat32分區格式的每個簇容量都固定為4kb,與fat16相比,可以大大地減少硬碟空間的浪費,提高了硬碟利用效率。
目前,支持這一磁碟分區格式的操作系統有win 97、win 98和win 2000/XP。但是,這種分區格式也有它的缺點,首先是採用fat32格式分區的磁碟,由於文件分配表的擴大,運行速度比採用fat16格式分區的硬碟要慢;另外,由於dos系統和某些早期的應用軟體不支持這種分區格式,所以採用這種分區格式後,就無法再使用老的dos操作系統和某些舊的應用軟體了。
3、ntfs
NTFS即是Windows NT的文件系統,它的最大優點是安全性和穩定性好,全32位內核的NTFS為磁碟目錄與文件提供安全設置,指定訪問許可權,難以受到病毒侵襲。NTFS自動記錄與文件的變動操作,具有文件修復能力,不需要運行磁碟碎片整理等磁碟工具。系統不易崩潰,出現錯誤能迅速修復。每簇僅為512個位元組,硬碟利用率最高。它主要缺點正由於其高築壁壘,閉關自守,從而導致兼容性差。Windows NT的NTFS可以訪問FAT文件系統,但是逆向造訪就會吃閉門羹,如在DOS下系統會顯示"Invalid drive specification"(無效驅動器指派)。在Windows NT 4.0中提供了FAT向NTFS的單向轉換功能;在最新的,具有NT內核的Windows 2000中,提供了FAT轉換為NTFS或FAFAT32的功能。這些轉換在進行之前應慎重考慮。
ntfs分區格式是一般電腦用戶感到陌生的,它是網路操作系統windows nt的硬碟分區格式,使用windows nt的用戶必須同這種分區格式打交道。其顯著的優點是安全性和穩定性極其出色,在使用中不易產生文件碎片,對硬碟的空間利用及軟體的運行速度都有好處。它能對用戶的操作進行記錄,通過對用戶許可權進行非常嚴格的限制,使每個用戶只能按照系統賦予的許可權進行操作,充分保護了網路系統與數據的安全。但是,目前支持這種分區格式的操作系統不多,除了windows nt外,win 2000 winxp win2003也支持這種硬碟分區格式。
linux文件系統分類: ext2:早期linux中常用的文件系統ext3:ext2的升級版,帶日誌功能ext4:ext3的升級版,大幅度改動RAMFS:內存文件系統,速度很快NFS:網路文件系統,由SUN發明,主要用於遠程文件共享MS-DOS:MS-DOS文件系統VFAT:Windows95/98 操作系統 採用的文件系統FAT:WindowsXP操作系統採用的文件系統NTFS:WindowsNT/XP操作系統採用的文件系統HPFS:OS/2操作系統採用的文件系統PROC:虛擬的進程文件系統ISO9660:大部分光碟所採用的文件系統ufsSun:OS所採用的文件系統NCPFS:Novell伺服器所採用的文件系統SMBFS:Samba的共享文件系統XFS:由SGI開發的先進的日誌文件系統,支持超大容量文件JFS:IBM的AIX使用的日誌文件系統ReiserFS:基於平衡樹結構的文件系統udf:可擦寫的數據光碟文件系統
4、虛擬文件系統VFS**linux支持的所有文件系統稱為邏輯文件系統,而linux在傳統的邏輯文件系統的基礎上增加料一個蓄念文件系統(VitualFileSystem,VFS)的介面層。虛擬文件系統(VFS)位於文件系統的最上層,管理各種邏輯文件系統,並可以屏蔽各種邏輯文件系統之間的差異,提供統一文件和設備的訪問介面。
5、文件的邏輯結構 文件的邏輯結構可分為兩大類:位元組流式的無結構文件和記錄式的有結構文件。由位元組流(位元組序列)組成的文件是一種無結構文件或流式文件,不考慮文件內部的邏輯結構,只是簡單地看作是一系列位元組的序列,便於在文件的任意位置添加內容。由記錄組成的文件稱為記錄式文件,記錄是這種文件類型的基本信息單位,記錄式文件通用於信息管理。
6、文件類型 普通文件:通常是流式文件目錄文件:用於表示和管理系統中的全部文件連接文件:用於不同目錄下文件的共享設備文件:包括塊設備文件和字元設備文件,塊設備文件表示磁碟文件、光碟等,字元設備文件按照字元操作終端、鍵盤等設備。管道(FIFO)文件:提供進程建通信的一種方式套接字(socket)文件:該文件類型與網路通信有關
7、文件結構: 包括索引節點和數據索引節點:又稱I節點,在文件系統結構中,包含有關相應文件的信息的一個記錄,這些信息包括文件許可權、文件名、文件大小、存放位置、建立日期等。文件系統中所有文件的索引節點保存在索引節點表中。數據:文件的實際內容。可以是空的,也可以非常大,並且擁有自己的結構。
8、ext2文件系統 ext2文件系統的數據塊大小一般為1024B、2048B或4096Bext2文件系統採用的索引節點(inode):索引節點採用了多重索引結構,主要體現在直接指針和3個間接指針。直接指針包含12個直接指針塊,它們直接指向包含文件數據的數據塊,緊接在後面的3個間接指針是為了適應文件的大小變化而設計的。
網路模型:
OSI七層模型
應用層
表示層
會話層
傳輸層
網路層
數據鏈路層
物理層
TCP/IP四層模型
應用層
傳輸層
IP層
網路介面層
B. 文件系統類型
文件系統類型:
ext2 : 早期linux中常用的文件系統
ext3 : ext2的升級版,帶日專志功能屬
RAMFS : 內存文件系統,速度很快
NFS : 網路文件系統,由SUN發明,主要用於遠程文件共享
MS-DOS : MS-DOS文件系統
VFAT : Windows 95/98 操作系統採用的文件系統
FAT : Windows XP 操作系統採用的文件系統
NTFS : Windows NT/XP 操作系統採用的文件系統
HPFS : OS/2 操作系統採用的文件系統
PROC : 虛擬的進程文件系統
ISO9660 : 大部分光碟所採用的文件系統
ufsSun : OS 所採用的文件系統
NCPFS : Novell 伺服器所採用的文件系統
SMBFS : Samba 的共享文件系統
XFS : 由SGI開發的先進的日誌文件系統,支持超大容量文件
JFS :IBM的AIX使用的日誌文件系統
ReiserFS : 基於平衡樹結構的文件系統
udf: 可擦寫的數據光碟文件系統
C. ramdisk三種實現方式
Ramdisk/ramfs/tmpfs
Ramdisk:
大小固定,默認4096k。在編譯內核的時候需將block device 中的Ramdisk支持選項加上。
如果對Ramdisk的支持已經編譯進內核,可以如下方式使用:
查看可用的Ramdisk,使用 ls /dev/ram*
創建一個目錄 mkdir /mnt/test
對/dev/ram0創建文件系統 mke2fs /dev/ram0
最後將創建的文件系統掛載到該目錄下
mount /dev/ram /mnt/test
ramfs:
大小可以根據需要進行增加和減少。
處於虛擬文件系統層VFS,不像ramdisk基於虛擬在內存中的其他文件系統(ex2fs)。
如果對Ramdisk的支持已經編譯進內核,可以如下方式使用:
創建目錄,載入ramfs到該目錄
mkdir /testRam
mount -t ramfs none /testRam
預設的情況下,被限制為最多使用內存大小的一半
也可通過maxsize進行制定
eg:創建一個限定最大使用內存2M的ramfs
mount -t ramfs none /test Ram -o maxsize=2000
tmpfs:
不同於傳統的用塊設備block device來進行實現的Ramdisk,
也不同於針對物理內存的ramfs
tmpfs既可以使用物理內存,也可以使用交換分區。
大小不固定,可以根據需要進行增加或減少
使用tmpfs需要編譯內核時選擇
虛擬內存文件系統支持(Virtual memory filesystem support)」
載入tmpfs:
mkdir -p /mnt/tmpfs
mount tmpfs /mnt/tmpfs -t tmpfs
指定大小
mount tmpfs /mnt/tmpfs -t tmpfs -o size=32M
D. 內存文件系統
Linux內核2.0/2.2就已經支持,為了能夠使用Ramdisk,我們在編譯內核時須將block device中的Ramdisk支持選上,它下面還有兩個選項,一個是設定Ramdisk的大小,默認是4096k;
如果umount再載入,只要不重啟linux,那文件依然會保存在/dev/ramX中
Ramfs顧名思義是內存文件系統,它處於虛擬文件系統(VFS)層,而不像ramdisk那樣基於虛擬在內存中的其他文件系統(ex2fs)。因而,它無需格式化,可以創建多個,只要內存足夠,在創建時可以指定其最大能使用的內存大小。
umount後再載入數據消失
Tmpfs是一個虛擬內存文件系統,它不同於傳統的用塊設備形式來實現的Ramdisk,也不同於針對物理內存的Ramfs。Tmpfs可以使用物理內存,也可以使用交換分區
在編譯內核時須將
size=32m,內存的消耗值不是32m,要看真實使用
umount後再載入數據消失。
(1) ** System V shared memory(shmget/shmat/shmdt) **
(2) ** POSIX shared memory(shm_open/shm_unlink) **
2.用於POSIX共享內存,由用戶負責mount,而且一般mount到/dev/shm;依賴於CONFIG_TMPFS;
System V與POSIX共享內存都是通過tmpfs實現,但是受的限制卻不相同。也就是說/proc/sys/kernel/shmmax只會影響SYS V共享內存,/dev/shm只會影響Posix共享內存
Posix共享內存區對象的大小可在任何時刻通過ftruncate修改,而System V 共享內存區對象的大小是在調用shmget創建時固定下來的。
Posix共享內存區是先調用shm_open然後再調用mmap,System V 共享內存區是先調用shmget再調用shmat。
mmap, 它把文件內容映射到一段內存上(准確說是虛擬內存上), 通過對這段內存的讀取和修改, 實現對文件的讀取和修改,mmap()系統調用使得進程之間可以通過映射一個普通的文件實現共享內存
mmap函數成功返回指向內存區域的指針
addr,某個特定的地址作為起始地址,當被設置為NULL,系統會在地址空間選擇一塊合適的內存區域。
其中data的創建採用內存映射函數mmap,用dev/ properties 的原因是因為dev為tmpfs
E. 手機ramfs_ext是什麼文件
ramfs是Linux下一種基於RAM做存儲的文件系統。在使用過程中你就可以把ramfs理解為在普通的HDD上建立了一個文件系統,而現在HDD被替換成了RAM,因為是RAM做存儲所以會有很高的存儲效率。由於ramfs的實現就相當於把RAM作為最後一層的存儲,所以在ramfs中不會使用swap。你什麼時候聽過會把HDD上的文件swap到哪裡去嗎?平常說的swap都是針對內存來說的,而ramfs底層的存儲是RAM,雖然不是HDD,但是在Linux看來它就跟HDD一樣。但是ramfs有一個很大的缺陷就是它會吃光系統所有的內存,即使你mount的時候指定了大小,同時它也只能被root用戶訪問。