Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Apakah itu rootfs linux

Apakah itu rootfs linux

藏色散人
藏色散人asal
2023-04-19 10:11:253117semak imbas

linux rootfs merujuk kepada sistem fail akar dalam Linux adalah sistem fail pertama yang dipasang apabila kernel dimulakan Selepas sistem fail akar dipasang, beberapa skrip dan perkhidmatan permulaan asas akan dimuatkan ke dalam memori untuk dijalankan.

Apakah itu rootfs linux

Persekitaran pengendalian tutorial ini: sistem linux5.9.8, komputer Dell G3.

Apakah itu rootfs linux?

Sistem fail akar dalam Linux (prinsip dan pengenalan rootfs)

Apakah itu Fail sistem

Sistem fail ialah kaedah dan struktur data yang digunakan oleh sistem pengendalian untuk mengenal pasti fail pada peranti storan (biasanya cakera, tetapi juga pemacu keadaan pepejal berdasarkan NAND Flash) atau partition; iaitu pada peranti storan Cara untuk menyusun fail. Organisasi perisian yang bertanggungjawab untuk mengurus dan menyimpan maklumat fail dalam sistem pengendalian dipanggil sistem pengurusan fail, atau ringkasnya sistem fail. Sistem fail terdiri daripada tiga bahagian: antara muka sistem fail, koleksi perisian untuk pengendalian dan pengurusan objek, dan objek dan atribut. Dari perspektif sistem, sistem fail ialah sistem yang mengatur dan memperuntukkan ruang peranti storan fail, bertanggungjawab untuk penyimpanan fail, dan melindungi serta mendapatkan semula fail yang disimpan. Secara khusus, ia bertanggungjawab untuk mencipta fail untuk pengguna, menyimpan, membaca, mengubah suai dan membuang fail, mengawal akses fail dan membatalkan fail apabila pengguna tidak lagi menggunakannya.

Walaupun kernel adalah teras Linux, fail ialah alat utama yang digunakan oleh pengguna untuk berinteraksi dengan sistem pengendalian. Ini adalah benar terutamanya untuk Linux, yang, dalam tradisi UNIX, menggunakan mekanisme I/O fail untuk mengurus peranti perkakasan dan fail data.

2. Apakah sistem fail akar? kod Fail imej disimpan dalam sistem fail akar, dan program but sistem akan memuatkan beberapa skrip dan perkhidmatan permulaan asas ke dalam memori untuk dijalankan selepas sistem fail akar dipasang.

3. Mengapakah sistem fail akar begitu penting Sebab mengapa sistem fail akar mempunyai "root" di hadapannya menunjukkan bahawa ia adalah "root" untuk memuatkan sistem fail lain , maka jika tiada akar sedemikian, sistem fail lain tidak akan dapat dimuatkan.

Sistem fail akar mengandungi direktori dan fail kritikal yang diperlukan untuk permulaan sistem, serta fail yang diperlukan untuk membolehkan sistem fail lain dipasang. Contohnya: Aplikasi proses init mesti dijalankan pada sistem fail akar Sistem fail akar menyediakan direktori akar "/" Maklumat yang Linux bergantung pada a partition disimpan dalam root Dalam sistem fail /etc/fstab; kernel itu sendiri tidak boleh berfungsi, ia mesti Ia memerlukan kerjasama rootfs (fail konfigurasi dalam direktori dll, arahan shell dalam /bin /sbin dan direktori lain, dan fail perpustakaan dalam direktori /lib, dll...) untuk berfungsi.

Apabila Linux bermula, perkara pertama yang mesti dipasang ialah sistem fail akar; jika sistem tidak dapat memasang sistem fail akar daripada peranti yang ditentukan, sistem akan membuat ralat dan keluar dari permulaan. Selepas kejayaan, sistem fail lain boleh dipasang secara automatik atau manual. Oleh itu, sistem fail yang berbeza boleh wujud dalam sistem pada masa yang sama. Proses mengaitkan sistem fail dengan peranti storan dalam Linux dipanggil mounting. Gunakan arahan mount untuk melampirkan sistem fail pada hierarki sistem fail semasa (root). Apabila melakukan pelekap, sediakan jenis sistem fail, sistem fail dan titik pelekap. Selepas sistem fail akar dipasang pada "/" di bawah direktori akar, terdapat pelbagai direktori sistem fail akar di bawah direktori akar, fail: /bin /sbin /mnt, dsb., dan kemudian lekapkan partition lain ke / direktori mnt , terdapat pelbagai direktori dan fail partition ini dalam direktori /mnt.

4. Cara memasang sistem fail akar dalam kernel


Sebelum melaksanakan kernel_init, sistem fail bumbung akan diwujudkan.

1. Nama direktori akar ditetapkan kepada "/"; ditetapkan blok super; Pengenalan kepada pelbagai direktori yang biasa digunakan dalam sistem fail akar

Biasanya, sistem fail akar termasuk sekurang-kurangnya direktori berikut:

init/main.c->

start_kernel()->vfs_caches_init(totalram_pages)–>

mnt_init()–>

/* sysfs用来记录和展示linux驱动模型,sysfs先于rootfs挂载是为全面展示linux驱动模型做好准备 /
     / mnt_init()调用sysfs_init()注册并挂载sysfs文件系统,然后调用kobject_create_and_add()创建fs目录 */
     sysfs_init();

/* init_rootfs()注册rootfs,然后调用init_mount_tree()挂载rootfs */
     init_rootfs();

init_mount_tree();

1、sysfs文件系统目前还没有挂载到rootfs的某个挂载点上,后续init程序会把sysfs挂载到rootfs的sys挂载点上;

2、rootfs是基于内存的文件系统,所有操作都在内存中完成;也没有实际的存储设备,所以不需要设备驱动程序的参与。基于以上原因,linux在启动阶段使用rootfs文件系统,当磁盘驱动程序和磁盘文件系统成功加载后,linux系统会将系统根目录从rootfs切换到磁盘文件系统。

start_kernel
  vfs_caches_init
    mnt_init
      init_rootfs注册rootfs文件系统
      init_mount_tree 挂载rootfs文件系统
        vfs_kern_mount
          mount_fs
            type->mount其实是rootfs_mount
              mount_nodev
                fill_super 其实是ramfs_fill_super
                  inode = ramfs_get_inode(sb, NULL, S_IFDIR | fsi->mount_opts.mode, 0);
                  sb->s_root = d_make_root(inode);
                    static const struct qstr name = QSTR_INIT("/", 1);[1*]
                    __d_alloc(root_inode->i_sb, &name);
          …
          mnt->mnt.mnt_root = root;[2*]
          mnt->mnt.mnt_sb = root->d_sb;[3*]
          mnt->mnt_mountpoint = mnt->mnt.mnt_root;[4*]
          mnt->mnt_parent = mnt;[5*]
root.mnt = mnt;
        root.dentry = mnt->mnt_root;
        mnt->mnt_flags |= MNT_LOCKED;
        set_fs_pwd(current->fs, &root);
        set_fs_root(current->fs, &root);
  …
  rest_init
  kernel_thread(kernel_init, NULL, CLONE_FS);

6. Direktori yang biasa digunakan Sistem fail Linux biasanya mempunyai direktori berikut:

/bin direktori
Direktori ini menyimpan arahan asas yang boleh digunakan oleh semua pengguna Arahan ini boleh digunakan sebelum memasang sistem fail lain, jadi direktori /bin mestilah sama dengan root Sistem fail berada dalam partition yang sama.
Arahan yang biasa digunakan dalam direktori /bin ialah: cat, chgrp, chmod, cp, ls, sh, kill, mount, umount, mkdir, mknod, test, dll. Apabila kita menggunakan Busybox untuk membuat sistem fail akar, kami menjana Dalam direktori bin, anda boleh melihat beberapa fail boleh laku, iaitu beberapa arahan yang tersedia.

/sbin directory
Direktori ini menyimpan perintah sistem, iaitu perintah yang hanya pentadbir boleh gunakan perintah Sistem juga boleh disimpan dalam /usr/sbin,/usr/local / Di bawah direktori sbin, direktori /sbin menyimpan perintah sistem asas Ia digunakan untuk memulakan sistem, membaiki sistem, dll. Sama seperti direktori /bin, /sbin boleh digunakan sebelum memasang sistem fail lain, jadi /. direktori sbin mesti Dalam partition yang sama dengan sistem fail akar.
Arahan yang biasa digunakan dalam direktori /sbin termasuk: tutup, but semula, fdisk, fsck, dsb. Arahan sistem yang dipasang oleh pengguna tempatan diletakkan dalam direktori /usr/local/sbin.

/dev directory
Direktori ini menyimpan fail peranti adalah jenis fail unik dalam Linux, pelbagai peranti diakses dalam bentuk fail. iaitu, mengendalikan perkakasan tertentu dengan membaca dan menulis fail peranti. Sebagai contoh, port bersiri 0 boleh dikendalikan melalui fail "dev/ttySAC0", dan partition kedua peranti MTD boleh diakses melalui "/dev/mtdblock1".

/etc direktori
Pelbagai fail konfigurasi disimpan dalam direktori ini Untuk sistem Linux pada PC, terdapat banyak fail dan direktori dalam direktori /etc ini adalah Pilihan , ia bergantung pada aplikasi yang anda ada pada sistem dan sama ada ia memerlukan fail konfigurasi. Dalam sistem terbenam, ini boleh dikurangkan dengan banyak.

/direktori lib
Direktori ini menyimpan perpustakaan kongsi dan boleh dimuatkan (pemandu), dan perpustakaan kongsi digunakan untuk memulakan sistem. Jalankan program boleh laku dalam sistem fail akar, seperti program dalam direktori /bin /sbin.

/direktori rumah
Direktori pengguna, ia adalah pilihan Untuk setiap pengguna biasa, terdapat subdirektori yang dinamakan sempena nama pengguna dalam direktori /home, yang Simpan berkaitan pengguna fail konfigurasi.

/direktori akar
Direktori pengguna akar Sejajar dengan itu, direktori pengguna biasa ialah subdirektori di bawah /home.

/usr direktori
Kandungan direktori /usr boleh disimpan dalam partition lain, dan kemudian dipasang pada direktori /usr dalam sistem fail akar selepas sistem bermula. Ia menyimpan program dan data yang dikongsi, baca sahaja, yang menunjukkan bahawa kandungan direktori /usr boleh dikongsi antara berbilang hos, dan ini terutamanya mematuhi piawaian FHS. Fail dalam /usr hendaklah dibaca sahaja, berkaitan dengan hos lain dan fail berubah-ubah hendaklah disimpan dalam direktori lain, seperti /var. Direktori /usr boleh dikurangkan dalam sistem terbenam.

/var direktori
Bertentangan dengan direktori /usr, direktori /var menyimpan data berubah-ubah, seperti direktori kili (mel, berita), fail log dan fail sementara.

/direktori proc
Ini ialah direktori kosong, selalunya digunakan sebagai titik pelekap sistem fail proc Sistem fail proc adalah sistem fail maya peranti storan Direktori dan fail dijana sementara oleh kernel untuk mewakili status berjalan sistem dan juga boleh mengendalikan sistem kawalan fail.

/mnt direktori
ialah titik pelekap yang digunakan untuk melekapkan sistem fail buat sementara waktu Anda juga boleh mencipta subdirektori kosong di dalamnya, seperti /. mnt/cdram /mnt/hda1. Digunakan untuk memasang CD dan cakera keras buat sementara waktu.

/tmp direktori
digunakan untuk menyimpan fail sementara, biasanya direktori kosong Sesetengah atur cara yang perlu menjana fail sementara menggunakan direktori /tmp, jadi direktori /tmp mesti wujud dan boleh diakses.

Cadangan berkaitan: "Tutorial Video Linux"

Atas ialah kandungan terperinci Apakah itu rootfs linux. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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
Artikel sebelumnya:apakah binari linuxArtikel seterusnya:apakah binari linux