Boot Process: Kernel

Bootloader gerekli parametreleri ilettiğine göre, şimdi nasıl başladığına bakalım:

Initrd vs Initramfs

Kernel bootup’tan bahsederken biraz tavuk-yumurta problemi vardır. Kernel sistemimizin donanımını yönetir, ancak bootup sırasında tüm driver’lar kernel’a hazır değildir. Bu yüzden kernel’ın kalan donanıma ulaşması için gerekli olan sadece temel modülleri içeren geçici bir root filesystem’a ihtiyaç duyarız. Linux’un eski sürümlerinde bu görev initrd’ye (initial ram disk) verilmişti. Kernel, initrd’yi mount eder, gerekli bootup driver’larını alır, ardından ihtiyaç duyduğu her şeyi yüklemeyi bitirdiğinde initrd’yi gerçek root filesystem ile değiştirirdi. Günümüzde, initramfs adlı bir şeyimiz var; bu, gerçek root filesystem için gerekli tüm driver’ları yüklemek amacıyla kernel’ın içine yerleştirilmiş geçici bir root filesystem’dır, artık initrd dosyasını bulmaya gerek yoktur.

Root filesystem’i mount etme

Artık kernel, bir root device oluşturmak ve root partition’ı mount etmek için ihtiyaç duyduğu tüm modüllere sahiptir. Ancak daha ileri gitmeden önce, root partition aslında ilk olarak read-only modda mount edilir, böylece fsck güvenli bir şekilde çalışabilir ve sistem bütünlüğünü kontrol edebilir. Sonrasında root filesystem’i read-write modda yeniden mount eder. Ardından kernel init programını bulur ve çalıştırır.

Last updated