一個文件被打開io流和不打卡 inode

1. 磁盤?

? ?最小基本單位 扇區?

?機器磁盤的io效率 (讀和取)

2. 文件系統?

? ?對磁盤分區 ,最小的文件單位塊組,快組內部已經劃分好區域,巴拉巴拉,總之,每次使用數據,以操作系統的處理都是塊級的,而這些塊內部的區域已經劃分好了,所以需要提前對內存格式化

?

一 . 創建文件

? ?確定路徑,獲取

?

?

首先我已經理解了在文件系統中最小的邏輯單位是4kb 以快組位單位 而且快組內部已經被劃分號區域了 ,有塊組描述符: 里面放了當前塊組inode表使用的起始位置,空于數據塊的起始位置以便于創建文件的時候定位 位 : innode位圖表: 和inode表:這也是一塊內存而且是連續的:里面放的是一系列的inode的結構體指針,這個inode的結構體指針其中主要有: inode的編號,文件屬性,還有databloc[num]數組,這個數組里面都是直接或者間接存放著指向塊組的數據塊區的索引位置,指向的數據塊內容可能直接放著數據也可能是二級索引,又指向了其他的位置,舉例來說 如果是二級索引: datablock數組的大小是15x4: 也就是60個下標的話那可以指向60x4個kb的塊組(忽略其他區的大小因為他們很小),這些塊組的也會加入指定的inode, 每一個塊組有128MB的數據庫大小 ,一個索引int 類型也就4字節 這里有 128 x1024x1024 /4 個索引 15個塊組又可以存: 128 x1024x1024 /4 x15 個索引 每一個索引指向4kb:所以最終可以指向 : 128 x1024x1024 /4 x15 x4kb 的大小 現在這樣分析就理解透徹了整個區域劃分后的功能,補充的是 inode bit圖它存放的是inode表inode的使用情況, 所以 我們的inode位圖表 和block位圖表 像一個全局變量一樣來指向我們的inode和數據塊(128mb) ,然后inode結構體又又來指向數據內容和結構屬性。 有了這些我們可以很輕松的闡述關于創建文件和刪除文件的過程,創建一個文件 通過塊組描述符(確定inode和block塊的起始位置) 然后遍歷inode表和block表找到空于位置進行存入數據。 當我們想刪數據的時候,又可以通過innode表找到修改我們的innode位圖和塊位圖即可 不需要對數據塊修改 因為刪除只需要覆蓋即可,

?

?

?

?

創建一個文件是要確定當前的目錄路徑的,每一次都要往 會遞歸到根目錄 然后一步步的進入回到當前目錄才能找到當前目錄的inode 但是這樣效率太慢了 linux操作系統會對你最近常用的路徑信息進行緩存 叫做dentry緩存

?

?

? ls -li 可以看到文件的inode

?

創建硬連接以后他的文件屬性也是和之前一樣嗎

嗎軟鏈接不一樣

? ??

不允許給目錄建立硬連接舉個例子如果我們在某一個目錄建立了一個根目錄的硬連接當我們用find命令的時候從根目錄開始遞歸的訪問每一個目錄遇到這個硬連接的時候就會出現回路問題一直下去出現系統級別的錯誤?

? ?但是硬連接給目錄的還有..和.因為系統建立的這兩個是技術上允許也可以實習的,操作系統不相信用戶但是實現這兩個可以用來定位路徑同時也不會出現一個問題find命令不會對.和..進行查找的

?

?

?

?

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/921293.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/921293.shtml
英文地址,請注明出處:http://en.pswp.cn/news/921293.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ThermoSeek:熱穩定蛋白數據庫

這篇論文提出了ThermoSeek,一個綜合性的網絡資源,用于分析來自嗜熱和嗜冷物種的蛋白質序列和結構。具體來說,數據收集:從美國國家生物技術信息中心(NCBI)的基因組數據庫中收集了物種的分類ID,并…

leetcode算法刷題的第二十七天

1.leetcode 56.合并區間 題目鏈接 class Solution { public:static bool cmp(const vector<int>& a,const vector<int>& b){return a[0]<b[0];}vector<vector<int>> merge(vector<vector<int>>& intervals) {vector<v…

解決 Apache/WAF SSL 證書鏈不完整導致的 PKIX path building failed 問題

文章目錄解決 Apache/WAF SSL 證書鏈不完整導致的 PKIX path building failed 問題為什么會出現證書鏈錯誤&#xff1f;常見場景直連服務器正常&#xff0c;但經過 WAF 出錯Windows/Linux 下證書文件說明引入 WAF 或其他中間層&#xff1a;解決方法方法一&#xff1a;單獨配置 …

十一、標準化和軟件知識產權基礎知識

1 標準化基礎知識 1.1 基本概念 1.1.1 標準的分類 1.1.1.1 按使用范圍分類 國際標準&#xff1a;由國際組織如 ISO、IEC 制定的標準。國家標準&#xff1a;由國家標準化機構制定的標準&#xff0c;如中國的 GB&#xff0c;美國 ANSI。行業標準&#xff1a;由行業主管部門制定的…

計算機畢設選題:基于Python數據挖掘的高考志愿推薦系統

精彩專欄推薦訂閱&#xff1a;在 下方專欄&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f496;&#x1f525;作者主頁&#xff1a;計算機畢設木哥&#x1f525; &#x1f496; 文章目錄 一、項目介紹二…

什么是PCB工藝邊?獵板給您分享設計要點

什么是PCB工藝邊&#xff1f;獵板給您分享設計要點在PCB設計和制造領域&#xff0c;工藝邊是一個看似簡單卻至關重要的概念&#xff0c;它直接關系到生產流程的順暢性與最終產品的質量。本文將為您詳細解析PCB工藝邊的定義、作用、設計要點&#xff0c;并分享獵板PCB在高精度制…

Rustdesk搭建與客戶端修改與編譯

Rustdesk是一個開源的遠程桌面工具&#xff0c;客戶端可以自己定制修改編譯 這里主要記錄一下搭建的過程 服務端搭建 主要是參考了這篇文章&#xff0c;感覺作者分享~ 在 Linux VPS 上創建 RustDesk 服務器 - 知乎 https://zhuanlan.zhihu.com/p/1922729751656765374 這里主要…

數字人系統源碼搭建與定制化開發:從技術架構到落地實踐

隨著元宇宙、直播電商、智能客服等領域的爆發&#xff0c;數字人從概念走向商業化落地&#xff0c;其定制化需求也從 “單一形象展示” 升級為 “多場景交互能力”。本文將從技術底層出發&#xff0c;拆解數字人系統的源碼搭建邏輯&#xff0c;結合定制化開發中的核心痛點&…

2025國賽C題創新論文+代碼可視化 NIPT 的時點選擇與胎兒的異常判定

2025國賽C題創新論文代碼可視化 NIPT 的時點選擇與胎兒的異常判定基于多通道LED光譜優化的人體節律調節與睡眠質量評估模型摘要無創產前檢測&#xff08;NIPT&#xff09;通過分析孕婦血漿中胎兒游離DNA來篩查染色體異常&#xff0c;其準確性很大程度上依賴于胎兒Y染色體濃度的…

2021/07 JLPT聽力原文 問題一 4番

4番&#xff1a;女の人が新しい商品の紹介をしています。よく頭が痛くなる人は、どの商品を選びますか。女&#xff1a;こちら、新発売の中國茶をご案內します。今回皆様にご紹介いたしますのは、月?星?虹?空のお茶の4種類でございます。さあ、どうぞ召し上がってください。…

爆改YOLOv8 | 即插即用的AKConv讓目標檢測既輕量又提點

突破固定卷積核的局限,讓卷積核形狀隨目標變化而動態調整 目標檢測技術在當今計算機視覺領域扮演著至關重要的角色,而YOLO系列作為其中佼佼者,以其高速和高精度獲得了廣泛應用。但在實際應用中,傳統的卷積操作存在一些固有缺陷**。本文介紹了一種創新性的改進方案——AKCon…

linux inotify 功能詳解

內核宏開啟機制inotify 功能依賴 Linux 內核宏 CONFIG_INOTIFY_USER CONFIG_INOTIFY_USER=y該宏控制用戶態程序能否調用 inotify 相關系統調用,如 inotify_init(),inotify_add_watch() inotifywait 側重實時響應,適合觸發后續操作; inotifywatch 側重數據統計,適合分析事件…

Docker Registry 實現原理、適用場景、常用操作及搭建詳解

一、實現原理 Docker Registry 是基于 無狀態服務架構 的鏡像存儲與分發系統&#xff0c;其核心設計包含以下關鍵點&#xff1a;存儲驅動抽象層 Registry 通過 storagedriver.StorageDriver 接口實現存儲解耦&#xff0c;支持多種后端存儲&#xff1a; 本地存儲&#xff1a;默認…

【LeetCode熱題100道筆記】輪轉數組

題目描述 給定一個整數數組 nums&#xff0c;將數組中的元素向右輪轉 k 個位置&#xff0c;其中 k 是非負數。 示例 1: 輸入: nums [1,2,3,4,5,6,7], k 3 輸出: [5,6,7,1,2,3,4] 解釋: 向右輪轉 1 步: [7,1,2,3,4,5,6] 向右輪轉 2 步: [6,7,1,2,3,4,5] 向右輪轉 3 步: [5,6,7…

【Linux我做主】細說進程等待

Linux進程等待Linux進程等待github地址0. 前言1. 進程等待的必要性1.1 避免僵尸進程與資源泄漏1.2 僵尸進程不可被直接清除1.3 獲取子進程的運行結果2. 進程等待的三個問題1. 為什么要有進程等待2. 進程等待是什么3. 怎么實現進程等待3. 僵尸進程演示4. waitwait的手冊聲明wait…

大語言模型對齊

大語言模型對齊的重要性與目標研究 一、引言 隨著大語言模型 (LLM) 能力的不斷提升和應用場景的日益廣泛,這些模型在為人類社會帶來巨大便利的同時,也引發了一系列關于安全性、可靠性和倫理問題的擔憂(9)。大語言模型的對齊 (alignment) 作為確保這些強大的 AI 系統與人類價…

數組(4)

int mid min (key - arr[min]) / (arr[max] - arr[min]) * (max - min);17.數組常見算法4 分塊查找18.數組常見算法5 冒泡排序筆記小程序錯誤#include<stdio.h> int main() {/*冒泡排序&#xff1a;1.相鄰的元素兩兩比較&#xff0c;大的放右邊&#xff0c;小的放左邊2…

STM32 讀寫備份寄存器

本章節功能利用備份寄存器&#xff08;BKP&#xff09;實現數據的掉電保存&#xff0c;并通過按鍵和OLED顯示屏進行交互。使能電源&#xff08;PWR&#xff09;和備份域&#xff08;BKP&#xff09;的時鐘&#xff08; RCC_APB1PeriphClockCmd 函數&#xff09;&#xff0c;并…

RabbitMinQ(模擬實現消息隊列項目)02

目錄 十.整合數據庫和文件數據 創建DiskDataManager類 十一.內存結構設計 創建MeneryDataCenter類: 實現集合操作: 對MemoryDataCenter類功能測試: 十二.整合內存和磁盤數據 創建VirtualHost類: Exchange: MSGQueue: Binding: 創建Router類 對Router類的TOPIC匹配…

Unity Standard Shader 解析(五)之ShadowCaster

一、ShadowCaster // ------------------------------------------------------------------// Shadow rendering passPass {Name "ShadowCaster"Tags { "LightMode" "ShadowCaster" }ZWrite On ZTest LEqualCGPROGRAM#pragma target 3.0// --…