国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目錄
#1.根檔案系統(tǒng)" >#1.根檔案系統(tǒng)
2.主要的根檔案系統(tǒng)" >2.主要的根檔案系統(tǒng)
3.Ramdisk製作" >3.Ramdisk製作
4.Cramfs制作" >4.Cramfs制作
5.其他根文件系統(tǒng)的制作" >5.其他根文件系統(tǒng)的制作
6.BusyBox編譯制作" >6.BusyBox編譯制作
首頁 系統(tǒng)教程 Linux Linux根檔案系統(tǒng)的秘密

Linux根檔案系統(tǒng)的秘密

Feb 15, 2024 pm 01:42 PM
linux linux教程 linux系統(tǒng) linux作業(yè)系統(tǒng) linux指令 shell腳本 嵌入式linux linux入門 linux學習

Linux是一種開源、可移植、可自訂的作業(yè)系統(tǒng),它廣泛應用於各種領域,如伺服器、桌面、嵌入式裝置等。 Linux的核心是內核,它負責管理硬體資源和提供基本的服務。但是,核心並不是一個獨立的實體,它需要一個檔案系統(tǒng)來儲存和存取各種資料和程式。檔案系統(tǒng)是一種組織和管理檔案的方法,它定義了檔案的名稱、位置、屬性、權限等資訊。在Linux中,有許多不同類型的檔案系統(tǒng),如ext4、xfs、btrfs等,它們各有特點和優(yōu)勢。但是,在所有的檔案系統(tǒng)中,有一個特殊的檔案系統(tǒng),它是Linux系統(tǒng)的基礎和核心,它就是根檔案系統(tǒng)(rootfs)。那麼,根檔案系統(tǒng)是什麼?它有什麼作用?它又是如何創(chuàng)建和管理的呢?本文將從以下幾個面向來解答:

Linux根檔案系統(tǒng)的秘密

#1.根檔案系統(tǒng)

#檔案系統(tǒng)是包含在一個磁碟(包括光碟、磁碟機、隨身碟及其它儲存裝置)或分割區(qū)的目錄結構;一個可套用的磁碟裝置可以包含一個或多個檔案系統(tǒng);如果您想進入一個檔案系統(tǒng),首先您要做的是掛載(mount)檔案系統(tǒng);為了掛載(mount)檔案系統(tǒng),您必須指定一個掛載點。

附註:對於我們應用開發(fā)來說,購買開發(fā)板的時候,廠商會提供好現(xiàn)成的根文件系統(tǒng)和BootLoader等,如果需要,我們可以改變其中的命令而無需從頭開始製作一個新的根文件系統(tǒng)。不過這兒的製作過程可以讓我們更深一點理解Linux的檔案系統(tǒng)。

2.主要的根檔案系統(tǒng)

#* Linux 中,rootfs 是不可或缺的。 PC 上主要實作有ramdisk 和直接掛載HD(Harddisk,硬碟)上的根檔案系統(tǒng);嵌入式中一般不從HD 啟動,而是從Flash 啟動,最簡單的方法是將rootfs load 到RAM 的RAMDisk,稍微複雜的就是直接從Flash 讀取的Cramfs,更複雜的是在Flash 上分割區(qū),並建置JFFS2 等檔案系統(tǒng)。

* RAMDisk 將製作好的 rootfs 壓縮後寫入 Flash,啟動的時候由 Bootloader load 到RAM,解壓縮,然後掛載到 /。這種方法操作簡單,但是在 RAM 中的檔案系統(tǒng)不是壓縮的,因此需要佔用許多嵌入式系統(tǒng)中稀有資源 RAM。

ramdisk 就是用記憶體空間來模擬出硬碟分割區(qū),ramdisk通常使用磁碟檔案系統(tǒng)的壓縮存放在flash中,在系統(tǒng)初始化時,解壓縮到SDRAM並掛載根檔案系統(tǒng), 在linux系統(tǒng)中,ramdisk有二種,一種就是可以格式化並載入,在linux核心2.0/2.2就已經支援,其不足之處是大小固定;另一種是2.4的核心才支援,透過,ramfs來實現(xiàn),他不能被格式化,但用起來方便,其大小隨所需的空間增加或減少,是目前l(fā)inux常用的ramdisk技術。

* initrd 是RAMDisk 的格式,kernel 2.4 之前都是image-initrd,Kernel 2.5 引入了cpio-initrd,大大簡化了Linux 的啟動過程,附合Linux 的基本哲學:Keep it simple, stupid(KISS) . 不過cpio-initrd 作為新的格式,還沒有經過廣泛測試,嵌入式Linux 中主要採用的還是image-initrd。

* Cramfs 是 Linus 寫的很簡單的檔案系統(tǒng),有很好的壓縮綠,也可以直接從 Flash 上運行,不須 load 到 RAM 中,因此節(jié)約了 RAM。但 Cramfs 是唯讀的,對於需要執(zhí)行時修改的目錄(如: /etc, /var, /tmp)多有不便,因此,一般將這些目錄做成ramfs 等可寫的 fs。

* SquashFS 是 Cramfs 的增強。突破了 Cramfs 的一些限制,在 Flash 和 RAM 的使用量方面也具有優(yōu)勢。不過,根據開發(fā)者介紹,在效能上可能不如 Cramfs。這也是一種新方法,在嵌入式系統(tǒng)採用之前,需要經過更多的測試。

3.Ramdisk製作

#RAMDisk的製作方法如下:
(1) 在PC機的Linux作業(yè)系統(tǒng)環(huán)境下,產生可以虛擬成區(qū)塊裝置的文件,假設文件名稱為init.img。

$?dd?if=/dev/zero?of=init.img?bs=4096?count=1024

其中bs*count為區(qū)塊裝置大?。▎挝唬何辉M),產生init.img檔案以後,還必須對該檔案進行格式化。

$?mke2fs?–m0?–F?init.img

(2) 新建一個資料夾ram,並將init.img掛接到ram目錄。

$?mkdir?ram
$?mount?init.img?ram/?-o?loop

這時,讀寫ram目錄,等效于讀寫init.img文件。用戶可以將根文系統(tǒng)所需的文件寫入到ram目錄中。往ram目錄寫完文件以后,還需要使用umount ram命令卸載init.img,才能將已寫入的文件保存到init.img中。

(3)添加完畢,需要umount ram

4.Cramfs制作

CramFS(Compressed Rom File System)是Linux Torvalds在Transmeta任職時,所參與開發(fā)的文件系統(tǒng)。它是針對Linux內核2.4之后的版本所設計的一種新型只讀文件系統(tǒng),采用了zlib 壓縮,壓縮比一般可以達到1:2,但仍可以作到高效的隨機讀取,Linux系統(tǒng)中,通常把不需要經常修改的目錄壓縮存放,并在系統(tǒng)引導的時候再將壓縮文件 解開。因為Cramfs不會影響系統(tǒng)的讀取文件的速度,而且是一個高度壓縮的文件系統(tǒng)。因此非常廣泛應用于嵌入式系統(tǒng)中。

在嵌入式的 環(huán)境之下,內存和外存資源都需要節(jié)約使用。如果使用RAMDISK方式來使用文件系統(tǒng),那么在系統(tǒng)運行之后,首先要把Flash上的映像文件解壓縮到內存 中,構造起RAMDISK環(huán)境,才可以開始運行程序。但是它也有很致命的弱點。在正常情況下,同樣的代碼不僅在Flash中占據了空間(以壓縮后的形式存 在),而且還在內存中占用了更大的空間(以解壓縮之后的形式存在),這違背了嵌入式環(huán)境下盡量節(jié)省資源的要求。

使用CramFS文件 系統(tǒng)就是一種解決這個問題的方式。CramFS是一個壓縮格式的文件系統(tǒng),它并不需要一次性地將文件系統(tǒng)中的所有內容都解壓縮到內存之中,而只是在系統(tǒng)需 要訪問某個位置的數據的時候,馬上計算出該數據在CramFS中的位置,將它實時地解壓縮到內存之中,然后通過對內存的訪問來獲取文件系統(tǒng)中需要讀取的數 據。CramFS中的解壓縮以及解壓縮之后的內存中數據存放位置都是由CramFS文件系統(tǒng)本身進行維護的,用戶并不需要了解具體的實現(xiàn)過程,因此這種方 式增強了透明度,對開發(fā)人員來說,既方便,又節(jié)省了存儲空間。

但是Cramfs也有其缺點:延遲、小于16MB、不支持寫,只支持PAGE_CREATE_SIZE=4096的內核。

制作的命令:(root文件夾中存放著文件系統(tǒng))

#mkcramfs?root?cramfs.img

5.其他根文件系統(tǒng)的制作

制作yaffs文件系統(tǒng):?mkyaffsimage?myroots?myroots.img
制作squashfs:?mksquashfs?$(FS_DIR)?$(FS_NAME)?-noappend?-be?-lzma?-no-fragments?–noI

6.BusyBox編譯制作

建立目標板空根目錄文件夾及根目錄下的文件夾:

[root@190?friendly-arm]#?mkdir?myroots
[root@190?friendly-arm]#pwd
/friendly-arm/myroots
[root@190?friendly-arm]#cd?myroots
[root@190?myroots]#?mkdir?bin?sbin?usr?lib?dev?mnt?opt?root?etc?home?proc?tmp?var
[root@190?myroots]#?mkdir?etc/init.d

進入etc/init.d目錄下,建立一個腳本文件,并命名為rcS,用gedit打開,添加如下內容:

#!?/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:
runlevel=S
prevlevel=N
umask?022
export?PATH?runlevel?prevlevel
#
#?Trap?CTRL-C?&c?only?in?this?shell?so?we?can?interrupt?subprocesses.
#
trap?":"?INT?QUIT?TSTP

創(chuàng)建 dev 中的節(jié)點
如果使用“l(fā)inux 2.6.xx”的內核,應該事先創(chuàng)建節(jié)點“console”、“null”。否則在系統(tǒng)啟動時內容會提示以下錯誤:

Warning:?unable?to?open?an?initial?console.
Kernel?panic?-?not?syncing:?Attempted?to?kill?init!

創(chuàng)建節(jié)點的命令如下:

#?mknod?dev/console?c?5?1
#?mknod?dev/null?c?1?3?移植Busybox:

進入到壓縮文件存放的目錄下,并解壓。然后進入解壓后的busybox目錄文件夾,隨后配置busybox 。

[root@190?busybox-1.2.0]#?make?menuconfig

由于每個版本的配置選項組織有所不同。不管怎樣,我們注意以下選項就行了:

1)?Support?for?devfs
2)?Build?BusyBox?as?a?static?binary?(?no?shared?libs?)?//將busybox編譯成靜態(tài)鏈接
3)?Do?you?want?to?build?busybox?with?a?Cross?Compile?
(/usr/local/arm/3.3.2/bin/arm-linux-)?Cross?Compile?prefix?//指定交叉編譯器
4)?init
5)?Support?reading?an?inittab?file?//支持init讀取/etc/inittab?配置文件
6)?(X)?ash選中ash?//建立的rcS腳本才能執(zhí)行
7)ash
8)cp?cat?ls?mkdir?mv?//可執(zhí)行命令工具的選擇,自己看著辦吧,需要用到的就選上
9)?mount
10)?umount
11)?Support?loopback?mounts
12)?Support?for?the?old?/etc/mtab?file
13)?insmod
14)?Support?version?2.2.x?to?2.4.x?Linux?kernels
15)?Support?version?2.6.x?Linux?kernels
16)?vi
17)don’t?use?user

以上內容必須選上,其他可按默認值;如果要支持其他功能,如網絡支持等,可按需選擇,英語不是很爛的話,這些都沒有問題。
配置好之后,保存退出。然后對其編譯和安裝到剛才建立的根文件系統(tǒng)目錄下:

[root@190?busybox-1.2.0]?make?TARGET_ARCH=arm?CROSS=arm-linux-?\?PREFIX=/friendly-arm/myroots/?all?install

安裝好之后,將相應的二進制文件拷貝到根文件系統(tǒng)相應的目錄下:
拷貝一些管理員控制程序到/sbin目錄下,最重要的就是要包含一個init命令;
拷貝應用程序運行時所需要的庫到/lib,庫文件可以從PC機上的交叉編譯工具安裝目錄下拷貝,如libc-2.2.2.so、libcryt-2.2.2.so、libm-2.2.2.so、libutil-2.2.2.so等,為部分相應庫建立快捷方式,提供一些應用程序按快 捷方式名稱調用。值得注意的是C庫要采用C庫的版本glibc, glibc位于/lib/libc.so.6

透過上述分析,我們可以看到,根檔案系統(tǒng)是Linux系統(tǒng)的重要組成部分,它包含了Linux系統(tǒng)啟動和運作所需的關鍵檔案和目錄。根檔案系統(tǒng)通常被掛載在/(根)目錄下,並且可以包含其他檔案系統(tǒng)的掛載點。根檔案系統(tǒng)可以使用不同類型的檔案系統(tǒng)格式,並且可以透過一些工具來建立和管理。例如,我們可以使用mkfs指令來格式化一個分割區(qū)或裝置為根檔案系統(tǒng),我們可以使用mount指令來掛載或卸載一個根檔案系統(tǒng),我們可以使用df指令來查看一個根檔案系統(tǒng)的使用情況等??傊?,根檔案系統(tǒng)是Linux系統(tǒng)的秘密所在,它為Linux系統(tǒng)提供了穩(wěn)定且靈活的基礎。

以上是Linux根檔案系統(tǒng)的秘密的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發(fā)現(xiàn)涉嫌抄襲或侵權的內容,請聯(lián)絡admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Laravel 教程
1600
29
PHP教程
1502
276
如何與Windows一起安裝Linux(雙啟動)? 如何與Windows一起安裝Linux(雙啟動)? Jun 18, 2025 am 12:19 AM

安裝Linux和Windows雙系統(tǒng)的關鍵是分區(qū)和啟動設置。 1.準備工作包括備份數據並壓縮現(xiàn)有分區(qū)騰出空間;2.使用Ventoy或Rufus製作Linux啟動U盤,推薦Ubuntu;3.安裝時選擇“與其他系統(tǒng)並存”或手動分區(qū)(/至少20GB,/home剩餘空間,swap可選);4.勾選安裝第三方驅動以避免硬件問題;5.安裝後若未進入Grub引導菜單,可用boot-repair修復引導或調整BIOS啟動順序。只要步驟清晰、操作得當,整個過程並不復雜。

如何為初學者選擇Linux發(fā)行版? 如何為初學者選擇Linux發(fā)行版? Jun 19, 2025 am 12:09 AM

新手選擇Linux發(fā)行版應先明確使用需求。 1.日常使用選Ubuntu或LinuxMint;編程開發(fā)適合Manjaro或Fedora;老舊設備用Lubuntu等輕量系統(tǒng);學習底層原理推薦CentOSStream或Debian。 2.穩(wěn)定性優(yōu)先考慮UbuntuLTS或Debian;追求新功能可選Arch或Manjaro。 3.社區(qū)支持方面,Ubuntu和LinuxMint資源豐富,Arch文檔偏技術向。 4.安裝難度上,Ubuntu、LinuxMint較簡單,Arch適合有基礎者。建議先試用再決定。

如何向Linux添加新磁盤 如何向Linux添加新磁盤 Jun 27, 2025 am 12:15 AM

添加新硬盤到Linux系統(tǒng)步驟如下:1.確認硬盤被識別,使用lsblk或fdisk-l檢查;2.用fdisk或parted分區(qū),如fdisk/dev/sdb創(chuàng)建分區(qū)並保存;3.格式化分區(qū)為文件系統(tǒng),如mkfs.ext4/dev/sdb1;4.臨時掛載使用mount命令,如mount/dev/sdb1/mnt/data;5.修改/etc/fstab實現(xiàn)開機自動掛載,需先測試掛載確保無誤。操作前務必確認數據安全,避免硬件連接問題。

修復無法在Windows Google Chrome上傳文件 修復無法在Windows Google Chrome上傳文件 Jul 08, 2025 pm 02:33 PM

在GoogleChrome中上傳文件時遇到問題?這可能很煩人,對吧?無論您是將文檔附加到電子郵件、在社交媒體上共享圖像,還是提交工作或學校的重要文件,流暢的文件上傳過程都是至關重要的。因此,如果您的文件上傳在WindowsPC上的Chrome中持續(xù)失敗,可能會令人沮喪。如果您還沒有準備好放棄您最喜歡的瀏覽器,這裡有一些提示修復無法在WindowsGoogleChrome上傳文件1.從通用修復開始在我們了解任何高級故障排除技巧之前,最好先嘗試下面提到的一些基本解決方案。排除互聯(lián)網連接問題:互聯(lián)網連

Linux中的系統(tǒng)日誌在哪裡? Linux中的系統(tǒng)日誌在哪裡? Jun 24, 2025 am 12:15 AM

Linux系統(tǒng)中的日誌通常存儲在/var/log目錄中,該目錄包含多種關鍵日誌文件,如syslog或messages(記錄系統(tǒng)日誌)、auth.log(記錄認證事件)、kern.log(記錄內核消息)、dpkg.log或yum.log(記錄軟件包操作)、boot.log(記錄啟動信息);可通過cat、tail-f或journalctl等命令查看日誌內容;應用日誌也常位於/var/log下的子目錄,如Apache的apache2或httpd目錄、MySQL的日誌文件等;同時需注意日誌權限通常需要s

什麼是sudo命令,我什麼時候應該使用它? 什麼是sudo命令,我什麼時候應該使用它? Jul 02, 2025 am 12:20 AM

sudo代表“substituteuserdo”或“superuserdo”,允許用戶以其他用戶(通常是root)的權限運行命令。其核心用途包括:1.執(zhí)行系統(tǒng)級操作如安裝軟件或編輯系統(tǒng)文件;2.訪問受保護目錄或日誌;3.管理服務如重啟nginx;4.修改全局設置如/etc/hosts。使用時系統(tǒng)會檢查/etc/sudoers配置並驗證用戶密碼,提供臨時權限而非持續(xù)以root身份登錄,確保安全性。最佳實踐包括:僅必要時使用、避免盲目執(zhí)行網絡命令、用visudo編輯sudoers文件、連續(xù)操作可考慮

如何在Linux上管理組 如何在Linux上管理組 Jul 06, 2025 am 12:02 AM

管理Linux用戶組需掌握查看、創(chuàng)建、刪除、修改及用戶歸屬調整等操作。查看用戶組信息可用cat/etc/group或getentgroup,查看用戶所屬組用groups[用戶名]或id[用戶名];創(chuàng)建組使用groupadd,可加-g指定GID;刪除空組用groupdel;添加用戶到組用usermod-aG,修改主組用usermod-g;從組移除用戶可通過編輯/etc/group或使用vigr命令;修改組屬性用groupmod-n(改名)或groupmod-g(改GID),並記得更新相關文件權限。

如何在Linux中找到我的私人和公共IP地址? 如何在Linux中找到我的私人和公共IP地址? Jul 09, 2025 am 12:37 AM

在Linux系統(tǒng)中,1.使用ipa或hostname-I命令可查看私有IP;2.使用curlifconfig.me或curlipinfo.io/ip可獲取公網IP;3.桌面版可通過系統(tǒng)設置查看私有IP,瀏覽器訪問特定網站查看公網IP;4.可將常用命令設為別名以便快速調用。這些方法簡單實用,適合不同場景下的IP查看需求。

See all articles