日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux文件系统、文件系统结构、虚拟文件系统

發布時間:2023/12/10 linux 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux文件系统、文件系统结构、虚拟文件系统 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

參考:linux文件系統及其目錄結構、虛擬文件系統
作者:丶PURSUING
發布時間: 2021-02-15 09:33:29
網址:https://blog.csdn.net/weixin_44742824/article/details/113806239?spm=1001.2014.3001.5502

本文為學習筆記,整合課程內容以及部分文章,參考的原文鏈接如下:

文件系統目錄結構板塊:
參考:原文鏈接
作者:DreamDZhu

虛擬文件系統板塊:
參考:原文鏈接。

作者:uestc-leon

目錄

  • 文件系統概述
    • 學術定義
    • 文件系統種類
    • 什么是分區
    • 簡單理解windows和linux文件系統的區別
  • 文件系統結構
    • /etc目錄下可以設置開機啟動程序
    • 切換為root超級用戶
    • /proc目錄舉例
    • 絕對路徑與相對路徑
  • 虛擬文件系統(Virtual File System)(VFS)
    • 是什么?
    • 有什么作用?
      • EG1:cp指令的實現
      • EG2:從系統編程,從上層到底層來看

文件系統概述

學術定義

文件系統是操作系統用于明確存儲設備的文件和數據結構,即在存儲設備上組織文件的方法。


根分區/根目錄

文件系統種類

文件的格式又有FAT,HFS,…

常見的:

vfat:boot (bootloader,kernel)
ext4:根目錄
tmpfs:內存文件系統

比如,windows用的是NTFS。

樹莓派的有

df -T
  • 1

什么是分區

windows對于分區的管理較為“隨意”,因為其面向普通PC用戶。C,D盤隨意存放文件。
而linux較為嚴格,按照功能來分區,大多面向開發者。

嵌入式系統可分為4個區:

bootloader:啟動代碼
para:啟動代碼向內核傳遞參數的位置
kernel:內核分區(前面內核編譯時SD卡映射的data1)
根分區/根目錄:文件系統結構(前面內核編譯時SD卡映射的data2)

簡單理解windows和linux文件系統的區別

在windows下會有驅動器盤符(C,D,E等),某個文件確切的存在于某個盤符中,占用一段連續的存儲空間。

在linux下沒有盤符的概念,所有的文件都在根目錄(/),通過cd /指令進入。(cd或者cd ~ 進入的是工作目錄home)下。可以理解為所有文件都分散到整個磁盤上,你看到的同一個文件夾下內容可能來自于不同的分區。

文件系統結構

參考:原文鏈接
作者:DreamDZhu

要求熟悉且記憶。

在Linux系統中,目錄被組織成一個單根倒置樹結構,文件系統從根目錄開始,用/來表示,是按照功能劃分的。

/:根目錄,位于Linux文件系統目錄結構的頂層,一般根目錄下只存放目錄,不要存放文件,/etc、/bin、/dev、/lib、/sbin應該和根目錄放置在一個分區中。

/bin : 提供用戶使用的基本命令, 存放二進制命令,不允許關聯到獨立分區,OS啟動會用到里面的程序。

/boot:用于存放引導文件,內核文件,引導加載器.

/sbin:管理類的基本命令,不能關聯到獨立分區,OS啟動時會用到的程序(重要的命令通常處于bin,不重要的則安裝在sbin)。

/lib:存放系統在啟動時依賴的基本共享庫文件以及內核模塊文件. 系統使用的函數庫的目錄 也存放了大量的腳本庫文件 ,程序在執行過程中,需要調用時會用到

/lib64:存放64位系統上的輔助共享庫文件.

/etc: 系統配置文件存放的目錄,該目錄存放系統的大部分配置文件和子目錄,不建議在此目錄下存放可執行文件

/etc目錄下可以設置開機啟動程序

為什么KTV的點歌機開機就是點歌界面,而不是linux的啟動界面,通過配置更改。

例如要設置智能家居的程序,當芯片上電后自動運行,而不是還去拿電腦去開始運行。

  • 復制可執行文件的絕對路徑,例如
/home/pi/wiringPi/a.out
  • 1
  • 粘貼到etc目錄下的rc.local的exit 0之前。

要加超級用戶權限,否則只能進行只讀操作

sudo vi /etc/rc.local
  • 1

這里可以看到之前的開機自動配置ip地址的操作。

/home:普通用戶主目錄,當新建賬戶時,都會分配在此,建議單獨分區,并分配額外空間用于存儲數據。

/root: 系統管理員root的宿主目錄,系統第一個啟動的分區為/,所以最好將/root和/放置在一個分區下。

切換為root超級用戶


如果我非要進去呢?(嘗嘗鮮看看就好),通常是沒有權限去更改root密碼。樹莓派玩玩罷了。

  • 強制創建一個新密碼
sudo passwd root
  • 1

  • 獲取root超級權限
su - root
  • 1

用ls可以發現/root下啥也看不到

刪庫跑路:直接干掉根目錄(別嘗試哈)

cd .. //回到上級目錄 /rm / -rf

切換回普通用戶

su - pi
  • 1

/media:便攜式移動設備掛載點目錄.

/mnt:臨時文件系統掛載點,比如設置的共享文件夾

/dev: 設備(device)文件目錄,存放linux系統下的設備文件,訪問該目錄下某個文件,相當于訪問某個設備,存放連接到計算機上的設備(終端、磁盤驅動器、光驅及網卡等)的對應文件 (b 隨機訪問,c 線性訪問)

/opt:第三方應用程序的安裝位置.

/srv: 服務啟動之后需要訪問的數據目錄,存放系統上運行的服務用到的數據,如www服務需要訪問的網頁數據存放在/srv/www內。

/tmp:存儲臨時文件, 任何人都可以訪問,重要數據一定不要放在此目錄下。

/usr: 應用程序存放目錄,/usr/bin 存放保證系統擁有完整功能而提供的應用程序, /usr/share 存放共享數據,/usr/lib 存放不能直接運行的,卻是許多程序運行所必需的一些函數庫文件,_/usr/local 存放軟件升級包,第三方應用程序的安裝位置,/usr/share/doc _系統說明文件存放目錄。

/var :放置系統中經常要發生變化的文件,如日志文件。/var/log 日志目錄及文件./var/tmp:保存系統兩次重啟之間產生的臨時數據.

/proc: 用于輸出內核與進程信息相關的虛擬文件系統,目錄中的數據都在內存中,如系統核心,外部設備,網絡狀態,由于數據都存放于內存中,所以不占用磁盤空間

/proc目錄舉例

  • 可以在這個目錄下查看cpu的更詳細的信息
cat /proc/cpuinfo
  • 1

processor是核心,有n個就是n核cpu

  • 也可以在這個目錄下查看內存的相關信息
cat /proc/meminfo
  • 1

sys: 用于輸出當前系統上硬件設備相關的虛擬文件系統.

/selinux:存放selinux相關的信息安全策略等信息.

絕對路徑與相對路徑

絕對路徑 :以/開始,表示該文件從根目錄開始的完整位置路徑,必須以根開始

相對路徑 :不以/開始,指該文件相對于該目錄的路徑或某個目錄的路徑,不以根開始。可以作為一個簡短的形式來指定一個文件名。

虛擬文件系統(Virtual File System)(VFS)

參考:原文鏈接。

作者:uestc-leon

是什么?

VFS是對各種文件系統的一個抽象,它為各種文件系統提供了一個通用接口

有什么作用?

文件對應的分區可能不一樣,有的來自ext4,或者tmps。即為文件系統的類型可能不一樣,數據存儲的方式不一樣,訪問方式也就不一樣,沒辦法做到操作統一化,給編程開發帶來困難。


而虛擬文件系統的存在正是解決了這個問題:簡化上層應用程序員的開發,不管是什么文件類型,磁盤還是設備,通通都是用open,read,write統一操作。

EG1:cp指令的實現

用戶輸入以下指令:

cp /floppy/TEST /tmp/test
  • 1

其中/floppy是MS-DOS磁盤的一個安裝點,而/tmp是一個標準的第二擴展文件系統(second Extended Filesystom, Ext2)的目錄。正如圖(a)所示,VFS是用戶的應用程序與文件系統實現之間的抽象層。因此,cp程序并不需要知道/floppy/TEST 和 /tmp/test是什么文件系統類型。相反,cp程序直接與VFS交互,這是通過Unix程序設計人員都熟悉的普通系統調用來進行的。cp的執行代碼如圖(b)所示:

EG2:從系統編程,從上層到底層來看

如果從分區的角度,串口操作的就是/dev;普通文件如 .config在ext4上;共享內存 tmpfs dev/shm…

之前所學的Linux系統編程,各種應用層的知識,vfs都提供了幫助。

總結

以上是生活随笔為你收集整理的linux文件系统、文件系统结构、虚拟文件系统的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。