İSİM¶
boot - genel olarak açılış işlemleri
AÇIKLAMA¶
Açılış işlemleri sistemden sisteme değişiklik
gösterirse de genellikle beş adımda incelenebilir: (i)
donanımsal açılış, (ii) önyükleme, (iii)
çekirdeğin yüklenmesi, (iv) init ve inittab, (v)
açılış betikleri. Bunları aşağıda daha
ayrıntılı olarak açıklayacağız.
Donanım açılışı¶
Makinayı açıldıktan veya yeniden
başlatıldıktan sonra denetim salt okunur bellekte bulunan
(genellikle bu bir PROM'dur) bir yazılıma devredilir. PC'lerde bu
yazılım genellikle
BIOS (bayos okunur) olarak bilinir.
Bu yazılım makina üzerinde bir temel sınama yaptıktan
sonra gerekli parametreleri okumak için oynak olmayan (non-volatile)
belleğe erişir. Bu bellek PC'lerde pille beslenen bir CMOS bellektir
ve
CMOS (simos okunur) adıyla bilinir. PC dünyası
dışında ise genellikle
nvram (non-volatile ram) olarak
bilinir.
nvram üzerinde saklanan parametreler sistemden sisteme değişiklik
gösterir, fakat en azından donanım açılış
yazılımı, açılışın
yapılacağı aygıtı ya da algılanması gereken
olası açılış aygıtlarını bilmek
zorundadır.
Donanım açılış adımı ile
açılış aygıtına erişildikten sonra,
işletim sistemini yükleyecek olan önyükleyici
yazılımı yüklenir. Bu yazılım
açılış aygıtının belli bir yerinde bulunur
ve denetim bu yazılıma aktarılır.
- Bilgi:
- Burada ağdan açılış
adımlarını açıklamayacağız. Bu konu ile
ilgileniyorsanız arama sözcükleriniz şunlar olabilir:
DHCP, TFTP, PXE, Etherboot.
Önyükleyici¶
PC'lerde önyükleyici açılış
aygıtının ilk sektöründe bulunur. Bu sektör
Asıl Önyükleme Kaydı (
MBR - Master Boot Record)
olarak bilinir.
Çoğu sistemde bazı kısıtlamalardan dolayı bu
önyükleyici çok sınırlanır. PC
dışındaki sistemlerde bile boyut ve önyükleyicinin
karmaşıklığıyla ilgili sınırlamalar
vardır. Fakat PC'lerde MBR'ın boyutu (512 bayttır ve disk
bölümleme tablosu da buradadır) önyükleyicinin bu
alana deyim yerindeyse tıkıştırılmasını
gerektirir.
Diğer yandan, çoğu işletim sistemi birincil
önyükleyicinin disk bölümünün belli bir yerinde
bulunan bir ikincil önyükleyiciyi
çalıştırır.
Linux işletim sisteminin önyükleyicisi normalde
lilo(8) ya
da
grub(8)'dır. Her ikisi de ya ikincil yükleyiciyle (DOS
çalıştırmak gibi) ya da bir parçası MBR
içinde diğer parçası kök disk
bölümünde bulunan iki parçalı bir
önyükleyici olarak kurulur.
Önyükleyicinin asıl görevi disk üzerinde
çekirdeğin yerini belirlemek, onu yükleyip
çalıştırmaktır. Çoğu önyükleyici
başka çekirdeklerin belirtilmesine (son derlediğiniz
çekirdek çalışmazsa öncekinin yüklenmesini
sağlayabilirsiniz) ve bu çekirdeklere isteğe bağlı
parametrelerin aktarılmasına imkan veren etkileşimli bir
arayüze sahiptir.
Çekirdeğin başlatılması¶
Çekirdek yüklendiğinde aygıtları
(sürücüleri üzerinden) ilklendirir, takas
alanını etkinleştirir (günümüz
çekirdeklerinde
kswapd olarak bilinen bir çekirdek
sürecidir) ve kök dosya sistemini (/) bağlar.
Çekirdeğe bu etkinliklerle ilgili olarak bazı parametreler
aktarılabilir (örneğin kök dosya sistemi olarak başka
bir disk bölümünü belirtebilirsiniz). Bu tür Linux
parametreleri ile ilgili daha ayrıntılı bilgi için
bootparam(7) kılavuzuna bakınız.
Bundan sonra çekirdek sadece, numarası 1 olan ilk süreci
(kullanıcı tarafı) çalıştırır. Bu
süreç kendisine verilmiş parametrelerden işine
yaramayanları aktararak /sbin/init yazılımını
çalıştırır.
init ve inittab¶
init çalışmaya başladığında ilk olarak
/etc/inittab dosyasında bulunan yönergeleri okur. Bu dosya
farklı çalışma seviyeleri ile bu çalışma
seviyelerinde çalıştırılacak komutlara ilişkin
bilgiler içerir.
Bu, sistem yöneticisine belli servislerin ilişkilendirilebildiği
farklı çalışma seviyeleri ile (örn:
S tek
kullanıcılı kiptir, ağ servisleri için
2 gibi)
kolayca yönetilebilen bir şema sunar. Sistem yöneticisi
çalışma seviyesini
init(8) ile değiştirebilir
ve o anki çalışma seviyesini
runlevel(8) ile
sorgulayabilir.
Servislerin başlatılması ve durdurulması bu dosyayı
düzenleyerek yapılmaz. Bu dosya içindeki veriler, belirli
çalışma seviyelerinde çalıştırılacak
ya da durdurulacak servislerin betiklerinin bulunduğu yere denetimi
aktarmakta kullanılır.
Açılış betikleri¶
- Bilgi:
- Aşağıdaki açıklamalar sadece
SYSV-R4 temelli sistemlere uygulanır. Bunlar ticari Unix'ler
(Solaris, HPUX, Irix, Tru64) ile bazı Linux
dağıtımlarıdır (Red Hat, Fedora, Debian,
Mandrake, Suse, Caldera). Bazı sistemler (Slackware Linux, FreeBSD,
OpenBSD) açılış betiklerinin düzenlenmesinde
biraz daha farklı şemalar kullanırlar.
Yönetilen her servis (posta sunucusu, nfs sunucusu, cron, vs.) için
belirli bir dizinde (çoğu Linux sürümünde /etc/init.d
dizinidir) bulunan tek bir betik vardır. Bu betiklerin herbiri ya sadece
'start' (servisin başlatılmasını sağlar) ya da genel
olarak üzerinde "anlaşma sağlanmış"
sözcükleri argüman kabul ederler (örneğin, 'restart'
servisi durdurur ve tekrar başlatır, 'status' servisin durmu
hakkında bilgi döndürür). Betikler argümansız
çalıştırıldığında
kullanılabilecek argümanların listesini gösterir.
Çalışma seviyelerine özel dizinler¶
Servislerin belirli çalışma seviyelerinde
çalıştırılması, durdurulması ve
çalıştırılma sıralarının belirlenmesi
için özel dizinler vardır. Bunlar normalde
/etc/rc[0-6S].d dizinleridir. Bu dizinlerin her birinde /etc/init.d
dizininde bulunan betiklere sembolik bağlar bulunur.
Bir birincil betik (genellikle /etc/rc)
inittab(5)'dan
çağrılır ve bu betik çalışma seviyesi
dizinlerindeki sembolik bağlar üzerinden servis betiklerini
çalıştırır. Betiklerin sembolik bağ isimlerinden
'S' ile başlayanlar 'start' argümanı ile (servisi
başlatmak için), 'K' ile başlayanlar ise 'stop'
argümanı ile (servisi durdurmak için)
çalıştırılır.
Aynı çalışma seviyesinde betiklerin hangi sırada
çalıştırılacaklarını belirlemek için
sembolik bağ isimleri sıra numaraları içerir. Bu numaradan
sonra da çalıştırılacak servisin ismi gelir.
Örneğin, /etc/rc2.d/S80sendmail ile sendmail 2.
çalışma seviyesinde başlatılır. Ancak bu,
/etc/rc2.d/S12syslog'dan sonra ve /etc/rc2.d/S90xfs'den önce
çalıştırılır.
Çalışma seviyelerini ve açılış
sırasını bu bağlar sayesinde kolayca yönetibiliriz.
Bir çok Linux dağıtımı bu işlemi daha da
kolaylaştıran araçlarla gelir (örn,
chkconfig(8).
Sistemin açılışta
yapılandırılması¶
Artalanda başlatılan süreçler genellikle isteğe
bağlı bazı parametreler ve komut satırı
seçenekleri kabul ederler. Sistem yöneticilerinin bu parametreleri
betiklere dokunmadan daha kolay düzenleyebilmeleri için
süreçlerin kendilerine ait yapılandırma dosyaları
vardır. Bunların yerleri dağıtımlara göre
değişir. Örneğin Red Hat için bu dosyalar
/etc/sysconfig dizininde bulunur.
Eski Unix'lerde bunlar komut satırı seçenekleri iken
günümüz Linux sistemlerinde (ve HPUX'de) bu dosyalar kabuk
değişkenlerini içerir. /etc/init.d dizininde bulunan betikler
bu değişkenlerin değerlerini kullanır.
İLGİLİ DOSYALAR¶
/etc/init.d/, /etc/rc[S0-6].d/, /etc/sysconfig/
İLGİLİ BELGELER¶
inittab(5),
bootparam(7),
init(8),
runlevel(8),
shutdown(8).
ÇEVİREN¶
Nilgün Belma Bugüner <nilgun (at) belgeler·gen·tr>,
Aralık 2003