Jadual Kandungan
1. Sistem fail akar" >1. Sistem fail akar
2. Sistem fail akar utama" >2. Sistem fail akar utama
3.Ramdisk production" >3.Ramdisk production
4.Cramfs制作" >4.Cramfs制作
5.其他根文件系统的制作" >5.其他根文件系统的制作
6.BusyBox编译制作" >6.BusyBox编译制作
Rumah Tutorial sistem LINUX Rahsia sistem fail akar Linux

Rahsia sistem fail akar Linux

Feb 15, 2024 pm 01:42 PM
linux tutorial linux sistem linux Sistem pengendalian Linux arahan linux skrip shell embeddedlinux Bermula dengan linux pembelajaran linux

Linux ialah sistem pengendalian sumber terbuka, mudah alih dan boleh disesuaikan yang digunakan secara meluas dalam pelbagai bidang, seperti pelayan, desktop, peranti terbenam, dsb. Teras Linux ialah kernel, yang bertanggungjawab mengurus sumber perkakasan dan menyediakan perkhidmatan asas. Walau bagaimanapun, kernel bukanlah entiti bebas dan memerlukan sistem fail untuk menyimpan dan mengakses pelbagai data dan program. Sistem fail ialah kaedah mengatur dan mengurus fail Ia mentakrifkan nama fail, lokasi, atribut, kebenaran dan maklumat lain. Di Linux, terdapat pelbagai jenis sistem fail, seperti ext4, xfs, btrfs, dsb., yang masing-masing mempunyai ciri dan kelebihan tersendiri. Walau bagaimanapun, di antara semua sistem fail, terdapat sistem fail khas, yang merupakan asas dan teras sistem Linux, iaitu sistem fail akar (rootfs). Jadi, apakah sistem fail akar? Apa yang ia lakukan? Bagaimanakah ia dicipta dan diuruskan? Artikel ini akan menjawab soalan dari aspek berikut:

Rahsia sistem fail akar Linux

1. Sistem fail akar

Sistem fail ialah struktur direktori yang disertakan dalam cakera (termasuk cakera optik, cakera liut, cakera kilat dan peranti storan lain) atau sekatan peranti cakera yang berkenaan boleh mengandungi satu atau lebih sistem fail jika anda ingin memasukkan sistem fail; , Perkara pertama yang anda perlu lakukan ialah memasang sistem fail untuk memasang sistem fail, anda mesti menentukan titik pelekap.

Nota: Untuk pembangunan aplikasi kami, apabila membeli papan pembangunan, pengilang akan menyediakan sistem fail root siap pakai dan BootLoader Jika perlu, kami boleh menukar arahan tanpa membuat sistem fail akar baharu dari awal. Walau bagaimanapun, proses pengeluaran di sini boleh memberi kita pemahaman yang lebih mendalam tentang sistem fail Linux.

2. Sistem fail akar utama

* Dalam Linux, rootfs adalah penting. PC terutamanya melaksanakan ramdisk dan secara langsung memasang sistem fail akar pada HD (Harddisk, cakera keras biasanya tidak boot dari HD, tetapi dari Flash Kaedah yang paling mudah adalah untuk memuatkan rootfs ke RAMDisk yang lebih rumit satu ialah membaca Cramfs terus daripada Flash, dan yang lebih rumit ialah membahagikan pada Flash dan membina sistem fail seperti JFFS2.

* RAMDisk memampatkan rootfs yang disediakan dan menulisnya ke Flash Semasa permulaan, Pemuat But memuatkannya ke dalam RAM, menyahmampatnya, dan kemudian melekapkannya ke /. Kaedah ini mudah dikendalikan, tetapi sistem fail dalam RAM tidak dimampatkan, jadi ia memerlukan RAM, sumber yang terhad dalam banyak sistem terbenam.

ramdisk menggunakan ruang memori untuk mensimulasikan partition cakera keras Ramdisk biasanya menggunakan pemampatan sistem fail cakera dan disimpan dalam flash Semasa pemulaan sistem, ia dinyahmampatkan ke SDRAM dan dipasang dengan sistem fail akar ramdisk , satu ialah ia boleh diformat dan dimuatkan, dan sudah disokong dalam kernel Linux 2.0/2.2. Kelemahannya ialah saiznya tetap hanya disokong oleh kernel 2.4, dan ia tidak boleh diformatkan. Tetapi ia mudah digunakan, dan saiznya bertambah atau berkurangan mengikut ruang yang diperlukan Ia adalah teknologi ramdisk yang biasa digunakan pada masa ini.

* initrd ialah format RAMDisk Sebelum kernel 2.4, ia adalah image-initrd 2.5 memperkenalkan cpio-initrd, yang sangat memudahkan proses permulaan Linux dan mematuhi falsafah asas Linux: Keep it simple, stupid (KISS) . Walau bagaimanapun, Sebagai format baharu, cpio-initrd belum diuji secara meluas terutamanya dalam Linux terbenam.

* Cramfs ialah sistem fail yang sangat ringkas yang ditulis oleh Linus Ia mempunyai pemampatan yang baik dan juga boleh dijalankan terus daripada Flash tanpa memuatkan ke dalam RAM, sekali gus menjimatkan RAM. Walau bagaimanapun, Cramfs adalah baca sahaja, yang menyusahkan untuk direktori yang perlu diubah suai semasa runtime (seperti /etc, /var, /tmp, oleh itu, direktori ini biasanya dijadikan fs boleh ditulis seperti ramfs).

* SquashFS ialah peningkatan kepada Cramfs. Menerobos beberapa batasan Cramfs, ia juga mempunyai kelebihan dari segi penggunaan Flash dan RAM. Walau bagaimanapun, menurut pembangun, ia mungkin tidak sebaik Cramfs dari segi prestasi. Ini juga merupakan pendekatan baharu yang memerlukan lebih banyak ujian sebelum diterima pakai dalam sistem terbenam.

3.Ramdisk production

Cara membuat RAMDisk adalah seperti berikut:
(1) Dalam persekitaran sistem pengendalian Linux PC, hasilkan fail yang boleh dimayakan ke dalam peranti blok Anggapkan bahawa nama fail ialah init.img.

$ dd if=/dev/zero of=init.img bs=4096 count=1024
Salin selepas log masuk

di mana bs*count ialah saiz peranti blok (unit: bait). Selepas menjana fail init.img, fail itu juga mesti diformatkan.

$ mke2fs –m0 –F init.img
Salin selepas log masuk

(2) Buat ram folder baharu dan lampirkan init.img pada direktori ram.

$ mkdir ram
$ mount init.img ram/ -o loop
Salin selepas log masuk

这时,读写ram目录,等效于读写init.img文件。用户可以将根文系统所需的文件写入到ram目录中。往ram目录写完文件以后,还需要使用umount ram命令卸载init.img,才能将已写入的文件保存到init.img中。

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

4.Cramfs制作

CramFS(Compressed Rom File System)是Linux Torvalds在Transmeta任职时,所参与开发的文件系统。它是针对Linux内核2.4之后的版本所设计的一种新型只读文件系统,采用了zlib 压缩,压缩比一般可以达到1:2,但仍可以作到高效的随机读取,Linux系统中,通常把不需要经常修改的目录压缩存放,并在系统引导的时候再将压缩文件 解开。因为Cramfs不会影响系统的读取文件的速度,而且是一个高度压缩的文件系统。因此非常广泛应用于嵌入式系统中。

在嵌入式的 环境之下,内存和外存资源都需要节约使用。如果使用RAMDISK方式来使用文件系统,那么在系统运行之后,首先要把Flash上的映像文件解压缩到内存 中,构造起RAMDISK环境,才可以开始运行程序。但是它也有很致命的弱点。在正常情况下,同样的代码不仅在Flash中占据了空间(以压缩后的形式存 在),而且还在内存中占用了更大的空间(以解压缩之后的形式存在),这违背了嵌入式环境下尽量节省资源的要求。

使用CramFS文件 系统就是一种解决这个问题的方式。CramFS是一个压缩格式的文件系统,它并不需要一次性地将文件系统中的所有内容都解压缩到内存之中,而只是在系统需 要访问某个位置的数据的时候,马上计算出该数据在CramFS中的位置,将它实时地解压缩到内存之中,然后通过对内存的访问来获取文件系统中需要读取的数 据。CramFS中的解压缩以及解压缩之后的内存中数据存放位置都是由CramFS文件系统本身进行维护的,用户并不需要了解具体的实现过程,因此这种方 式增强了透明度,对开发人员来说,既方便,又节省了存储空间。

但是Cramfs也有其缺点:延迟、小于16MB、不支持写,只支持PAGE_CREATE_SIZE=4096的内核。

制作的命令:(root文件夹中存放着文件系统)

#mkcramfs root cramfs.img
Salin selepas log masuk

5.其他根文件系统的制作

制作yaffs文件系统: mkyaffsimage myroots myroots.img
制作squashfs: mksquashfs $(FS_DIR) $(FS_NAME) -noappend -be -lzma -no-fragments –noI
Salin selepas log masuk

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
Salin selepas log masuk

进入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
Salin selepas log masuk

创建 dev 中的节点
如果使用“linux 2.6.xx”的内核,应该事先创建节点“console”、“null”。否则在系统启动时内容会提示以下错误:

Warning: unable to open an initial console.
Kernel panic - not syncing: Attempted to kill init!
Salin selepas log masuk

创建节点的命令如下:

# mknod dev/console c 5 1
# mknod dev/null c 1 3 移植Busybox:
Salin selepas log masuk

进入到压缩文件存放的目录下,并解压。然后进入解压后的busybox目录文件夹,随后配置busybox 。

[root@190 busybox-1.2.0]# make menuconfig
Salin selepas log masuk

由于每个版本的配置选项组织有所不同。不管怎样,我们注意以下选项就行了:

1) Support for devfs
2) Build BusyBox as a static binary ( no shared libs ) //将busybox编译成静态链接
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脚本才能执行
7)ash
8)cp cat ls mkdir mv //可执行命令工具的选择,自己看着办吧,需要用到的就选上
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
Salin selepas log masuk

以上内容必须选上,其他可按默认值;如果要支持其他功能,如网络支持等,可按需选择,英语不是很烂的话,这些都没有问题。
配置好之后,保存退出。然后对其编译和安装到刚才建立的根文件系统目录下:

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

安装好之后,将相应的二进制文件拷贝到根文件系统相应的目录下:
拷贝一些管理员控制程序到/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

Melalui analisis di atas, kita dapat melihat bahawa sistem fail akar adalah bahagian penting dalam sistem Linux Ia mengandungi fail utama dan direktori yang diperlukan untuk permulaan dan operasi sistem Linux. Sistem fail akar biasanya dipasang di bawah direktori / (root) dan boleh mengandungi titik pelekap untuk sistem fail lain. Sistem fail akar boleh menggunakan pelbagai jenis format sistem fail dan boleh dibuat serta diuruskan melalui beberapa alat. Sebagai contoh, kita boleh menggunakan arahan mkfs untuk memformat partition atau peranti sebagai sistem fail akar, kita boleh menggunakan perintah mount untuk melekap atau menyahlekap sistem fail root, dan kita boleh menggunakan perintah df untuk melihat penggunaan root. sistem fail, dsb. Ringkasnya, sistem fail akar adalah rahsia sistem Linux, yang menyediakan asas yang stabil dan fleksibel untuk sistem Linux.

Atas ialah kandungan terperinci Rahsia sistem fail akar Linux. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

DeepSeek Web Versi Pintu Masuk Laman Web Rasmi DeepSeek DeepSeek Web Versi Pintu Masuk Laman Web Rasmi DeepSeek Feb 19, 2025 pm 04:54 PM

DeepSeek adalah alat carian dan analisis pintar yang kuat yang menyediakan dua kaedah akses: versi web dan laman web rasmi. Versi web adalah mudah dan cekap, dan boleh digunakan tanpa pemasangan; Sama ada individu atau pengguna korporat, mereka dapat dengan mudah mendapatkan dan menganalisis data besar-besaran melalui DeepSeek untuk meningkatkan kecekapan kerja, membantu membuat keputusan dan menggalakkan inovasi.

Cara Memasang DeepSeek Cara Memasang DeepSeek Feb 19, 2025 pm 05:48 PM

Terdapat banyak cara untuk memasang DeepSeek, termasuk: Menyusun dari Sumber (untuk pemaju berpengalaman) menggunakan pakej yang dikompilasi (untuk pengguna Windows) menggunakan bekas docker (untuk yang paling mudah, tidak perlu bimbang tentang keserasian) Dokumen rasmi dengan berhati -hati dan menyediakannya sepenuhnya untuk mengelakkan masalah yang tidak perlu.

Bagaimana untuk menyelesaikan masalah kebenaran yang dihadapi semasa melihat versi Python di Terminal Linux? Bagaimana untuk menyelesaikan masalah kebenaran yang dihadapi semasa melihat versi Python di Terminal Linux? Apr 01, 2025 pm 05:09 PM

Penyelesaian kepada Isu Kebenaran Semasa Melihat Versi Python di Terminal Linux Apabila anda cuba melihat versi Python di Terminal Linux, masukkan Python ...

Pemasangan Laman Web Rasmi Bitget (Panduan Pemula 2025) Pemasangan Laman Web Rasmi Bitget (Panduan Pemula 2025) Feb 21, 2025 pm 08:42 PM

Bitget adalah pertukaran cryptocurrency yang menyediakan pelbagai perkhidmatan perdagangan termasuk perdagangan tempat, perdagangan kontrak dan derivatif. Ditubuhkan pada tahun 2018, pertukaran itu beribu pejabat di Singapura dan komited untuk menyediakan pengguna dengan platform perdagangan yang selamat dan boleh dipercayai. Bitget menawarkan pelbagai pasangan perdagangan, termasuk BTC/USDT, ETH/USDT dan XRP/USDT. Di samping itu, pertukaran mempunyai reputasi untuk keselamatan dan kecairan dan menawarkan pelbagai ciri seperti jenis pesanan premium, perdagangan leverage dan sokongan pelanggan 24/7.

Dapatkan Pakej Pemasangan Gate.io secara percuma Dapatkan Pakej Pemasangan Gate.io secara percuma Feb 21, 2025 pm 08:21 PM

Gate.io adalah pertukaran cryptocurrency yang popular yang boleh digunakan pengguna dengan memuat turun pakej pemasangannya dan memasangnya pada peranti mereka. Langkah -langkah untuk mendapatkan pakej pemasangan adalah seperti berikut: Lawati laman web rasmi Gate.io, klik "Muat turun", pilih sistem operasi yang sepadan (Windows, Mac atau Linux), dan muat turun pakej pemasangan ke komputer anda. Adalah disyorkan untuk mematikan perisian antivirus atau firewall sementara semasa pemasangan untuk memastikan pemasangan yang lancar. Selepas selesai, pengguna perlu membuat akaun Gate.io untuk mula menggunakannya.

Bagaimana cara menetapkan kebenaran secara automatik UnixSocket selepas sistem dimulakan semula? Bagaimana cara menetapkan kebenaran secara automatik UnixSocket selepas sistem dimulakan semula? Mar 31, 2025 pm 11:54 PM

Bagaimana untuk menetapkan keizinan UnixSocket secara automatik selepas sistem dimulakan semula. Setiap kali sistem dimulakan semula, kita perlu melaksanakan perintah berikut untuk mengubahsuai keizinan UnixSocket: sudo ...

Pakej pemasangan OUYI OKX disertakan secara langsung Pakej pemasangan OUYI OKX disertakan secara langsung Feb 21, 2025 pm 08:00 PM

Ouyi Okx, pertukaran aset digital terkemuka di dunia, kini telah melancarkan pakej pemasangan rasmi untuk menyediakan pengalaman perdagangan yang selamat dan mudah. Pakej pemasangan OKX OUYI tidak perlu diakses melalui penyemak imbas. Proses pemasangan adalah mudah dan mudah difahami.

Portal rasmi muat turun Ouyi Exchange Portal rasmi muat turun Ouyi Exchange Feb 21, 2025 pm 07:51 PM

Ouyi, juga dikenali sebagai Okx, adalah platform perdagangan cryptocurrency terkemuka di dunia. Artikel ini menyediakan portal muat turun untuk pakej pemasangan rasmi Ouyi, yang memudahkan pengguna memasang klien OUYI pada peranti yang berbeza. Pakej pemasangan ini menyokong sistem Windows, Mac, Android dan iOS. Selepas pemasangan selesai, pengguna boleh mendaftar atau log masuk ke akaun OUYI, mula membuat kriptografi perdagangan dan nikmati perkhidmatan lain yang disediakan oleh platform.

See all articles