init bir Linux işletim sistemi için kesinlikle
gerekli olan programlardan birisidir. Fakat siz bunu halen önemsemiyor
olabilirsiniz. İyi bir Linux dağıtımı, pek çok sistem altında
çalışabilecek şekilde ayarlı bir init ile
birlikte gelir; ve bu sistemler altında init
ayarları ile uğraşmanız gerekmez. Genellikle, çalışma seviyesini
değiştirmek istediğiniz zamanlarda, seri uçbirimler üzerinden veya
modemler üzerinden bağlanmaya çalıştığınız zamanlarda
init ile ilgilenmeniz gerekir.
Çekirdek kendini başlattığı (belleğe yüklendiği, çalışmaya başladığı
ve aygıt dosyaları, veri yapıları ve benzeri şeyleri başlattığı zaman)
ve kullanıcı seviyeli bir program olan init
sürecini başlattığında, kendi üstüne düşen açılış işlemlerini
bitirmiş olur. Bundan dolayı init her zaman için
ilk süreçtir ve süreç numarası da daima 1'dir.
Çekirdek, init için daha önceden de kullanılmış
olan birkaç yere bakar ama genellikle bir Linux sistemi altındaki
en uygun yer /sbin/init'dir. Şayet çekirdek
init'i bulamazsa /bin/sh'yi
çalıştırmayı dener, eğer bunu da beceremezse sistem hatasını başlatır.
init başladığı zaman, idari görevlerce
gerçekleştirilen; sistemlerinin kontrol edilmesi,
/tmp'nin
boşaltılması, çeşitli servislerin başlatılması ve kullanıcıların
bağlanabileceği her uçbirim ve sanal konsol için
getty'nin
başlatılması vb. işlemlerin başlatılması ile açılış işlemi
bitirilmiş olur (
Kullanıcı Giriş ve Çıkışları bölümüne bakınız).
Sistem düzgünce açıldıktan sonra,
init kullanıcı
tarafından terk edilen her uçbirim için ayrı ayrı bir
getty
süreci başlatılır. Böylece bir sonraki kullanıcı buraya bağlantı
yapabilir.
init ayrıca her öksüz süreci evlat
edinir: bir süreç yavru bir süreç başlatır ve bu yavru süreçten önce
ölürse, bu öksüz yavru süreç
init'in yavrusu olur.
Bu pek çok teknik sebepten kaynaklanır; bunun böyle olduğunu bilmek
süreç listesi ve süreç yapı ağacını anlamayı kolaylaştırması açısından
faydalıdır.
[127]
init'in kullanılabilir birkaç çeşidi
vardır. Pek çok Linux dağıtımı, System V
init
tabanlı
sysvinit (Miquel van Smoorenborg tarafından
yazılmıştır) kullanırlar. Unix'in BSD versiyonu farklı bir
init kullanır. Birinci fark çalışma
seviyelerindedir: çalışam seviyeleri System V'de bulunurken,
BSD'de bulunmazlar (en azından geleneksel olanlarında). Bu temel
farklılık değildir. Biz sadece
sysvinit'e bakacağız.