九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
什么是根文件系統(tǒng)
文章為作者原創(chuàng),轉載請附明原地址:https://mp.csdn.net/postedit/79842551
一、根文件系統(tǒng)簡介根文件系統(tǒng)首先是一種文件系統(tǒng),該文件系統(tǒng)不僅具有普通文件系統(tǒng)的存儲數(shù)據(jù)文件的功能,但是相對于普通的文件系統(tǒng)而言它還是內核啟動時所掛載(mount)的第一個文件系統(tǒng),系統(tǒng)引導啟動程序會在根文件系統(tǒng)掛載之后從中把一些初始化腳本(如inittab、rcS)和服務加載到內存中去運行。我們要明白文件系統(tǒng)和內核是完全獨立的兩個部分。在嵌入式中移植的內核下載到開發(fā)板上,是沒有辦法真正的啟動Linux操作系統(tǒng)的,會出現(xiàn)無法加載文件系統(tǒng)的錯誤。根文件系統(tǒng)之所以在前面加一個”根“,說明它是加載其它文件系統(tǒng)的”根“,既然是根的話,那么如果沒有這個根,其它的文件系統(tǒng)也就沒有辦法進行加載的。它包括了Linux啟動時所必須的目錄和關鍵性的文件,例如Linux啟動時都需要有init目錄下的相關文件,在 Linux掛載分區(qū)時Linux一定會找/etc/fstab這個掛載配置文件等,根文件系統(tǒng)中還包括了應用程序(如ls、mkdir、rm、ifconfig等命令)和 GNU C 庫(glibc、eglibc或uclibc)等。任何包括這些Linux 系統(tǒng)啟動所必須的文件都可以成為根文件系統(tǒng)。Linux啟動時,第一個必須掛載的是根文件系統(tǒng);若系統(tǒng)不能從指定設備上掛載根文件系統(tǒng),則系統(tǒng)會出錯而退出啟動。成功之后可以自動或手動掛載其他的文件系統(tǒng)。因此,一個系統(tǒng)中可以同時存在不同的文件系統(tǒng)。在 Linux 中將一個文件系統(tǒng)與一個存儲設備關聯(lián)起來的過程稱為掛載(mount)。使用 mount 命令將一個文件系統(tǒng)附著到當前文件系統(tǒng)層次結構中(根)。在執(zhí)行掛載時,要提供文件系統(tǒng)類型、文件系統(tǒng)和一個掛載點。根文件系統(tǒng)被掛載到根目錄下“/”上后,在根目錄下就有根文件系統(tǒng)的各個目錄,文件:/bin /sbin /mnt等,再將其他分區(qū)掛接到/mnt目錄上,/mnt目錄下就有這個分區(qū)的各個目錄文件。Linux操作系統(tǒng)可以支持多種多樣不同的文件系統(tǒng),如windows下的FAT32、NTFS,Linux服務器使用的ext2、ext3、ext4、btrfs、xfs、reiser4、ufs、hfs(蘋果系統(tǒng)),Linux操作系統(tǒng)自身使用的偽文件系統(tǒng)如swap、proc、sysfs、tmpfs等,也有一些設備的文件系統(tǒng)如iso9660(光盤)、nfs(網(wǎng)絡文件系統(tǒng))等,當然還包括我們嵌入式設備上用的不同的文件系統(tǒng)如:initramfs(在內存中運行的文件系統(tǒng))、jffs2(一種基于Norflash的文件系統(tǒng),也支持小頁的nandflash)、ubifs(目前Android手機上的Nandflash普遍使用的文件系統(tǒng))、yaffs2(早期專門用來支持大頁Nandflash的文件系統(tǒng),具備可移植性可在單片機裸機情況下使用)、cramfs(一種基于內存的只讀的文件系統(tǒng))、squashfs(在openwrt路由器上廣泛使用的俄文件系統(tǒng))、romfs(一種只讀、支持片上執(zhí)行XIP的文件系統(tǒng),在uClinux中廣泛使用)等。下面是幾種常用的嵌入式根文件系統(tǒng)的對比:

initramfs 該文件系統(tǒng)直接將根文件系統(tǒng)直接打包進Linux內核里(只有這種文件系統(tǒng)具有該功能),這樣內核和根文件系統(tǒng)綁定在一塊成為一個單獨的文件,他在Linux系統(tǒng)啟動后加載到內存中運行,所以速度快,但浪費內存,系統(tǒng)升級的時候內核和根文件系統(tǒng)一起升級比較方便。但因為他是基于內存的文件系統(tǒng),所以系統(tǒng)掉電后針對根文件系統(tǒng)下所有文件的修改掉電都會丟失,如果要升級根文件系統(tǒng)只有重新編譯、燒錄Linux內核;

jffs2 專門針對Norflash設計的文件系統(tǒng),小頁的Nandflash也可以使用,只是效率不高;因為根文件系統(tǒng)存放在Flash上,所以根文件系統(tǒng)路徑下的文件修改后掉電仍然存在;

 yaffs2 早期專門針對大頁Nandflash設計的文件系統(tǒng),他的源碼獨立于Linux內核維護著,所以可以在單片機等裸機環(huán)境下使用(只有該文件系統(tǒng)可以),linux內核想用它必須要打上補?。?/span>在分區(qū)較大時,nandflash的掛載時間較長,現(xiàn)在逐漸被ubifs廣泛替代;

 ubifs 專門針對Nandflash設計的一種文件系統(tǒng),他在內核的MTD一層上面又建立了UBI一層,掛載速度、磨損均衡、讀寫速度非常快,目前nandflash上應用得最廣的一種根文件系統(tǒng);

Linux操作系統(tǒng)之所以能夠支持這么多種不同的文件系統(tǒng),主要是通過叫做VFS的中間層對這些文件系統(tǒng)提供了完美的支持。對于用戶來說,這些文件系統(tǒng)幾乎是透明的,在大部分情況下,用戶通過libc和kernel的VFS交互,不需要關心底層文件系統(tǒng)的具體實現(xiàn),但是有時應用程序也需要考慮底層文件系統(tǒng)限制(比如fat vfat不支持鏈接,比如各個文件系統(tǒng)支持最大文件限制不同)。VFS主要有以下特性:

1. 向上,對應用層提供一個標準的文件操作接口,如open()、read()、write()、ioct()、close()等;

2. 對下,對所有文件系統(tǒng)提供一個統(tǒng)一的標準接口,以便其他操作系統(tǒng)的文件系統(tǒng)可以方便的移植到Linux上;

3. VFS內部則通過一系列高效的管理機制,比如inode cache, dentry cache 以及文件系統(tǒng)的預讀等技術,使得底層文件系統(tǒng)不需沉溺到復雜的內核操作,即可獲得高性能; 4. 此外VFS把一些復雜的操作盡量抽象到VFS內部,使得底層文件系統(tǒng)實現(xiàn)更簡單。下圖是Linux內核里文件系統(tǒng)的分層結構圖:

根文件目錄:1./bin目錄該目錄下的命令可以被root與一般賬號所使用,由于這些命令在掛接其它文件系統(tǒng)之前就可以使用,所以/bin目錄必須和根文件系統(tǒng)在同一個分區(qū)中。/bin目錄下常用的命令有:cat、chgrp、chmod、cp、ls、sh、kill、mount、umount、mkdir、[、test等。其中“[”命令就是test命令,我們在利用Busybox制作根文件系統(tǒng)時,在生成的bin目錄下,可以看到一些可執(zhí)行的文件,也就是可用的一些命令。2./sbin 目錄該目錄下存放系統(tǒng)命令,即只有系統(tǒng)管理員(俗稱最高權限的root)能夠使用的命令,系統(tǒng)命令還可以存放在/usr/sbin,/usr/local/sbin目錄下,/sbin目錄中存放的是基本的系統(tǒng)命令,它們用于啟動系統(tǒng)和修復系統(tǒng)等,與/bin目錄相似,在掛接其他文件系統(tǒng)之前就可以使用/sbin,所以/sbin目錄必須和根文件系統(tǒng)在同一個分區(qū)中。/sbin目錄下常用的命令有:shutdown、reboot、fdisk、fsck、init等,本地用戶自己安裝的系統(tǒng)命令放在/usr/local/sbin目錄下。3、/dev目錄該目錄下存放的是設備與設備接口的文件,設備文件是Linux中特有的文件類型,在Linux系統(tǒng)下,以文件的方式訪問各種設備,即通過讀寫某個設備文件操作某個具體硬件。比如通過"dev/ttySAC0"文件可以操作串口0,通過"/dev/mtdblock1"可以訪問MTD設備的第2個分區(qū)。比較重要的文件有/dev/null, /dev/zero, /dev/tty, /dev/lp*等。4./etc目錄該目錄下存放著系統(tǒng)主要的配置文件,例如人員的賬號密碼文件、各種服務的其實文件等。一般來說,此目錄的各文件屬性是可以讓一般用戶查閱的,但是只有root有權限修改。對于PC上的Linux系統(tǒng),/etc目錄下的文件和目錄非常多,這些目錄文件是可選的,它們依賴于系統(tǒng)中所擁有的應用程序,依賴于這些程序是否需要配置文件。在嵌入式系統(tǒng)中,這些內容可以大為精減。5./lib目錄該目錄下存放共享庫和可加載(驅動程序),共享庫用于啟動系統(tǒng)。運行根文件系統(tǒng)中的可執(zhí)行程序,比如:/bin /sbin 目錄下的程序。6./home目錄系統(tǒng)默認的用戶文件夾,它是可選的,對于每個普通用戶,在/home目錄下都有一個以用戶名命名的子目錄,里面存放用戶相關的配置文件。7./root目錄系統(tǒng)管理員(root)的主文件夾,即是根用戶的目錄,與此對應,普通用戶的目錄是/home下的某個子目錄。8./usr目錄/usr目錄的內容可以存在另一個分區(qū)中,在系統(tǒng)啟動后再掛接到根文件系統(tǒng)中的/usr目錄下。里面存放的是共享、只讀的程序和數(shù)據(jù),這表明/usr目錄下的內容可以在多個主機間共享,這些主要也符合FHS標準的。/usr中的文件應該是只讀的,其他主機相關的,可變的文件應該保存在其他目錄下,比如/var。/usr目錄在嵌入式中可以精減。9./var目錄與/usr目錄相反,/var目錄中存放可變的數(shù)據(jù),比如spool目錄(mail,news),log文件,臨時文件。10./proc目錄這是一個空目錄,常作為proc文件系統(tǒng)的掛接點,proc文件系統(tǒng)是個虛擬的文件系統(tǒng),它沒有實際的存儲設備,里面的目錄,文件都是由內核臨時生成的,用來表示系統(tǒng)的運行狀態(tài),也可以操作其中的文件控制系統(tǒng)。11./mnt目錄用于臨時掛載某個文件系統(tǒng)的掛接點,通常是空目錄,也可以在里面創(chuàng)建一引起空的子目錄,比如/mnt/cdram /mnt/hda1 。用來臨時掛載光盤、移動存儲設備等。12. /tmp目錄用于存放臨時文件,通常是空目錄,一些需要生成臨時文件的程序用到的/tmp目錄下,所以/tmp目錄必須存在并可以訪問。那我們利用Busybox制作根文件系統(tǒng)就是創(chuàng)建這上面的這些目錄,和這些目錄下面的各種文件。 什么是根文件系統(tǒng)
本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Linux下的/bin、/sbin、/usr/bin、/usr/sbin目錄的區(qū)別
linux系統(tǒng)目錄詳解(全而易懂)
嵌入式linux根文件系統(tǒng)制作(經(jīng)典)
寫得蠻好的linux學習筆記
mini6410根文件系統(tǒng)的制作
LINUX 根文件系統(tǒng)加載,linux文件系統(tǒng),不同文件系統(tǒng)的掛載和 操作方法(VFS虛擬文件系統(tǒng))
更多類似文章 >>
生活服務
熱點新聞
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服