Seluruh kernel dimuat ke dalam memori saat boot, biasanya bersama dengan initramfs
dewasa ini. (Masih memungkinkan untuk menyiapkan sistem untuk boot tanpa initramfs
tapi itu tidak biasa di desktop dan server.)
initramfs
Perannya adalah menyediakan fungsionalitas yang diperlukan untuk me-mount sistem file "nyata" dan melanjutkan booting sistem. Itu melibatkan modul kernel, dan juga berbagai binari:Anda memerlukan setidaknya udev
, mungkin beberapa jaringan, dan kmod
yang memuat modul.
Modul dapat dimuat ke dalam kernel setelah boot, jadi tidak ada persiapan khusus dari kernel dengan initramfs
. Mereka dapat disimpan di mana saja:initramfs
, /lib/modules
pada sistem file sebenarnya, di pohon pengembangan jika Anda sedang mengembangkan modul... initramfs
hanya perlu memuat modul yang diperlukan untuk me-mount sistem file root (yang berisi sisanya).
Seluruh kernel (tetapi bukan modulnya) akan dimuat ke dalam memori. Jika ada modul yang diperlukan kernel sebelum sistem file apa pun tersedia (ini biasanya berarti driver untuk sistem file dan perangkatnya), maka modul tersebut akan berada di initramfs (di memori), dan kernel akan memuatnya dari sana. Modul lain dapat dimuat nanti dari sistem file.
Kernel dalam pengaturan Linux modern sangat berbasis modul, yaitu, kernel yang tepat (dimuat saat boot ke RAM) hanya menyertakan fungsionalitas minimal, sisanya dikompilasi sebagai modul (dapat dimuat saat runtime). Untuk membuat ini berfungsi bahkan ketika mis. perangkat atau sistem file yang diperlukan untuk boot adalah modul, sebuah initramfs
dimuat dengan kernel (seperti namanya, ini adalah area RAM dengan sistem file sederhana, dipasang saat boot). Sistem file sementara ini dipasang pada /
, dan berisi program startup dan modul yang diperlukan. Setelah startup di initramfs
selesai, Linux mengeksekusi pivot_root(8)
, memasang /
asli dan melempar initramfs
konten.
Inti dari kerumitan ini adalah mis. distribusi dapat mengkompilasi satu kernel (kernel minimal dan kumpulan modul lengkap), dan pada instalasi kernel buatlah initramfs
disesuaikan dengan perangkat keras dan pengaturan mesin target. Semua ini diperlukan karena banyaknya variasi perangkat dan konfigurasi "Komputer Pribadi".