Linux açılışta neler yapar? Bir linux makine ilk açıldığında kernel hafızaya yüklenir. Sonra kernel çalışmaya baslar ve donanımı tanır. Kernel isini bitirdikten sonra "init" programını çalıştırır.
Init çalışan ilk programdır. Bu yüzden process number'i 1 dır. Kernel init'i belli yerlerde arar. Linux bir makinede init normalde /sbin/init dedir. Kernel init i çalıştıramaz ise /bin/sh'i arar. Eğer onu da çalıştıramazsa Linux açılmaz.
Init başladığında boot işlemini bitirir (dosya sistemini kontrol eder, temizler, bazı servisleri çalıştırır, ve her terminal için "getty" programını ve kullanıcıların sisteme giriş yapacağı konsol'u çalıştırır.). Sistem düzgün bir şekilde açıldıktan sonra init getty'yi tekrar çalıştırır (böylece diğer bir kullanıcı sisteme giriş yapabilir).
Bir program başlayıp bir çocuk program başlatıyorsa ve çocuk program sonlanmadan ana program sonlanırsa ,program init'in çocuk programı olur. Bu process tree grafiğini anlamakta bize yardımcı olur sanırım.
Init başladığında /etc/inittab dosyasını okur. Bu dosya 4 kolondan oluşur.
id:runlevels:actionrocess
id = dosyadaki satirini belirler.(getty programini calistiran satirlar icin terminali belirler.-/dev/tty den sonra gelen sayi- )
runlevel = assagida aciklayacagim. runlevel tek bir sayidan olusur.
action = islemin nasil yapilacagini belirler.(once - bir kerecalistir ; respawn- bir sonraki bolumde tekrar calistir.)
process = calistirilacak komut.
Getty'yi ilk sanal konsolda(terminalde) baslatmak icin
1:2345:respawn:/sbin/getty 9600 tty1 satiri kullanilabilir.
1. kolon = /dev/tty1 'i temsil eder. Yani program ilk sanal konsaolda calistirilacak.
2. kolon = 2,3,4,5 runlevel larina etki edecek demektir.(runlevel aciklanacak -walla bak-.)
3. kolon = komut tamamlandiktan sonra tekrar calistirilacak.
4. kolon = getty'yi 1.sanal konsolda calistiracak komut.
Init bir programi calistirmak istediginde program calismazsa init programi tekrar calistirmak ister. Bunun sonsuza kadar surmesi cok fazla sistem kaynagini tuketecegi icin init sikca calistirilan programlarin bir listesini tutar. Cok sik calistirilan programi 5 dakika icin durdurur ve sonra tekrar calistirir.
Runlevel :
Runlevel'lar inittab dosyasinda
12:2:wait:/etc/init.d/rc 2
sekillerinde tanimlanmislardir. (Oturumun nasil acilacagini tanimlar) init basladiginda dosyadaki
id:2:initdefault:
satirina bakar.Buna gore oturumu nasil cacagina karar verir. buna gore
0 : sistemi kapat
1 : tek kullanicili modda ac
2-5 : kullanici tarafindan tanimlanan modlar
6: Reboot
Özel Init Fonksyonlari :
init bazi ozel durumlarda reaksyon gosterecek sekilde ayarlanabilir. Bunu inittab dosyasindaki bazi ozel kelimeler ile gerceklestirir.
powerfail : Elektirik kesildiginde makinayi kapatir (UPS oldugunda tabiki
ctrlaltdel : konsolda kullanicilarin ctrl+alt+del tuslari ile reboot etmelerine olanak tanir.
sysinit : Sistem basladiginda sizin belirlediginiz bir komutu calistirir.
Init çalışan ilk programdır. Bu yüzden process number'i 1 dır. Kernel init'i belli yerlerde arar. Linux bir makinede init normalde /sbin/init dedir. Kernel init i çalıştıramaz ise /bin/sh'i arar. Eğer onu da çalıştıramazsa Linux açılmaz.
Init başladığında boot işlemini bitirir (dosya sistemini kontrol eder, temizler, bazı servisleri çalıştırır, ve her terminal için "getty" programını ve kullanıcıların sisteme giriş yapacağı konsol'u çalıştırır.). Sistem düzgün bir şekilde açıldıktan sonra init getty'yi tekrar çalıştırır (böylece diğer bir kullanıcı sisteme giriş yapabilir).
Bir program başlayıp bir çocuk program başlatıyorsa ve çocuk program sonlanmadan ana program sonlanırsa ,program init'in çocuk programı olur. Bu process tree grafiğini anlamakta bize yardımcı olur sanırım.
Init başladığında /etc/inittab dosyasını okur. Bu dosya 4 kolondan oluşur.
id:runlevels:actionrocess
id = dosyadaki satirini belirler.(getty programini calistiran satirlar icin terminali belirler.-/dev/tty den sonra gelen sayi- )
runlevel = assagida aciklayacagim. runlevel tek bir sayidan olusur.
action = islemin nasil yapilacagini belirler.(once - bir kerecalistir ; respawn- bir sonraki bolumde tekrar calistir.)
process = calistirilacak komut.
Getty'yi ilk sanal konsolda(terminalde) baslatmak icin
1:2345:respawn:/sbin/getty 9600 tty1 satiri kullanilabilir.
1. kolon = /dev/tty1 'i temsil eder. Yani program ilk sanal konsaolda calistirilacak.
2. kolon = 2,3,4,5 runlevel larina etki edecek demektir.(runlevel aciklanacak -walla bak-.)
3. kolon = komut tamamlandiktan sonra tekrar calistirilacak.
4. kolon = getty'yi 1.sanal konsolda calistiracak komut.
Init bir programi calistirmak istediginde program calismazsa init programi tekrar calistirmak ister. Bunun sonsuza kadar surmesi cok fazla sistem kaynagini tuketecegi icin init sikca calistirilan programlarin bir listesini tutar. Cok sik calistirilan programi 5 dakika icin durdurur ve sonra tekrar calistirir.
Runlevel :
Runlevel'lar inittab dosyasinda
12:2:wait:/etc/init.d/rc 2
sekillerinde tanimlanmislardir. (Oturumun nasil acilacagini tanimlar) init basladiginda dosyadaki
id:2:initdefault:
satirina bakar.Buna gore oturumu nasil cacagina karar verir. buna gore
0 : sistemi kapat
1 : tek kullanicili modda ac
2-5 : kullanici tarafindan tanimlanan modlar
6: Reboot
Özel Init Fonksyonlari :
init bazi ozel durumlarda reaksyon gosterecek sekilde ayarlanabilir. Bunu inittab dosyasindaki bazi ozel kelimeler ile gerceklestirir.
powerfail : Elektirik kesildiginde makinayi kapatir (UPS oldugunda tabiki
ctrlaltdel : konsolda kullanicilarin ctrl+alt+del tuslari ile reboot etmelerine olanak tanir.
sysinit : Sistem basladiginda sizin belirlediginiz bir komutu calistirir.


