8.1. İlk önce init gelir

init bir Linux işletim sistemi için kesinlikle gerekli olan uygulamalardan 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 uygulama 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 denetlenmesi, /tmp'nin boşaltılması, çeşitli hizmetlerin başlatılması ve kullanıcıların bağlanabileceği her uçbirim ve sanal konsol için agetty(8)'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 agetty(8) 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. [57] 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ır. 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.



[57] init kendisinin öldürülmesine izin vermez. SIGKILL bile gönderseniz init'i öldüremezsiniz.