Kernel Açılış Süreci
Sistem Açılışı

Kernel Bootstrap Süreci

Kernel Derleme İşleminde Son Adımlar
Kernel Bootstrap Kodu
head.o:
Bu bölümde mimariye özgün obje kodları bulunur. Boot yükleyici uygulama tarafından çalıştırılmasına yöneliktir.
head-cpu.o:
İşlemciye özgü ilklendirme işlemlerine ait kodları barındırır.
decompress.o:
Sıkıştırılmış formda bulunan kernel'i açma işlemlerini gerçekleştirir.
lib1funcs.o:
ARM mimarisi için optimize edilmiş bölme işlemlerine dair kodları içerir. VFP NEON
head.o Tarafından Yapılan İşlemler
head.o Tarafından Yapılan İşlemlerMimari, işlemci ve makine/sistem tipinin belirlenmesi
Memory Management Unit konfigürasyonu ve virtual memory desteğinin etkinleştirilmesi
init/main.c içerisindeki start_kernel fonksiyounun çağrılması
start_kernel
start_kernelsetup_arch(&command_line)ile bootloader tarafından spesifik bir adrese konulmuş olan kernel boot parametrelerini işlerMesajları olabildiğince erken gösterebilmek için console aygıtının ilklendirilmesi
security, buffers, high resolution timers gibi bir çok altsistemin ilklendirilmesi
Son olarak
rest_init'in çağrılması
rest_init
rest_initinit sürecinin her zaman PID değeri olarak 1 alması için erkenden bir thread oluşturuluyor ve idle_loop'a geri dönüyor:
kernel_init
kernel_initkernel_init temel olarak iki çağrıda bulunur:
Bu aşamada temel kernel servisleri hazır olduğundan, device init işlemlerini başlatmak amacıyla
do_basic_setupçağrılırSonrasında
init_postçağrılır
init_post
init_postBoot işleminin son adımlarını gerçekleştirmekten sorumludur.
Bir console açmayı dener (Initial Console)
Başarısız olduğu takdirde:
Unable to open initial consoleuyarı mesajı görüntülenir.Ardından
initprocess'ini çalıştırmayı dener.Başarılı olması halinde rest_init sürecinde oluşturulan kernel thread'ini bir userspace process'e dönüştürür.
init_post
init_postÖzet
Boot yükleyici uygulaması tarafından bootstrap kodu çalıştırılıyor
Bootstrap kodu işlemci ve kartı ilklendiriyor
Ardından Linux kernel'i RAM bellek üzerinde uncompress ediyor.
start_kernel fonksiyonu çalıştırılıyor
Boot yükleyici tarafından sağlanan command line bölümü kopyalanıyor
Sistem ve konsol ilklendirmeleri yapılıyor
Temel kernel servisleri ilklendiriliyor
İleride
initprocess'ine dönüşecek kernel thread'i oluşturuluyorAygıtlar ilklendiriliyor ve
initprocess'i userspace'ten çalıştırılıyor.
Last updated
Was this helpful?