Ubuntu Manpages

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.

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.

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 ç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

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).

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