『壹』 請問1:FAT32與NTFS的區別(為什麼C盤是FAT32其他盤是NTFS)2:.rar與.zip的區別
1、比較 NTFS 和 FAT 文件系統
文件系統是計算機用於組織硬碟上的數據的基本結構。如果要安指衫裝新硬碟,則需要使用文件系統對其進行分區和格式化, 然後才能開始存儲數據或程序。在 Windows 中,可以從中進行選擇的三個文件系統選項為:NTFS、FAT32 以及現在很少使用的較早的 FAT(也稱為 FAT16)。
NTFS
NTFS 是此 Windows 版本的首選文件系統。與早期的 FAT32 文件系統相比,它有許多優點,其中包括:
能夠從某些與磁碟相關的錯誤中自動恢復,而 FAT32 則不能。
改善了對較大硬碟的支持。
由於可以使用許可權和加密來限制許可用戶訪問特定文件,因此安全性更好。
FAT32
FAT32 以及更少使用的 FAT 用於早期版本的 Windows 操作系統,包括 Windows 95、Windows 98 和 Windows Millennium Edition。FAT32 不具有 NTFS 提供的安全性, 因此如果您的計算機上有 FAT32 分區或卷,則訪問您的計算機的任何用戶都可以讀取上面的文件。FAT32 還有大小限制。您 不能在此 Windows 版本中中敏創建大於 32GB 的 FAT32 分區,也不能在 FAT32 分區上存儲大於 4GB 的文件。
使用 FAT32 的主要賣逗枝原因是計算機有時需要運行 Windows 95、Windows 98 或 Windows Millennium Edition,有時又需要運行此 Windows 版本,這稱為多重引導配置。如果是這種情況,則需要在 FAT32 或 FAT 分區上安裝早期版本的操作系統並確保它是主分區(可以駐留操作系統的分區)。使用這些早期的 Windows 版本時,需要訪問的其他任何分區也必須使用 FAT32 格式化。這些早期 的 Windows 版本可以訪問網路上的 NTFS 分區或卷,但不能訪問計算機上的 NTFS 分區或卷。
此 Windows 版本為 vista home premium
來源:Windows幫助與支持
2、第一個區別:WinZip 只有英文版+漢化包的,而且安裝程序體積較大
WinRAR 則有官方的簡體中文版,安裝程序體積較小(還不到 1MB)
第二個區別:WinZip 支持的壓縮包格式雖然很多,但都已經過時了,而且也沒有新的特性
WinRAR 支持的壓縮包格式也不少,但都是現在最流行的,支持的格式也在增加
第三個區別:WinZip 壓縮文件只能壓縮成 ZIP 格式,而且壓縮率較低,速度較慢
WinRAR 卻兼容 Zip 格式,而且有其他的擴展壓縮方法,提高了壓縮率
『貳』 linux文件系統特點
Linux之所以能在嵌人式系統領域取得如此輝煌的成績,與其自身的優良特性是分不開的。與其他操作系統相比,Linux具有以下一系列顯著的特點。
1.模塊化程度高
Linux的內核設計非常精巧,分成進程調度、內存管理、進程間通信、虛擬文件系統和網路介面五大部分;其獨特的模塊機制可根據用戶的需要,實時地將某些模塊插入或從內核中移走,使得Linux系統內核可以裁剪得非常小巧,很適合於嵌入式系統的需要。
2.源碼公開
由於Linux系統的開發從一開始就與GNU項目緊密地結合起來,所以它的大多數組成部分都直接來自GNU項目。任何人、任何組織只要遵守GPL條款,就可以自由使用Linux 源代碼,為用戶提供了最大限度的自由度。這一點也正投嵌入式系統所好,因為嵌入式系統應用千差萬別,設計者往往需要針對具體的應用對源碼進行修改和優化,所以是否能獲得源代碼 對於嵌入式系統的開發是至關重要的。加之Linux的軟體資源十分豐富,每種通用程序在Linux上幾乎都可以找到,並且數量還在不斷增加。這一切就使設計者在其基礎之上進行二次開發變得非常容易。另外,由於Linux源代碼公開,也使用戶不用擔心有「後閘」等安全隱患。
同時,源碼開放給各教育機構提供極大的方便,從而也促進了Linux的學習、推廣和應用。
3.廣泛的硬體支持
Linux能支持x86、ARM、MIPS、ALPHA和PowerPC等多種體系結構的微處理器。目前已成功地移植到數十種硬體平台,幾乎能運行在所有流行的處理器上。
由於世界范圍內有眾多開發者在為Linux的擴充貢獻力量,所以Linux有著異常豐富的驅動程序資源,支持各種主流硬體設各和最新的硬體技術,甚至可在沒有存儲管理單元MMU 的處理器上運行,這些都進一步促進了Linux在嵌入式系統中的應用。
4.安全性及可靠性好
內核高效穩定。Linux內核的高效和穩定已在各個領域內得到了大量事實的驗證。
Linux中大量網路管理、網路服務等方面的功能,可使用戶很方便地建立高效穩定的防火牆、路由器、工作站、伺服器等。為提高安全性,它還提供了大量的網路管理軟體、網路分析軟體和網路安全軟體等。
5.具有優秀的開發工具
開發嵌入式系統的關鍵是需要有一套完善的開發和調試工具。傳統的嵌入式開發調試工具是在線模擬器(In Circuit Emulator,ICE),它通過取代目標板的微處理器,給目標程序提供一個完整的模擬環境,從而使開發者能非常清楚地了解到程序在目標板上的工作狀態,便於監視和調試程序。在線模擬器的價格非常高,而且只適合做非常底層的調試。如果使用的是嵌人式Linux,一旦軟硬體能支持正常的串口功能,即使不用在線模擬器,也可以很好地進行開發和調試工作,從而節省了一筆不小的開發費用。嵌入式Linux為開發者提供了一套完整的工具鏈(Tool Chain),能夠很方便地實現從操作系統到應用軟體各個級別的調試。
6.有很好的網路支持利文件系統支持
Linux從誕生之日起就與Internet密不可分,支持各種標準的Internet網路協議,並且很容易移植到嵌入式系統當中。目前,Linux幾乎支持所有主流的網路硬體、網路協議和文件系統,因此它是NFS的一個很好的平台。
另一方面,由於Linux有很好的文件系統支持(例如,它支持Ext2、FAT32、romfs等文件系統),是數據各份、同步和復制的良好平台,這些都為開發嵌入式系統應用打下了堅實的基礎。
7.與UNIX完全兼容
目前,在Linux中所包含的工具和實用程序,可以完成UNIX的所有主要功能。
但由於Linux不是為實時而設計的,因而這就成了Linux在實時系統中應用的最大遺憾。不過,目前有眾多的自由軟體愛好者正在為此進行不懈的努力,也取得了諸多成果
『叄』 ipod touch文件系統中哪些是是裝『其他』的求大師解答
包括你越獄後下跡蠢緩載的第三方軟體檔譽、插件姿模。和你在平常使用中產生的緩存文件還有在同步過程中因傳輸錯誤導致文件損壞的音頻、視頻、圖片等文件。
『肆』 Mac磁碟存儲空間里的「其他」里是什麼東西啊
Mac磁碟存儲空間里的「其他」不能被系統識別為音頻,圖片,照片,應用程序和備份的所有其他文件,都歸類為其他。
mac磁碟HFS+、FAT32以及exFAT。HFS+:
HFS+即Hierarchical File System Plus的縮寫,名為分層文件系統,這也是mac系統獨特的磁碟文件格式,同時我們也可在只讀媒體如CD-ROM上見到。對於保障系統安全HFS+有著不容小覷的作用,遺憾的是,它並不支持Windows等其他操作系統。
(4)文件系統是其他擴展閱讀:
macOS操作系統界面非常獨特,突出了形象的圖標和人機對話(圖形化的人機對話界面最初來自施樂公司的Palo Alto研究中心,蘋果借鑒了其成果開發了自己的圖形化界面,後來又被微軟的Windows所借鑒並在Windows中廣泛應用)。
蘋果公司能夠根據自己的技術標准生產電腦、自主開發相對應的操作系統,可見它的技術和實力非同一般,打個比方,蘋果公司就像是Dell和微軟的聯合體,在軟硬體方面「才貌雙全」。
『伍』 Linux文件系統的特點
類似於 Windows下的C、D、E等各個盤,Linux系統也可以將磁碟、Flash等存儲設備劃分為若干個分區,在不同分區存放不同類別的文件。與Windows的C盤類似,Linux一樣要在一個分區上存放系統啟動所必需的文件,比如內核映象文件(在嵌入式系統中,內核一般單獨存放在一個分區中)內核啟動後運行的第一-個程序( init)給用戶提供操作界面的 shell程序、應用程序所依賴的庫等。這些必需、基本的文件早氏合稱為根文件系統,它們存放在一個分區中。Linux 系統啟動後首先掛接這個分區,稱為掛接( mount)根文件系統。其他分梁睜數區上所有目錄、文件的集合,也稱為文件系統。Linux 中並沒有C、D、E等盤符的概念,它以樹狀結構管理所有目錄、文件,其他分區掛接在某個目錄上,這個目錄被稱為掛接點或安裝點(mount point),然後就可以通過這個目錄來訪問這個分區上的文件了。比如根文件系統被掛接在根目錄「I」上後,在根目錄下就有根文件系統的各個目錄、文件:/bin、/sbin、/mnt等;再將其他分區掛接到/mnt目錄上,/mnt目錄下就有這個分區.的各個目錄、文件。在一個分區上存儲文件時,需要遵循一定的格式,這種格式稱為文橡首件系統類型,比如fat16、fat32、ntfs、ext2、ext3、jffs2、yaffs 等。除這些擁有實實在在的存儲分區的文件系統類型外,Linux還有幾種虛擬的文件系統類型,比如proc、sysfs 等,它們的文件並不存儲在實際的設備上,而是在訪問它們時由內核臨時生成。比如 proc文件系統下的uptime文件,讀取它時可以得到兩個時間值(用來表示系統啟動後運行的秒數、空閑的秒數),每次讀取時都由內核即刻生成,每次讀取結果都不一樣。「文件系統類型」常被簡稱為「文件系統」,比如「硬碟第二個分區上的文件系統是EXT2」指的就是文件系統類型。所以「文件系統」這個術語,有時候指的是分區上的文件集合,有時候指的是文件系統類型,需要根據語境分辨,在閱讀各類文獻時需要注意這點。
『陸』 為什麼C盤文件系統是FAT32格式其他磁碟是NTFS格式
樓主,你好:(我用最簡單、最直接的李芹帶語言首滾來回答你)
1、不管是FAT32還是NTFS都是硬碟的一種分區格式,你可以理解為是硬碟的一種協議、合同。它規定了硬碟的一些功能。
2、FAT32是原先老的硬碟分區格式(只是相對NTFS分區格式來講),但是也是兼容性最好的硬碟格式,所以現在的U盤都是FAT32格式。但是缺點是無法存放超過單個4GB的文件(比如大小為4.2GB的一個壓縮包,就不能存放到分區格式為FAT32的硬碟中)
3、NTFS是最新的硬碟分區格式,也是符合現時代硬碟使用的一種格式哪蘆,它可以存放單個超過4GB的文件,比如說現在一個高清電影有的高達10GB大小,那麼它就只能存放到NTFS分區格式的硬碟中。
4、一般裝系統的時候為了兼容性考慮,就會把C盤分區為FAT32格式,但是現在兼容性已經不是問題,你可以自己改為NTFS格式的,只需要輸入幾個命令即可。不會損害任何數據,絕對安全。當然C盤也可以繼續使用FAT32格式,因為我們一般存放東西也不再C盤的啊。
5、C盤FAT32轉NTFS方法:
在運行中輸入"cmd"(不加引號),然後輸入"convert c: /fs:ntfs"(不加引號),然後再按提示操作就行了
專業回答,敬請採納!
『柒』 程序員必備知識(操作系統5-文件系統)
本篇與之前的第三篇的內存管理知識點有相似的地方
對於運行的進程來說,內存就像一個紙箱子, 僅僅是一個暫存數據的地方, 而且空間有限。如果我們想要進程結束之後,數據依然能夠保存下來,就不能只保存在內存里,而是應該保存在 外部存儲 中。就像圖書館這種地方,不僅空間大,而且能夠永久保存。
我們最常用的外部存儲就是 硬碟 ,數據是以文件的形式保存在硬碟上的。為了管理這些文件,我們在規劃文件系統的時候,需要考慮到以下幾點。
第一點,文件系統要有嚴格的組織形式,使得文件能夠 以塊為單位進行存儲 。這就像圖書館里,我們會給設置一排排書架,然後再把書架分成一個個小格子,有的項目存放的資料非常多,一個格子放不下,就需要多個格子來進行存放。我們把這個區域稱為存放原始資料的 倉庫區 。
第二點,文件系統中也要有 索引區 ,用來方便查找一個文件分成的多個塊都存放在了什麼位置。這就好比,圖書館的書太多了,為了方便查找,我們需要專門設置一排書架,這裡面會寫清楚整個檔案庫有哪些資料,資料在哪個架子的哪個格子上。這樣找資料的時候就不用跑遍整個檔案庫,在這個書架上找到後,直奔目標書架就可以了。
第三點,如果文件系統中有的文件是熱點文件,近期經常被讀取和寫入,文件系統應該有 緩存層 。這就相當於圖書館裡面的熱門圖書區,這裡面的書都是暢銷書或者是常常被借還的圖書。因為借還的次數比較多,那就沒必要每次有人還了之後,還放回遙遠的貨架,我們可以專門開辟一個區域, 放置這些借還頻次高的圖書。這樣借還的效率就會提高。
第四點,文件應該用 文件夾 的形式組織起來,方便管理和查詢。這就像在圖書館裡面,你可以給這些資料分門別類,比如分成計算機類.文學類.歷史類等等。這樣你也容易管理,項目組借閱的時候只要在某個類別中去找就可以了。
在文件系統中,每個文件都有一個名字,這樣我們訪問一個文件,希望通過它的名字就可以找到。文件名就是一個普通的文本。 當然文件名會經常沖突,不同用戶取相同的名字的情況還是會經常出現的。
要想把很多的文件有序地組織起來,我們就需要把它們成為 目錄 或者文件夾。這樣,一個文件夾里可以包含文件夾,也可以包含文件,這樣就形成了一種 樹形結構 。而我們可以將不同的用戶放在不同的用戶目錄下,就可以一定程度上避免了命名的沖突問題。
第五點,Linux 內核要在自己的內存裡面維護一套數據結構,來保存哪些文件被哪些進程打開和使用 。這就好比,圖書館里會有個圖書管理系統,記錄哪些書被借閱了,被誰借閱了,借閱了多久,什麼時候歸還。
文件系統是操作系統中負責管理持久數據的子系統,說簡單點,就是負責把用戶的文件存到磁碟硬體中,因為即使計算機斷電了,磁碟里的數據並不會丟失,所以可以持久化的保存文件。
文件系統的基本數據單位是 文件 ,它的目的是對磁碟上的文件進行組織管理,那組織的方式不同,就會形成不同的文件系統。
Linux最經典的一句話是:「一切皆文件」,不僅普通的文件和目錄,就連塊設備、管道、socket 等,也都是統一交給文件系統管理的。
Linux文件系統會為每個文件分配兩個數據結構: 索引節點(index node) 和 目錄項(directory entry) ,它們主要用來記錄文件的元信息和目錄層次結構。
●索引節點,也就是inode, 用來記錄文件的元信息,比如inode編號、文件大小訪問許可權、創建時間、修改時間、 數據在磁碟的位置 等等。 索引節點是文件的唯一標識 ,它們之間一一對應, 也同樣都會被 存儲在硬碟 中,所以索引節點同樣佔用磁碟空間。
●目錄項,也就是dentry, 用來記錄文件的名字、索引節點指針以及與其他目錄項的層級關聯關系。多個目錄項關聯起來,就會形成 目錄結構 ,但它與索引節點不同的是,目錄項是由內核維護的一個數據結構,不存放於磁碟,而是 緩存在內存 。
由於索引節點唯一標識一個文件,而目錄項記錄著文件的名,所以目錄項和索引節點的關系是多對一,也就是說,一個文件可以有多個別字。比如,硬鏈接的實現就是多個目錄項中的索引節點指向同一個文件。
注意,目錄也是文件,也是用索引節點唯一標識,和普通文件不同的是,普通文件在磁碟裡面保存的是文件數據,而目錄文件在磁碟裡面保存子目錄或文件。
(PS:目錄項和目錄不是一個東西!你也不是一個東西(^_=), 雖然名字很相近,但目錄是個文件。持久化存儲在磁碟,而目錄項是內核一個數據結構,緩存在內存。
如果查詢目錄頻繁從磁碟讀,效率會很低,所以內核會把已經讀過的目錄用目錄項這個數據結構緩存在內存,下次再次讀到相同的目錄時,只需從內存讀就可以,大大提高了 文件系統的效率。
目錄項這個數據結構不只是表示目錄,也是可以表示文件的。)
磁碟讀寫的最小單位是 扇區 ,扇區的大小隻有512B大小,很明顯,如果每次讀寫都以這么小為單位,那這讀寫的效率會非常低。
所以,文件系統把多個扇區組成了一個 邏輯塊 ,每次讀寫的最小單位就是邏輯塊(數據塊) , Linux中的邏輯塊大小為4KB,也就是一次性讀寫 8個扇區,這將大大提高了磁碟的讀寫的效率。
以上就是索引節點、目錄項以及文件數據的關系,下面這個圖就很好的展示了它們之間的關系:
索引節點是存儲在硬碟上的數據,那麼為了加速文件的訪問,通常會把索引節點載入到內存中。
另外,磁碟進行格式化的時候,會被分成三個存儲區域,分別是超級塊、索引節點區和數據塊區。
●超級塊,用來存儲文件系統的詳細信息,比如塊個數、塊大小、空閑塊等等。
●索引節點區,用來存儲索引節點;
●數據塊區,用來存儲文件或目錄數據;
我們不可能把超級塊和索引節點區全部載入到內存,這樣內存肯定撐不住,所以只有當需要使用的時候,才將其載入進內存,它們載入進內存的時機是不同的.
●超級塊:當文件系統掛載時進入內存;
●索引節點區:當文件被訪問時進入內存;
文件系統的種類眾多,而操作系統希望 對用戶提供一個統一的介面 ,於是在用戶層與文件系統層引入了中間層,這個中間層就稱為 虛擬文件系統(Virtual File System, VFS) 。
VFS定義了一組所有文件系統都支持的數據結構和標准介面,這樣程序員不需要了解文件系統的工作原理,只需要了解VFS提供的統一介面即可。
在Linux文件系統中,用戶空間、系統調用、虛擬機文件系統、緩存、文件系統以及存儲之間的關系如下圖:
Linux支持的文件系統也不少,根據存儲位置的不同,可以把文件系統分為三類:
●磁碟的文件系統,它是直接把數據存儲在磁碟中,比如Ext 2/3/4. XFS 等都是這類文件系統。
●內存的文件系統,這類文件系統的數據不是存儲在硬碟的,而是佔用內存空間,我們經常用到的/proc 和/sys文件系統都屬於這一類,讀寫這類文件,實際上是讀寫內核中相關的數據。
●網路的文件系統,用來訪問其他計算機主機數據的文件系統,比如NFS. SMB等等。
文件系統首先要先掛載到某個目錄才可以正常使用,比如Linux系統在啟動時,會把文件系統掛載到根目錄。
在操作系統的輔助之下,磁碟中的數據在計算機中都會呈現為易讀的形式,並且我們不需要關心數據到底是如何存放在磁碟中,存放在磁碟的哪個地方等等問題,這些全部都是由操作系統完成的。
那麼,文件數據在磁碟中究竟是怎麼樣的呢?我們來一探究竟!
磁碟中的存儲單元會被劃分為一個個的「 塊 」,也被稱為 扇區 ,扇區的大小一般都為512byte.這說明即使一塊數據不足512byte,那麼它也要佔用512byte的磁碟空間。
而幾乎所有的文件系統都會把文件分割成固定大小的塊來存儲,通常一個塊的大小為4K。如果磁碟中的扇區為512byte,而文件系統的塊大小為4K,那麼文件系統的存儲單元就為8個扇區。這也是前面提到的一個問題,文件大小和佔用空間之間有什麼區別?文件大小是文件實際的大小,而佔用空間則是因為即使它的實際大小沒有達到那麼大,但是這部分空間實際也被佔用,其他文件數據無法使用這部分的空間。所以我們 寫入1byte的數據到文本中,但是它佔用的空間也會是4K。
這里要注意在Windows下的NTFS文件系統中,如果一開始文件數據小於 1K,那麼則不會分配磁碟塊來存儲,而是存在一個文件表中。但是一旦文件數據大於1K,那麼不管以後文件的大小,都會分配以4K為單位的磁碟空間來存儲。
與內存管理一樣,為了方便對磁碟的管理,文件的邏輯地址也被分為一個個的文件塊。於是文件的邏輯地址就是(邏輯塊號,塊內地址)。用戶通過邏輯地址來操作文件,操作系統負責完成邏輯地址與物理地址的映射。
不同的文件系統為文件分配磁碟空間會有不同的方式,這些方式各自都有優缺點。
連續分配要求每個文件在磁碟上有一組連續的塊,該分配方式較為簡單。
通過上圖可以看到,文件的邏輯塊號的順序是與物理塊號相同的,這樣就可以實現隨機存取了,只要知道了第一個邏輯塊的物理地址, 那麼就可以快速訪問到其他邏輯塊的物理地址。那麼操作系統如何完成邏輯塊與物理塊之間的映射呢?實際上,文件都是存放在目錄下的,而目錄是一種有結構文件, 所以在文件目錄的記錄中會存放目錄下所有文件的信息,每一個文件或者目錄都是一個記錄。 而這些信息就包括文件的起始塊號和佔有塊號的數量。
那麼操作系統如何完成邏輯塊與物理塊之間的映射呢? (邏輯塊號, 塊內地址) -> (物理塊號, 塊內地址),只需要知道邏輯塊號對應的物理塊號即可,塊內地址不變。
用戶訪問一個文件的內容,操作系統通過文件的標識符找到目錄項FCB, 物理塊號=起始塊號+邏輯塊號。 當然,還需要檢查邏輯塊號是否合法,是否超過長度等。因為可以根據邏輯塊號直接算出物理塊號,所以連續分配支持 順序訪問和隨機訪問 。
因為讀/寫文件是需要移動磁頭的,如果訪問兩個相隔很遠的磁碟塊,移動磁頭的時間就會變長。使用連續分配來作為文件的分配方式,會使文件的磁碟塊相鄰,所以文件的讀/寫速度最快。
連續空間存放的方式雖然讀寫效率高,但是有 磁碟空間碎片 和 文件長度不易擴展 的缺陷。
如下圖,如果文件B被刪除,磁碟上就留下一塊空缺,這時,如果新來的文件小於其中的一個空缺,我們就可以將其放在相應空缺里。但如果該文件的大小大於所
有的空缺,但卻小於空缺大小之和,則雖然磁碟上有足夠的空缺,但該文件還是不能存放。當然了,我們可以通過將現有文件進行挪動來騰出空間以容納新的文件,但是這個在磁碟挪動文件是非常耗時,所以這種方式不太現實。
另外一個缺陷是文件長度擴展不方便,例如上圖中的文件A要想擴大一下,需要更多的磁碟空間,唯一的辦法就只能是挪動的方式,前面也說了,這種方式效率是非常低的。
那麼有沒有更好的方式來解決上面的問題呢?答案當然有,既然連續空間存放的方式不太行,那麼我們就改變存放的方式,使用非連續空間存放方式來解決這些缺陷。
非連續空間存放方式分為 鏈表方式 和 索引方式 。
鏈式分配採取離散分配的方式,可以為文件分配離散的磁碟塊。它有兩種分配方式:顯示鏈接和隱式鏈接。
隱式鏈接是只目錄項中只會記錄文件所佔磁碟塊中的第一塊的地址和最後一塊磁碟塊的地址, 然後通過在每一個磁碟塊中存放一個指向下一 磁碟塊的指針, 從而可以根據指針找到下一塊磁碟塊。如果需要分配新的磁碟塊,則使用最後一塊磁碟塊中的指針指向新的磁碟塊,然後修改新的磁碟塊為最後的磁碟塊。
我們來思考一個問題, 採用隱式鏈接如何將實現邏輯塊號轉換為物理塊號呢?
用戶給出需要訪問的邏輯塊號i,操作系統需要找到所需訪問文件的目錄項FCB.從目錄項中可以知道文件的起始塊號,然後將邏輯塊號0的數據讀入內存,由此知道1號邏輯塊的物理塊號,然後再讀入1號邏輯塊的數據進內存,此次類推,最終可以找到用戶所需訪問的邏輯塊號i。訪問邏輯塊號i,總共需要i+ 1次磁碟1/0操作。
得出結論: 隱式鏈接分配只能順序訪問,不支持隨機訪問,查找效率低 。
我們來思考另外一個問題,採用隱式鏈接是否方便文件拓展?
我們知道目錄項中存有結束塊號的物理地址,所以我們如果要拓展文件,只需要將新分配的磁碟塊掛載到結束塊號的後面即可,修改結束塊號的指針指向新分配的磁碟塊,然後修改目錄項。
得出結論: 隱式鏈接分配很方便文件拓展。所有空閑磁碟塊都可以被利用到,無碎片問題,存儲利用率高。
顯示鏈接是把用於鏈接各個物理塊的指針顯式地存放在一張表中,該表稱為文件分配表(FAT, File Allocation Table)。
由於查找記錄的過程是在內存中進行的,因而不僅顯著地 提高了檢索速度 ,而且 大大減少了訪問磁碟的次數 。但也正是整個表都存放在內存中的關系,它的主要的缺點是 不適 用於大磁碟 。
比如,對於200GB的磁碟和1KB大小的塊,這張表需要有2億項,每一項對應於這2億個磁碟塊中的一個塊,每項如果需要4個位元組,那這張表要佔用800MB內存,很顯然FAT方案對於大磁碟而言不太合適。
一直都在,加油!(*゜Д゜)σ凸←自爆按鈕
鏈表的方式解決了連續分配的磁碟碎片和文件動態打展的問題,但是不能有效支持直接訪問(FAT除外) ,索引的方式可以解決這個問題。
索引的實現是為每個文件創建一個 索引數據塊 ,裡面存放的 是指向文件數據塊的指針列表 ,說白了就像書的目錄一樣,要找哪個章節的內容,看目錄查就可以。
另外, 文件頭需要包含指向索引數據塊的指針 ,這樣就可以通過文件頭知道索引數據塊的位置,再通過索弓|數據塊里的索引信息找到對應的數據塊。
創建文件時,索引塊的所有指針都設為空。當首次寫入第i塊時,先從空閑空間中取得一個塊, 再將其地址寫到索引塊的第i個條目。
索引的方式優點在於:
●文件的創建、增大、縮小很方便;
●不會有碎片的問題;
●支持順序讀寫和隨機讀寫;
由於索引數據也是存放在磁碟塊的,如果文件很小,明明只需一塊就可以存放的下,但還是需要額外分配一塊來存放索引數據,所以缺陷之一就是存儲索引帶來的開銷。
如果文件很大,大到一個索引數據塊放不下索引信息,這時又要如何處理大文件的存放呢?我們可以通過組合的方式,來處理大文件的存儲。
先來看看 鏈表+索引 的組合,這種組合稱為 鏈式索引塊 ,它的實現方式是在 索引數據塊留出一個存放下一個索引數據塊的指針 ,於是當一個索引數據塊的索引信息用完了,就可以通過指針的方式,找到下一個索引數據塊的信息。那這種方式也會出現前面提到的鏈表方式的問題,萬一某個指針損壞了,後面的數據也就會無法讀取了。
還有另外一種組合方式是 索引+索引 的方式,這種組合稱為多級索引塊,實現方式是通過一個索引塊來存放多個索引數據塊,一層套一層索引, 像極了俄羅斯套娃是吧๑乛◡乛๑
前面說到的文件的存儲是針對已經被佔用的數據塊組織和管理,接下來的問題是,如果我要保存一個數據塊, 我應該放在硬碟上的哪個位置呢?難道需要將所有的塊掃描一遍,找個空的地方隨便放嗎?
那這種方式效率就太低了,所以針對磁碟的空閑空間也是要引入管理的機制,接下來介紹幾種常見的方法:
●空閑表法
●空閑鏈表法
●點陣圖法
空閑表法
空閑表法就是為所有空閑空間建立一張表,表內容包括空閑區的第一個塊號和該空閑區的塊個數,注意,這個方式是連續分配的。如下圖:
當請求分配磁碟空間時,系統依次掃描空閑表裡的內容,直到找到一個合適的空閑區域為止。當用戶撤銷一個文件時,系統回收文件空間。這時,也需順序掃描空閑表,尋找一個空閑表條目並將釋放空間的第一個物理塊號及它佔用的塊數填到這個條目中。
這種方法僅當有少量的空閑區時才有較好的效果。因為,如果存儲空間中有著大量的小的空閑區,則空閑表變得很大,這樣查詢效率會很低。另外,這種分配技術適用於建立連續文件。
空閑鏈表法
我們也可以使用鏈表的方式來管理空閑空間,每一個空閑塊里有一個指針指向下一個空閑塊,這樣也能很方便的找到空閑塊並管理起來。如下圖:
當創建文件需要一塊或幾塊時,就從鏈頭上依次取下一塊或幾塊。反之,當回收空間時,把這些空閑塊依次接到鏈頭上。
這種技術只要在主存中保存一個指針, 令它指向第一個空閑塊。其特點是簡單,但不能隨機訪問,工作效率低,因為每當在鏈上增加或移動空閑塊時需要做很多1/0操作,同時數據塊的指針消耗了一定的存儲空間。
空閑表法和空閑鏈表法都不適合用於大型文件系統,因為這會使空閑表或空閑鏈表太大。
點陣圖法
點陣圖是利用二進制的一位來表示磁碟中一個盤塊的使用情況,磁碟上所有的盤塊都有一個二進制位與之對應。
當值為0時,表示對應的盤塊空閑,值為1時,表示對應的盤塊已分配。它形式如下:
在Linux文件系統就採用了點陣圖的方式來管理空閑空間,不僅用於數據空閑塊的管理,還用於inode空閑塊的管理,因為inode也是存儲在磁碟的,自然也要有對其管理。
前面提到Linux是用點陣圖的方式管理空閑空間,用戶在創建一個新文件時, Linux 內核會通過inode的點陣圖找到空閑可用的inode,並進行分配。要存儲數據時,會通過塊的點陣圖找到空閑的塊,並分配,但仔細計算一下還是有問題的。
數據塊的點陣圖是放在磁碟塊里的,假設是放在一個塊里,一個塊4K,每位表示一個數據塊,共可以表示4 * 1024 * 8 = 2^15個空閑塊,由於1個數據塊是4K大小,那麼最大可以表示的空間為2^15 * 4 * 1024 = 2^27個byte,也就是128M。
也就是說按照上面的結構,如果採用(一個塊的點陣圖+ 一系列的塊),外加一(個塊的inode的點陣圖+一系列的inode)的結構能表示的最大空間也就128M,
這太少了,現在很多文件都比這個大。
在Linux文件系統,把這個結構稱為一個 塊組 ,那麼有N多的塊組,就能夠表示N大的文件。
最終,整個文件系統格式就是下面這個樣子。
最前面的第一個塊是引導塊,在系統啟動時用於啟用引導,接著後面就是一個一個連續的塊組了,塊組的內容如下:
● 超級塊 ,包含的是文件系統的重要信息,比如inode總個數、塊總個數、每個塊組的inode個數、每個塊組的塊個數等等。
● 塊組描述符 ,包含文件系統中各個塊組的狀態,比如塊組中空閑塊和inode的數目等,每個塊組都包含了文件系統中「所有塊組的組描述符信息」。
● 數據點陣圖和inode點陣圖 ,用於表示對應的數據塊或inode是空閑的,還是被使用中。
● inode 列表 ,包含了塊組中所有的inode, inode 用於保存文件系統中與各個文件和目錄相關的所有元數據。
● 數據塊 ,包含文件的有用數據。
你可以會發現每個塊組里有很多重復的信息,比如 超級塊和塊組描述符表,這兩個都是全局信息,而且非常的重要 ,這么做是有兩個原因:
●如果系統崩潰破壞了超級塊或塊組描述符,有關文件系統結構和內容的所有信息都會丟失。如果有冗餘的副本,該信息是可能恢復的。
●通過使文件和管理數據盡可能接近,減少了磁頭尋道和旋轉,這可以提高文件系統的性能。
不過,Ext2 的後續版本採用了稀疏技術。該做法是,超級塊和塊組描述符表不再存儲到文件系統的每個塊組中,而是只寫入到塊組0、塊組1和其他ID可以表示為3、5、7的冪的塊組中。
在前面,我們知道了一個普通文件是如何存儲的,但還有一個特殊的文件,經常用到的目錄,它是如何保存的呢?
基於Linux 一切切皆文件的設計思想,目錄其實也是個文件,你甚至可以通過vim打開它,它也有inode, inode 裡面也是指向一些塊。
和普通文件不同的是, 普通文件的塊裡面保存的是文件數據,而目錄文件的塊裡面保存的是目錄裡面一項一項的文件信息 。
在目錄文件的塊中,最簡單的保存格式就是 列表 ,就是一項一項地將目錄下的文件信息(如文件名、文件inode.文件類型等)列在表裡。
列表中每一項就代表該目錄下的文件的文件名和對應的inode,通過這個inode,就可以找到真正的文件。
通常,第一項是「則」,表示當前目錄,第二項是.,表示上一級目錄, 接下來就是一項一項的文件名和inode。
如果一個目錄有超級多的文件,我們要想在這個目錄下找文件,按照列表一項一項的找,效率就不高了。
於是,保存目錄的格式改成 哈希表 ,對文件名進行哈希計算,把哈希值保存起來,如果我們要查找一個目錄下面的文件名,可以通過名稱取哈希。如果哈希能夠匹配上,就說明這個文件的信息在相應的塊裡面。
Linux系統的ext文件系統就是採用了哈希表,來保存目錄的內容,這種方法的優點是查找非常迅速,插入和刪除也較簡單,不過需要一些預備措施來避免哈希沖突。
目錄查詢是通過在磁碟上反復搜索完成,需要不斷地進行/0操作,開銷較大。所以,為了減少/0操作,把當前使用的文件目錄緩存在內存,以後要使用該文件時只要在內存中操作,從而降低了磁碟操作次數,提高了文件系統的訪問速度。
感謝您的閱讀,希望您能攝取到知識!加油!沖沖沖!(發現光,追隨光,成為光,散發光!)我是程序員耶耶!有緣再見。<-biubiu-⊂(`ω´∩)
『捌』 文件系統有什麼區別FAT32,NTFS~~
FAT32和NTFS的區別:
1、什麼是NTFS-新(N)技術(T)文件(F)系統(S)?
想要了解NTFS,我們首先應該認識一下FAT。FAT(FileAllocationTable)是「文件分配表」的意思。對我們來說,它的意義在於對硬碟分區的管理。FAT16、FAT32、NTFS是目前最常
見的三種文件系統。
FAT16:我們以前用的DOS、Windows95都使用FAT16文件系統,現在常用的Windows98/2000/XP等系統均支持FAT16文件系統。它最大可以管理大到2GB的分區,但每個分區最多隻能有65525個簇(簇是磁碟空?br/>淶吶渲玫ノ唬�K孀龐才袒蚍智�萘康腦齟螅�扛齟廝�嫉目占浣�嚼叢醬螅�佣�賈掠才炭占淶睦朔選?
FAT32:隨著大容量硬碟的出現,從Windows98開始,FAT32開始流行。它是FAT16的增強版本,可以支持大到2TB(2048G的分區。FAT32使用的簇比FAT16小,從
而有效地節約了硬碟空間。
NTFS:微軟WindowsNT內核的系列操作系統支持的、一個特別為網路和磁碟配額、文件加密等管理安全特性設計的磁碟格式。隨著以NT
為內核的Windows2000/XP的普及,很多個人用戶開始用到了NTFS。NTFS也是以簇為單位來存儲數據文件,但NTFS中簇的大小並不依賴於磁
盤或分區的大小。簇尺寸的縮小不但降低了磁碟空間的浪費,還減少了產生磁碟碎片的可能。NTFS支持文件加密管
理功能,可為用戶提供更高層次的安全保證。
2、什麼系統可以支持NTFS文件系統?
只有WindowsNT/2000/XP才能識別NTFS系統,Windows9x/Me以及DOS等操作系統都不能支持、識別NTFS格式的磁碟。由於DOS系統不支持NTFS系統,所以最好不要將C:盤製作
為NTFS系統,這樣在系統崩潰後便於在DOS系統下修復。
NTFS與操作系統支持情況如下:
FAT16 windows95/98/me/nt/2000/xpunix,linux,dos
FAT32 windows95/98/me/2000/xp
NTFS windowsnt/2000/xp
3、我們需要NTFS嗎?
Windows2000/XP在文件系統上是向下兼容的,它可以很好地支持FAT16/FAT32和NTFS,其中NTFS是WindowsNT/2000/XP專用格式,它能更充分有效地利用磁碟空間、支持文件級壓縮、具備更好的文件安全性。如果你只安裝Windows2000/XP,建議選擇NTFS文件系統。如果多重引導系統,則系統盤(C盤)必須為FAT16或FAT32,否則不支持多重引導。?br/>比唬�淥�智�奈募�低晨梢暈狽TFS。
4、如何將FAT分區轉換為NTFS?
Windows2000/XP提供了分區格式轉換工具「Convert.exe」。Convert.exe是Windows2000附帶的一個DOS命令行程序,通過這個工具可以直接在不破壞FAT文件系統的前提下,將FAT轉換為NTFS。它的?br/>梅ê薌虻ィ�仍赬indows2000環境下切換到DOS命令行窗口,在提示符下鍵入:D:\>convert需要轉換的盤符/FS:NTFS。如系統E盤原來為FAT16/32,現在需要轉換為NTFS,可使用如下格式:D:\>converte:/FS:NTFS。所有的轉換將在系統重新啟動後完成。
此外,你還可以使用專門的轉換工具,如著名的硬碟無損分區工具PowerquestPartitionMagic7.0,軟體下載頁面[url]http://soft.km169.net/soft/html/196...[/url]中選擇「ConvertPartition」按鈕,或者是從界面菜單條「Operations」項下拉菜單中選擇「Convert」命令。激活該項功能界面。
在界面中選擇轉換輸出為「NTFS」,之後單擊「OK」按鈕返回程序主界面。單擊界面右下角的「Apply」添加設置?br/>4撕笙低郴嶂匭亂�計舳��⑼瓿煞智�袷降淖�徊僮鰲?
5、如何在NTFS格式分區下找回意外刪除丟失的文件?
你可以使用專門的軟體,如FinalDataforNTFS,或者是GetDataBackforNTFS1.04。這兩個軟體的文件恢復效果都不錯。本人推薦使用GetDataBackforFAT1.05/NTFS1.04(是2個軟體),下載地址[url]http://download-tipp.de/cgi-bin/suc...[/url]奈募�指椿乩礎?/a>
6、如果Windows2000/XP安裝在C盤(NTFS格式),當Windows崩潰時在DOS狀態下不能進入C盤,怎麼辦?
你可以使用Windows2000/XP的安裝光碟啟動來修復Windows,或者是製作Windows2000/XP的安裝啟動應急盤。注意:Windows2000的安裝盤製作程序在程序的安裝光碟中,而WindowsXP的應急盤製作是獨立提供的,需要從微軟的網站下載。
7、FinalDataforNTFS或GetDataBackforNTFS可以修復被意外格式化的硬碟嗎?
這兩個軟體都可以恢復格式化刪除的數據(低級格式化除外)。常規格式化刪除的只是數據信息,低級格式化則刪
除全部數據區,當硬碟技術還不像現在這樣發達的時候,磁碟表面很容易磨損。硬碟使用者對經常出現的讀錯誤,
往往採用低級格式化。修復被格式化的硬碟,只能將這個硬碟拆下來,安裝到其他的計算機中,之後執行文件修復
操作。FinalData甚至可以修復由CIH病毒破壞的硬碟。
8、Windows98(FAT系統)下如何直接讀寫NTFS文件系統
當電腦安裝有Windows98和Windows2000/XP兩個操作系統,如何在FAT系統下直接讀寫NTFS文件系統?雖然FAT系統可以轉換為NTFS系統,但是有時我們需要
在機器中同時安裝Windows98和Windows2000/XP。此時的麻煩就來了,由於Windows98不能讀取Windows2000的NTFS,那麼如何進行數據交換呢?實際上我們只需要使用一個小小的軟體NTFSforWindows98就可以讓Windows98輕松讀取、甚至寫入NTFS分區。首先,到該工具的下載網址[url]http://down.hothost.com/list.asp?id=514[/url]下載NTFSforWindows98 1.07版(能讀、寫!)。安裝結束後會出現一個配置界面,在該界面中的「NTFSSystemFiles」項中需要設置的是程序可以借用的Windows2000/XP系統的相關文件保存路徑。由於讀取NTFS文件系統必須使用到Windows2000/XP的一些系統文件,所以事先需要在Windows2000/XP下,將如下9個文件復制到FAT分區中的任意一個文件夾下,這些文件分別是:
NTFS.SYS:存謨凇磜innt〉system32driverstfs.sys
NTOSKRNL.EXE:存在於〈winnt〉
system32toskrnl.exe
AUTOCHK.EXE:存在於〈winnt〉
system32utochk.exe
NTDLL.DLL:存在於〈winnt〉system32tdll.dll
C_437.NLS:存在於〈winnt〉system32-437.nls
C_1252.NLS:存在於〈winnt〉system32-1252.nls
L_INTL.NLS:存在於〈winnt〉system32_intl.nls
(注意:WindowsXP的目錄是WINDOWS,而不是WINNT,如果你是全新或升級安裝的話)
在「DriveLetterAssignments」項中提供的設置是設置允許可以識別的NTFS分�譚��柚玫囊讕菘梢圓慰莢赬indows2000/XP下的盤符順序。如果單擊界面中的「Advanced」按鈕,在關聯界面中提供了針對設置的NTFS分區高級設置,其中包括設置為只讀屬性「Read-Only」、允許寫入「Write-Through」。對於檢查點間隔「CheckpointInterval」和寫回間隔「Writebacknterval」,使用程序提供的默認設置即可。到此設置完成,單擊OK按鈕保存設置並退出。重啟後就可以在Windows
98下訪問NTFS分區了!
9、如何在DOS系統下直接讀寫NTFS文件系統?
WinternalsSoftwareLP公司提供了工具軟體解決了這個問題。用一張MS-DOS啟動盤就可以作到以前不可能作到的事,修改,刪除,更新NTFS上的文件,實際NTFSDOSpro是在WindowsNT出問題時的一個修復工具。
10、在NTFS系統下,如何保護自己的文件、文件夾?
由於NTFS文件分區格式具有良好的安全性,如果你不希望自己在硬碟中的文件被其他人調用或查看,使用許可權控制方式加密是非常有效的方法。設置方法非常簡單:以系統管理員身份登錄,使用滑鼠右鍵單擊需要加密的文件夾,選擇「Properties」,切換到「Security」選項卡。在「Groupofusernames」項中設置允許訪問的用戶只有Administrator和自己。刪除其他的所有用戶。保存設置退出即可。此後,其他用戶將不能訪問該文件夾。使用這項功能需要注意的是:一定要保證只有你一個人知道Administrator密碼,並?br/>疑柚悶淥�沒Р荒蓯粲贏dministrator。此外,你還可以詳細的給每個用戶設置許可權,包括設置讀取許可權、寫入許可權、刪除許可權等,這樣使用起來就更加靈活。你還可以設置許可權,控制一個磁碟,或者磁碟分區只為自己使用,這樣其他人就不能看到你的任何東西了。
『玖』 什麼是文件系統
在搜索引擎上有很多朋友咨詢文件系統是指的相關信息,下面由小編為大家統一解答文件系統是指。
文件系統是操作系統用於明確存儲設備(常見的是磁碟,也有基於NAND Flash的固態硬碟)或分區上的文件的方法和數據結構;即在存儲設備上組織文件的方法。操作系統中負責管理和存儲文件信息的軟體機構稱為文件管理系統,簡稱文件系統。
還想搜其他與文件系統是指相關信息,請點擊下方更多的答案。