1. 程式人生 > >檔案系統學習

檔案系統學習

一、Linux檔案系統
目錄結構
樹形結構:倒立 —— 根目錄 /

二、根檔案系統概念
1. 是什麼
核心第一個掛載的檔案系統,包含Linux系統完整啟動所需的目錄結構和重要檔案
其它所有檔案系統進行掛載使用的載體
2.為什麼
Linux完整啟動的需要,進入使用者態操作環境:VFS設計
提供了良好強大的檔案系統擴充套件性

三、根檔案系統形式
1. 要求
根檔案系統能被核心找到並載入:儲存介質驅動、存在地址問題
格式能被核心識別:initrd/cramfs/…
包含基本的目錄結構與啟動程式
2. 結構
/bin 存放二進位制可執行命令的目錄
/dev 存放裝置檔案的目錄
/etc 存放系統管理和配置檔案的目錄
/home 使用者主目錄,比如使用者user的主目錄就是/home/user,可以用~user表示
/lib 存放動態連結共享庫的目錄
/sbin 存放系統管理員使用的管理程式的目錄
/tmp 公用的臨時檔案儲存點
/root 系統管理員的主目錄
/mnt 系統提供這個目錄是讓使用者臨時掛載其他的檔案系統。
/proc 虛擬檔案系統,可直接訪問這個目錄來獲取系統資訊。
/var 某些大檔案的溢位區
/usr 最龐大的目錄,要用到的應用程式和檔案幾乎都在這個目錄。

一般說來,只有/bin,/dev,/etc,/lib,/proc,/var,/usr這些需要的,而其他都是可選的。

Flash檔案系統:jffs/jffs2和yaffs/yaffs2

在嵌入式系統中進行資料讀寫時,為了保證可靠性,我們可以選擇哪些合適的檔案系統?

一、Flash快閃記憶體型別
非易失儲存器,可以對稱為塊的儲存器單元塊進行擦寫和再程式設計
任何flash器件的寫入操作只能在空或已擦除的單元內進行,在進行寫入操作之前必須先執行擦除

1. NOR Flash: 非易失記憶體
    應用:程式碼儲存介質
    特點:
        晶片內執行(XIP, eXecute In Place)
        低容量高成本: 1 - 16MB(常見)
        讀寫速度:讀取速度快,寫入速度慢
        塊最大擦寫次數:10W

2. NAND Flash:類似硬碟的塊裝置
    應用:資料儲存介質
    特點:
     極高的單元密度
      讀寫速度:寫入和擦除的速度很快
      高容量低成本:16 - 1024MB(常見)
      塊最大擦寫次數:100W

二、JFFS2
JFFS:1999
Journalling Flash File System, Version 2:2001-9-23,Linux 2.4.10
主要用於NOR Flash,可用於NAND Flash

1. 特性:
    掉電保護與損耗平衡
    垃圾回收機制
    CRC迴圈冗餘校驗機制
    掛載時間與記憶體消耗跟檔案系統的大小成正比:檔案系統越大,越慢,消耗越多 ————> 很差的擴充套件性
        掛載需要進行全盤掃描,掛載一個 16M 的快閃記憶體有時需要半分鐘以上的時間
        在實際應用中,JFFS2 最大能用在 128M 的快閃記憶體上

三、YAFFS2
YAFFS:2002
Yet Another Flash File System, Version 2:2003
只能用於NAND Flash, YAFFS1支援512Bytes/Page的NAND Flash;YAFFS2支援2kBytes/Page的NAND Flash.

1.特性:
    儲存資料的基本單位是Chunk:Page
    支援YAFFS/Direct使用:可以不需要VFS,甚至作業系統支援
    ECC冗餘校驗機制
        糾正單位元錯誤和檢測雙位元錯誤,而且計算速度很快,但對1位元以上的錯誤無法糾正,對2位元以上的錯誤不保證能檢測。
    更快的掛載速度,更少的記憶體使用
        512B/page ————> 4KB RAM/1MB NAND
        2KB/Page  ————> 1KB RAM/1MB NAND

總結:
JFFS與YAFFS都是日誌結構檔案系統(LFS),保障了資料的可靠性與安全性,可以恢復資料。
一般來說,對於小於64MB的NAND Flash,可以選用JFFS2;如果超過64MB,用YAFFS2比較合適

相關推薦

MiniFilter檔案系統學習

Minfilter與legacy filter區別 比sfilter載入順序更易控制. altitude被繫結到合適的位置。  Minfilter在登錄檔服務項中有一項Altitude值 此值越高位置越靠前 (待考證 每一個minifilter驅動必須有一個叫做altitu

HDFS分散式檔案系統學習總結

結構:主從結構(Master/slave)名稱節點/資料節點;缺點:不適合低延時資料訪問;無法高效儲存大量小檔案;不支援併發寫及任意修改檔案;NN:儲存元資料;元資料儲存在記憶體中;儲存檔案,block,DN之間的對映關係;DN:儲存檔案內容;檔案內容儲存在磁碟中;維護blo

檔案系統學習

一、Linux檔案系統 目錄結構 樹形結構:倒立 —— 根目錄 / 二、根檔案系統概念 1. 是什麼 核心第一個掛載的檔案系統,包含Linux系統完整啟動所需的目錄結構和重要檔案 其它所有檔案系統進行掛載使用的載體

虛擬檔案系統學習筆記(1)

1 通過虛擬檔案系統,linux可以支援多種檔案系統型別; 2 虛擬檔案系統所隱含的思想是把表示很多不同種類檔案系統的共同資訊放入核心;其中用1個欄位或函式來支援所有支援具體檔案系統所提供的任何操作。 3 VFS支援的檔案系統可以分為3類:磁碟檔案系統、網路檔案系統及特

Mfs 分散式檔案系統學習

1.MFS 分散式檔案系統介紹: MFS 特性: 1. Free(GPL) 2. 2. 通用檔案系統,不需要修改上層應用就可以使用 3. 可以線上擴容,體系架構可伸縮性極強。#直接 chunkserver 4. 部署簡單。 5. 高可用,可設定任意的

核心sys檔案系統學習

學習Linux那些事兒之我是Sysfs筆記 sys檔案系統的作用:用於將系統中的裝置組織成層次結構,並向用戶模式程式提供詳細的核心資料結構資訊。 sysfs的掛載過程:mount -t sysfs sysfs /sys,sysfs是個特殊檔案系統,它沒有實際存放檔案

Linux檔案系統學習(四)之read open系統呼叫

open的執行過程:v2.6.30  Open Sys_open |do_sys_open() |get_unused_fd_flags ()//得到一個可用的檔案描述符;通過該函式,可知檔案描述符                                      

基於STM32的SD卡FATFS檔案系統學習筆記

一、FATFS檔案系統格式分析 搞檔案系統,首先要了解一下SD卡里面的結構和分割槽,如下圖 1、引導扇區 引導扇區包含著磁碟和檔案系統的許多重要引數。檔案管理系統首先要對該扇區的資訊進行分析,才能瞭解當前磁碟上檔案系統的格式。 EB 58 90 4D 53 44 4F 53 35 2E 3000 020

Linux 學習之路(十):磁碟及檔案系統管理

磁碟及檔案系統管理 檔案系統訪問控制列表 setfacl ​ -b Remove all ​ -m ​ -k 塊點陣圖:bitmap 硬連結:多個檔案的路徑指向同一個inode號 軟連結|符號連結: 該檔案被硬連結的次數 drwxr-x

Linux學習筆記(4)磁碟分割槽與檔案系統命令

    df 檢查檔案系統的磁碟空間佔用情況,引數-a列出全部目錄,引數-h按KB,MB,GB顯示 du   檢車某個目錄或者檔案佔用的磁碟空間,引數-s顯示佔用總空間,引數-sh統計目錄大小 mo

大資料入門學習筆記(叄)- 布式檔案系統HDFS

文章目錄 HDFS概述及設計目標 什麼是HDFS HDFS的設計目標 HDFS架構 HDFS副本機制 副本存放策略![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20181

Node學習基礎(三) 之檔案的同步和非同步寫入操作(fs_檔案系統

下面遇到看不懂的可以去看官方文件。 首先引入fs模組 第二步開啟檔案  官方文件格式是這樣  path 檔案路徑  這裡例子裡是FileHello.txt  如果沒有這個檔案 所以他會自動建立 FileHello.txt

ROS學習筆記(五):ROS檔案系統工具的使用

roswiki地址:http://wiki.ros.org/cn/ROS/Tutorials/NavigatingTheFilesystem rospack rospack允許你獲取軟體包的有關資訊。 該選項可以返回軟體包的路徑資訊。 用法: $ rospa

linux學習 lesson23CIFS檔案系統

一、基本概念: CIFS是實現檔案共享服務的一種檔案系統,主要用於實現windows系統中的檔案共享,linux系統中用的比較少linux系統中利用CIFS檔案系統實現檔案共享,需要安裝samba服務。它使程式可以訪問遠端Internet計算機上的檔案並要求此計算機提供服務。CIFS 使

Linux學習筆記15——檔案系統的簡單操作

一、檔案系統的簡單操作 稍微瞭解了檔案系統後,再來我們得要知道如何查詢整體檔案系統的總容量與每個目錄所佔用的容量囉! 此外,前兩章談到的檔案型別中尚未講的很清楚的連結檔案 (Link file) 也會在這一小節當中介紹的。 1 ,磁碟與目錄的容量 現在我們知道磁碟的整體資料是在 supe

Linux學習筆記14——認識 Linux 檔案系統

系統管理員很重要的任務之一就是管理好自己的磁碟檔案系統,每個分割槽不可太大也不能太小, 太大會造成磁碟容量的浪費,太小則會產生檔案無法儲存的困擾。此外,我們在前面幾章談到的檔案許可權與屬性中, 這些許可權與屬性分別記錄在檔案系統的哪個區塊內?這就得要談到 filesystem 中的 inode 與

LINUX學習檔案系統及管理類命令

Windows: PE Linux: ELF 檔案系統: rootfs:根檔案系統 FHS:規定Linux應該建立哪些目錄和檔案 ls / 可檢視根目錄下一級子目錄, 也可以ls /目錄名:可以檢視該目錄下一級子目錄 /boot: 系統啟動相關的檔案, 如核心、initrd

LINUX學習—磁碟及檔案系統管理

IO裝置,外部裝置,並不是計算機核心裝置 機械式硬碟: U盤,光碟,軟盤,硬碟,磁帶機 如果不劃分分割槽,說明一個磁碟只能儲存一個檔案系統,劃分後,一個分割槽就是一個檔案系統,即邏輯邊界; 固態硬碟 磁頭懸浮在盤面上方,所以硬碟振盪很容易弄壞硬碟, 磁頭(head)數:每個碟

node.js學習(檔案系統)

建立檔案系統物件 var fs = require('fs'); 開啟檔案 開啟名為hellonode.txt的檔案,在當前目錄下,W開啟的檔案用於寫入(R開啟的檔案用來讀取)  var fh = fs.openSync('hellonode.txt','w');   向檔案中寫

bash學習檔案系統(七)

linux系統的一個特點就是將所有的內容都看作是檔案。因此至少要了解linux的檔案也是一個重要的內容。下面將介紹一下linux裡面的檔案: 1.按照檔案型別進行劃分 文字檔案: 檔案的組成主要是ASCII碼,也就是能夠直接識別成我能能夠讀懂內容是什麼的檔案(windows的tx