BOOT(7) Linux Yazılımcısının Kılavuzu  BOOT(7)

İ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:

1. donanımsal açılış
2. önyükleme
3. çekirdeğin yüklenmesi
4. init ve inittab
5. açılış betikleri

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 girdileri 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 girdiler 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.

Bilginize

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

Ö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ı girdilerin aktarılmasına imkan veren etkileşimli bir arayüze sahiptir.

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 ardından disk bölümünün belli bir yerinde bulunan ikincil bir ö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 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.

Çekirdeğin Yüklenmesi

Ç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ı girdiler aktarılabilir (örneğin kök dosya sistemi olarak başka bir disk bölümünü belirtebilirsiniz). Bu tür Linux girdileri ile ilgili daha ayrıntılı bilgi için bootparam(7) kılavuzuna bakınız.

Bundan sonra çekirdek sadece, süreç kimliği 1 olan ilk süreci (kullanıcı tarafı) çalıştırır. Çekirdek kendisine verilmiş girdilerden 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 hizmetlerin ilişkilendirilebildiği farklı çalışma seviyeleri ile (örn: S tek kullanıcılı kiptir, ağ hizmetleri için 2 gibi) kolayca yönetilebilen bir yapı sunar. Sistem yöneticisi çalışma seviyesini init(8) ile değiştirebilir ve o anki çalışma seviyesini runlevel(8) ile sorgulayabilir.

Hizmetlerin başlatılması ve durdurulması bu dosyayı düzenleyerek yapılmaz. /etc/inittab içindeki veriler, belirli çalışma seviyelerinde çalıştırılacak ya da durdurulacak hizmetlerin betiklerinin bulunduğu yere denetimi aktarmakta kullanılır.

Açılış betikleri

Bilginize

Aşağıdaki açıklamalar sadece SYSV-R4 temelli sistemlere uygulanır. Bunlar ticari Unix'ler ile bazı Linux dağıtımlarıdır. Bazı sistemler (Slackware Linux, FreeBSD, OpenBSD) açılış betiklerinin düzenlenmesinde biraz daha farklı yapılar kullanır.

Yönetilen her hizmet (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 her biri tek bir girdi kabul eder. Bunlar genel olarak üzerinde anlaşma sağlanmış belirli sözcüklerdir. Örneğin 'start' sözcüğü hizmetin başlatılmasını, 'stop' ise durdurulmasını sağlarken 'restart' ile hizmet önce durdurulur ardından başlatılır, 'status' ile hizmetin durmu hakkında bilgi alınır. Betikler girdisiz çalıştırıldığında kullanılabilecek girdilerin listesini gösterir.

Çalışma seviyelerine özel dizinler

Hizmetlerin 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) betiğinden çağrılır ve bu betik çalışma seviyesi dizinlerindeki sembolik bağlar üzerinden hizmet betiklerini çalıştırır. Betiklerin sembolik bağ isimlerinden 'S' ile başlayanlar 'start' ile (hizmeti başlatmak için), 'K' ile başlayanlar ise 'stop' ile (hizmeti 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 hizmetin 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 seviyeleri ve açılış sırası bu bağlar sayesinde kolayca yönetilebilir. 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ı girdiler ve komut satırı seçenekleri kabul ederler. Sistem yöneticilerinin bu girdileri 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 eski Red Hat sistemlerinde bu dosyalar /etc/sysconfig dizininde bulunurdu.

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

init(1), systemd(1), inittab(5), bootparam(7), bootup(7), runlevel(8), shutdown(8).

ÇEVİREN

© 2003, 2022 Nilgün Belma Bugüner
Bu çeviri özgür yazılımdır: Yasaların izin verdiği ölçüde HİÇBİR GARANTİ YOKTUR.
Lütfen, çeviri ile ilgili bildirimde bulunmak veya çeviri yapmak için https://github.com/TLBP/manpages-tr/issues adresinde "New Issue" düğmesine tıklayıp yeni bir konu açınız ve isteğinizi belirtiniz.
Yasal Uyarı
 * Özgün Belgenin Lisans ve Telif Hakkı bilgileri:
 *
 * Written by Oron Peled <oron (at) actcom.co.il>.
 * May be distributed subject to the GPL.
 *
 * I tried to be as much generic in the description as possible:
 *   - General boot sequence is applicable to almost any
 *     OS/Machine (DOS/PC, Linux/PC, Solaris/SPARC, CMS/S390)
 *   - kernel and init(8) is applicable to almost any Unix/Linux
 *   - boot scripts are applicable to SYSV-R4 based Unix/Linux
 *
 *  Modified 2004-11-03 patch from Martin Schulze (joey@infodrom.org)