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

歡迎訪問 生活随笔!

生活随笔

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

linux

grub linux rootfs,rootfs文件系统(笔记)(草稿)

發布時間:2024/9/27 linux 202 豆豆
生活随笔 收集整理的這篇文章主要介紹了 grub linux rootfs,rootfs文件系统(笔记)(草稿) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文件系統簡介

文件系統就是個軟件,幫用戶來管理一些二進制的信息,管理外存上存儲的這些二進制

各種文件在內存中都是以二進制的形式來存在的,如果沒有文件系統,用戶就需要自己去決定這些二進制的東西是什么,需要自己去和硬件打交道,有了文件系統,就省去了用戶和硬件直接打交道的過程。

linux和windows以及嵌入式linux文件系統的區別?

在pc機上的linux的boot和根文件系統是一起的,不在一起,是掛載看到的,雖然是在根文件系統是能看到boot的,但是物理上是分開的。因為這個的boot是有文件系統的

而在嵌入式linux中,boot和根文件系統是分開的,在根文件下是看不到內核grub等東西的,1.是因為根文件系統沒有去把boot做進來,2.因為嵌入式linux的boot中是沒有文件系統用的。在嵌入式linux中是沒有swap

優盤上的文件系統

掛載機制

基于內存的文件系統

可以把內存中的一塊當成文件系統中的一部分

文件系統就分為:根文件系統和普通的文件系統。比如優盤就有自己的普通的文件系統,是fat32的文件系統

而根文件系統則不一定是fat32的。

還有一種nfs的網絡文件系統

根文件系統為這些文件系統提供了一種框架

VFS

不基于硬件,作用是去識別各個設備上的文件系統,只存在于內存中的

執行的linux.rc這個可執行程序,進程號是1的程序就是這個。

pc機上的內核會通過bootpImage來識別硬盤上的文件系統

用ext3的read讀出來數據,在用ext2的write寫進去,中間就是用VFS這個借口來,調用不同的文件系統的函數來去實現一個cp的命令。

常見的根文件系統有基于flash的jffs2、yaffs、yaffs2、cramfs、基于網絡的nfs等

nfs比較特別

用df來查看自己的根文件系統掛載

看到的就是這樣子

/dev/mapper/VolGroup00-LogVol00

14093368 ? 9200464 ? 4165456 ?69% /

/dev/sda1 ? ? ? ? ? ? ? 101086 ? ? 15783 ? ? 80084 ?17% /boot

tmpfs ? ? ? ? ? ? ? ? ? 257800 ? ? ? ? 0 ? ?257800 ? 0% /dev/shm

.host:/ ? ? ? ? ? ? ?122873120 ?51227228 ?71645892 ?42% /mnt/hgfs

sda1中掛載的就是boot

tmpfs就內存中的根文件系統

69%本來應該是sda1

顯示的是掛載過來的

Linux根文件系統目錄結構

/bin /sbin /dev /etc /lib /usr /var

/proc /tmp /home /root /mnt /sys

/bin /sbin

放的是命令,bin下是常用的

sbin是系統常用的命令

usr/bin 下是用戶的命令

/dev 下是一些設備文件

比如 tty0 touchscreen sound usb 等

一般掛載devfs或udev

這些名字可以自己改,是在內核中去修改的,修改的自己認識就可以的,這些東西都是內核啟動完成后放進去的,做文件系統的只是起個文件夾得名字就可以了,具體放什么,是在內核啟動中去放的

/etc 系統啟動中需要的各種配置文件

比如啟動時自動掛載的文件系統,自動運行的腳本,包括root一般的初始密碼為什么是6個1,boa服務器配置腳本等東西,這是linux做根文件系統特別重要的文件,一般啟動不起來,都是以為這個文件夾中的東西沒有配置好

/lib

存放應從程序所需要的共享庫

如 ls,cp ifconfig等系統明亮以及自己交叉編譯器所用的

/usr/bin

比如qt需要的庫就會放到這里

/usr

一般存放用戶需要的東西,比如用戶自己安裝的東西,總的來說就是不是根文件系統需要的東西會放在這里

/var

存放系統啟動過程會自動保存的一些東西,這里放的一些,日志之類的東西,都是掉電丟失的

一般掛載ramfs

ramfs就是把內存中的一塊拿出來當做文件系統

tmpfs也是用來基于ramfs的文件系統

/tmp

一般是些臨時文件的程序需要的目錄

上面的這兩個都是占的內存的

/proc

dev 是用來放設備節點

而這里是用來放 存放記錄了當前存在多少模塊,還有中斷的使用情況,使用次數,包括當前系統的字符設備

里面存放的那些數字表示的是進程,里面就存放了這些進程所需要的一些東西,實際去做的時候做成空的,去掛載,一般都是需要去寫腳本自動掛載,若不掛載一般系統會出各種奇怪的錯誤

/root

root的家

/home

其他用戶的家目錄

/mnt

臨時文件系統掛載的目錄

/sys

和proc類似,每加載一個驅動,就會記錄這個驅動申請了哪些硬件資源等等,dev中只是存放了設備的名字,而這里面則是具體的東西

/rc(pc 機上的linux沒,在開發板上才有)

是啟動起來的第一個進程

(重要 :根文件系統的構建)

需要了解嵌入linux的啟動過程

"noinitrd ?root=/dev/mtdblock/1 ?init=/linuxrc ?console=ttyS0";

root: ? 指定了根文件系統在FLASH分區中的位置

console:指定了內核啟動后首選的控制臺

init: ? 指定了linux內核啟動完畢后調用的第一個用戶態程序,即進程號為1的進程。

root=/dev/mtdblock/1??表示從這里去找根文件系統 ,看內核中去怎么寫,內核中是2就是2

init=/linuxrc 啟動以后的第一個用戶態的進程

console=ttyS0 啟動信息打印到那里去 ,這個是串口

linuxrc那里來的?linuxrc就是init進程,內核只啟動這一個程序,其他的根文件系統都是由這個進程來啟動的,內核是工作在內核態的,只要啟動用戶態的這個linuxrc這個進程,就表示內核啟動的工作的結束(有系統調用的時候內核還是會工作的)。

其他的用戶進程都是屬于這個進程子進程,因為都是這個進程的子進程

會讀取inittab的配置文件,來按照這個腳本來執行

linuxrc的執行過程

(結合ppt來看)

(后續補充……)

inittab是在etc文件下的

inittab文件的格式

(補圖)

第一個id是表示使用的控制臺,啥也不寫,表示和內核是一樣的,可以和內核不一樣,一般是默認不寫

第二個runlevels是 對嵌入式是沒有意義,對于pc機的linux有意思,從0到5,5代表圖形界面,表示開機的時候是進圖形界面,3是表示字符界面 ,0是啟動不起來了,1是單用戶模式,類似于安全模式,2是多用戶

可以在/etc/inittab 中看到

第三action個是 表示程序是怎么去執行的(補圖)

respawn 啟動的進程是不允許退出的 在嵌入式linux中的bash就是不允許退出的 會不斷的重啟

第四個process是要執行的程序的名字(需要路徑)

init進程只能控制這8個進程

console c 5 1 ?(c是字符 5 是主設備號 1是從設備號)

比如 5 表示是串口,1就是具體com1或者別的com口

什么是設備節點?

就是dev下的一個名字

字符設備

最多可以有0到254,共255個(類)設備,是空的就可以去申請

塊設備

網絡設備

所有的驅動都是工作在內核態的

內核啟動linuxrc就把工作權利交給根文件系統了

在profile中寫

alies vi = ‘vim’ 這樣以后vi就相當于vim了

嵌入式領域中的命令基本上都是從busybox連接過來的

可以在bin下執行ll -h來看

總結

以上是生活随笔為你收集整理的grub linux rootfs,rootfs文件系统(笔记)(草稿)的全部內容,希望文章能夠幫你解決所遇到的問題。

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