檔案管理(以Unix系統為例)

2021-09-27 08:06:00 字數 2409 閱讀 2041

如何把資料長期的儲存在外部儲存介質之上(比如硬碟)

如何把檔案的資料名字屬性關聯在一起呢?

unix中的儲存方式:多級索引

i-node(128位元組,後60個位元組存放15個指標)

目錄的內容

存放此目錄下檔案名字i-node的編號,通過i-node編號可以找到唯一的檔案資料,但是i-node沒有檔案的名字,unix中檔案名字和檔案內容分開存放

unix中檔案共享(鏈結檔案)

多個檔案名字指向同乙個i-node

windows使用碟符,unix沒有碟符的概念,下述以unix為例:

mv:移動檔案

mv file1 file2 (把file1重新命名為file2)

rm:刪除link

假如abc、xyz對應的i-node相同,則執行rm abc之後,xyz依然存在

只有乙個i-nodelink數降為0的時候,這個資料才真正從硬碟上被刪掉

cat:檢視檔案內容

對於乙個檔案來說,有三類人,他們的許可權分別為:

主人主組的其他人

主組之外的人

檔案的許可權只能由root或者主人修改,許可權的檢視:ls -l

對於目錄(把目錄比作房間):

指令源目錄所需許可權

原始檔所需許可權

目標目錄所需許可權cdx

初始化時需要劃分i-node塊存放資料的塊(間接指標索引塊和資料塊)的比例,設定bytes-per-inode,假設為4096,表示每4096位元組中有128位元組為i-node塊

磁碟配合

乙個使用者或者乙個組在檔案系統中最多可以存放多少資料。超過硬限制報error,超過軟限制報warning。

如果掛載到非空目錄上,原目錄中的檔案將暫時被隱藏。

> mount 裝置名字 空目錄名字(掛載檔案系統,需要root許可權)

>

> umount 裝置的名字\mount點的名字 (解除安裝檔案系統,相當於windows彈出u盤)

在unix中,根目錄、home都是檔案系統。

如果資料量還是太大,就考慮其他的備份策略:

硬碟的分割槽

與邏輯卷管理的比較

空間大小劃分後無法更改,初期對硬碟空間的規劃帶來困難,如果採用第三方的分割槽管理工具還會帶來資料上的風險。

受硬碟大小的限制。

邏輯卷管理:邏輯卷取代了分割槽,成為檔案系統的容器。

邏輯卷的大小=邏輯塊大小*邏輯塊個數,邏輯塊大小等於物理塊大小。

系統啟動 以Linux為例

這篇說一下計算機的啟動過程,主要是pc系統上linux的啟動過程,嵌入式的稍微提到一下,這上面的東西不一定非常正確,大多從網上相關的技術文章中獲取的資訊,以及查閱了部分linux的 總的來說這個文章定位於學習交流的性質,如果您覺得有不對的地方請一定指出來。正文開始 系統復位完成後,cpu從乙個確定的...

檔案讀寫(以登入註冊為例)

void regist writeprivateprofilestring name,username name,loginuser.ini 第乙個name是 裡面的值 username是鍵的名稱,name就是你輸入的值 writeprivateprofilestring name,password...

以hello 為例,製作 a so 庫檔案

先編寫hello程式 建立工作目錄,mkdir hello test 新建 hello.c 檔案 touch hello.c 可以用 gedit hello.c 也可以用vi hello.c 開啟檔案後,輸入如下 int main int argc,char ar 在一些編譯器中,這行 自動生成 e...