Eski zamanlarda, çekirdek, aygıt kökünün büyük / küçük sayısını bilmek zor kodlanır ve çekirdeğe yerleştirilmiş tüm aygıt sürücülerini başlattıktan sonra bu aygıtı monte eder. Yardımcı rdev
program, çekirdek görüntüsündeki kök cihaz numarasını, yeniden derlemek zorunda kalmadan değiştirmek için kullanılabilir.
Sonunda boot yükleyicileri geldi ve çekirdeğe bir komut satırı iletebildiler. Eğer root=
argüman geçildiyse, bu, çekirdeğe fs kökünün yerleşik değer yerine nerede olduğunu söyledi. Buna erişmek için sürücülerin hala çekirdeğe yerleştirilmeleri gerekiyordu. Argüman /dev
dizindeki normal bir cihaz düğümü gibi gözükse de /dev
, kök fs kurulmadan önce hiçbir dizin yoktur , bu yüzden çekirdek orada bir dev düğümü arayamaz. Bunun yerine, iyi bilinen bazı cihaz isimleri çekirdeğe kodlanmış olarak kodlanmıştır, böylece ip cihaz numarasına çevrilebilir. Bu nedenle, çekirdek gibi şeyleri tanıyabilir /dev/sda1
, ancak /dev/mapper/vg0-root
UUID gibi daha egzotik olmayan şeyleri tanıyabilir .
Daha sonra, initrd
resme geldi. Çekirdeğin yanı sıra, önyükleyici bir initrd
çeşit sıkıştırılmış dosya sistemi görüntüsü (gzip ext2 görüntüsü, gzip romfs görüntüsü, squashfs baskın hale geldi) olan görüntüyü yüklerdi. Çekirdek bu görüntüyü bir ramdisk içine açar ve ramdisk'i kök fs olarak bağlar. Bu görüntü, gerçek yerine bazı ek sürücüler ve önyükleme komut dosyaları içeriyordu init
. Bu önyükleme komut dosyaları, donanımı tanımak, baskın dizileri ve LVM gibi şeyleri etkinleştirmek, UUID'leri tespit etmek ve şimdi UUID, birim etiketi ve diğer gelişmiş şeyler tarafından belirtilebilecek asıl kökü bulmak için çekirdek komut satırını ayrıştırmak için çeşitli görevler gerçekleştirdi. Daha sonra gerçek kök fs'nin içine yerleştirildi /initrd
, ardından pivot_root
çekirdek takasının yapılması için sistem çağrısını yürüttü /
ve/initrd
, sonra /sbin/init
gerçek kök üzerinde çalıştırılır , bu daha sonra /initrd
ramdisk'i söküp serbest bırakır.
Sonunda, bugün biz var initramfs
. Bu, benzer initrd
, ancak bir ramdisk içine yüklenen sıkıştırılmış bir dosya sistemi görüntüsü yerine, sıkıştırılmış bir cpio arşividir. Kök olarak bir tmpfs monte edilir ve arşiv orada çıkarılır. Önyükleme komut dosyası pivot_root
, kirli bir bilgisayar korsanlığı olarak kabul edilmek yerine initramfs
, asıl kökü /root
bağlar, tmpfs kökündeki tüm dosyaları, sonra chroot
içine /root
ve exec komutunu siler /sbin/init
.