GNU/Linux >> Belajar Linux >  >> Linux

Apa itu zImage, rootfs

Untuk memahami apa yang menjadi tanggung jawab setiap file, Anda harus memahami bagaimana MPU dimulai.
Seperti yang saya pahami dari pertanyaan Anda, Anda menggunakan keluarga mikroprosesor NXP (Freescale) i.MX. Ini termasuk pemuat ROM kecil, yang akan membuat pengaturan sistem dasar (antarmuka ke memori, pohon jam, dll.), mencari media untuk boot dari (berdasarkan bit OTP atau GPIO yang dibakar), menemukan bootloader (u-boot dalam kasus Anda) di alamat persis yang ditentukan dalam lembar data, muat dan mulai. U-boot akan memasukkan lebih banyak antarmuka (mis. Ethernet), menemukan argumen yang harus diteruskan ke Kernel (pengaturan layar, konsol, pengaturan jaringan jika Anda menggunakan NFS), menyalin Kernel ke DDR dan meneruskan semua argumen. Kernel akan memuat semua driver, dan mencari rootf dengan semua pustaka, aplikasi, dll. Setelah ini Kernel akan memulai skrip init, yang akan menginisiasi semua sistem dan memulai aplikasi Anda.

  1. u-boot adalah hal pertama yang akan dimulai setelah ROM bootloader. Anda dapat menggantinya dengan kode Anda sendiri jika ingin MPU menjalankan kode runbare-metal tanpa OS (seperti mikrokontroler).
  2. zImage adalah versi terkompresi dari kernel Linux image yang mengekstrak sendiri.
  3. rootfs adalah sistem file root, yang berisi semua aplikasi, lib, dan hampir semuanya, termasuk folder rumah.
  4. gambar sdcard hanyalah semua hal yang disebutkan di atas yang dapat disalin (dengan dd) ke kartu, setelah menyalin Anda akan melihat partisi FAT dengan Kernel dan pohon perangkat dan partisi EXT dengan rootfs, u-boot berada di area yang tidak dipartisi sebelum FAT (dalam jika Anda menggunakan i.MX6itu 0x80000). Itu ada hanya untuk membuat hidup Anda lebih mudah.

  • zImage adalah citra biner sebenarnya dari kernel yang dikompilasi. Itulah yang akan dimuat dan coba dijalankan oleh boot loader (Saya percaya pada linux tersemat entah bagaimana itu ditulis ke sektor boot secara langsung; konsultasikan dengan manual distro linux tersemat Anda untuk mendapatkan petunjuk)
  • rootfs adalah apa yang disebut imej INITial RamDisk (juga dikenal sebagai initrd) yang berisi semua yang dibutuhkan kernel untuk melakukan booting ke keadaan di mana sistem file root sebenarnya dapat dipasang.
  • uboot adalah boot loader yang digunakan oleh linux tersemat; Ini pada dasarnya memberitahu BIOS (Basic Input Output System) untuk menjalankan zImage dengan opsi yang menyatakan zImage di mana menemukan sistem file root sehingga ia tahu cara memulai.

Jika saya harus menebak, saya akan mengambil risiko bahwa semua file ini dibuat dalam proses pembuatan gambar Kartu SD yang sebenarnya, bahkan jika Anda tidak perlu lagi menambahkan tiga file sebelumnya secara manual ke gambar akhir lagi.


Linux
  1. Apa artinya mengatakan kernel linux bersifat preemptive?

  2. Apa arti EXPORT_SYMBOL dalam kode kernel Linux?

  3. Apa yang dilakukan dengan mengaktifkan kernel.unprivileged_userns_clone?

  1. Bagaimana saya tahu apa yang memutar drive saya?

  2. Apa perbedaan antara istilah Makefile kernel berikut:vmLinux, vmlinuz, vmlinux.bin, zimage &bzimage?

  3. Apa itu penerusan ip kernel?

  1. Apa yang Membuat Server Linux Kernel Mendasar?

  2. Apa sumber kernel Linux saat ini?

  3. Apa sebenarnya header kernel Linux itu?