Önyükleme sürecine yakından bakalım
Önceki Açılışlar ve Kapanışlar Sonraki
Önyükleme sürecine yakından bakalım
Linux işletim sistemini sabit diskten veya bir disketten başlatabilirsiniz. "Kurulum ve Başlatma Kılavuzu"nun (Installation and Getting Start Guide) Kurulum bölümü Linux'un nasıl kurulacağını ve nasıl istediğiniz şekilde açılış işlemini gerçekleştirebileceğinizi anlattır.
Bir PC açıldığında BIOS her şeyin sağlıklı bir şekilde çalışıp çalışmadığını anlamak için pek çok testler yapar[125] ve daha sonra asıl açılış işlemine geçilir. Bir disk sürücüsü seçip onun ilk sektörünü okur. Genel seçim sırası şu şekildedir: ilk önce disket sürücüye bakılır, orada bir disket yok ise sabit diske bakılır, orada da önyükleme sektörü yoksa CDROM sürücü ve diğer aygıtlara bakılır. Bu açılış sırası kullanıcıya göre değiştirilebilir. Bu ilk sektöre önyükleme sektörü denir, şayet bu önyükleme sektörü bir sabit disk üzerinde ise buna Ana Önyükleme Sektörü (Master Boot Sector - MBR) adı verilir, çünkü sabit disk üzerinde pek çok bölüm ve her bölümün kendine ait bir önyükleme sektörü olabilir.
Önyükleme sektörü, sorumluluğu gerçek işletim sistemini diskten okuyup başlatmak olan, küçük bir (ama bir sektörü doldurur) program içerir. Şayet disketten açılış yapılacaksa önyükleme sektörü içerisindeki kodlar sadece, bellek içine daha önceden kararlaştırılmış bir yerde bulunan ilk birkaç yüz bloğu okur. Tabii ki bu blokların sayısı çekirdeğin gerçek boyutuna dayanmaktadır. Bir Linux açılış disketi içinde dosya sistemi yoktur. Açılış işlemini basitleştirmek için ardışık bloklar içine yerleştirilmiş çekirdek kodları bulunur. Bununla beraber içinde LILO (LInux LOader - Linux Yükleyicisi) bulunan ve bir dosya sistemine sahip bir disket ile de sistemi açabilirsiniz.
Bir sabit diskten açılış yapılırsa önce MBR içindeki kodlar bölümleme tablosunu inceler, açılabilir olarak işaretlenmiş etkin bölümü bulur, o bölümden önyükleme sektörünü okur ve daha sonra bu önyükleme sektörü içindeki kodları çalıştırır. Bu önyükleme sektörü içerisinde bulunan kodlar, bir açılış disketinin önyükleme sektörü içinde bulunan kodlar ne yaparsa aynısını yapar: bölüm içerisindeki çekirdeği okur ve onu başlatır. Ayrıntılar çeşitli olmakla birlikte; sadece çekirdek için ayrı bir bölüme sahip olmak genellikle pek kullanışlı olmaz. Çekirdek için ayrı bir bölüm açılırsa, önyükleme sektörü içerisindeki kodlar gerekli bilgileri zincirleme bir halde okuyamaz ve dosya sistemi onları hangi sektörlere koydu ise oraları bulmak zorunda kalırlar. Bu sorunu çözmenin pek çok yöntemi vardır ama en genel kabul göreni LILO'dur. Bunun konumuzla bir alakası yoktur, ama LILO belgelerine bakmanız yararlı olabilir.
LILO ile açılış işleminde, doğrudan diskin başına gidilir ve buradan öntanımlı çekirdeğin yeri okunarak çekirdek yüklenir. LILO ile çeşitli yapılandırmalar mümkündür. Çekirdekler arasında seçim yapılabilir, farklı işletim sistemlerini yüklenebilir ve açılış esnasında kullanıcının bu işletim sistemlerinden birisini seçmesi sağlanabilir. LILO yüklenirken <alt>, <shift> veya <ctrl> tuşlarından birine basılıp, LILO'da öntanımlı yükleme seçeneğinin yerine, ne yüklenmesini istediğinizi soracak şekilde de ayarlamalar yapabilirsiniz. Alternatif olarak; LILO'yu seçenekler sunacak, şayet her hangi bir seçim yapılmazsa belirli bir süre sonra öntanımlı çekirdeği yükleyecek şekilde de ayarlayabilirsiniz.
LILO ile çekirdeğe, çekirdeğin ya da işletim sisteminin isminden sonra bir komut satırı seçeneği vermek mümkündür.
Disketten veya diskten açmak çeşitli getirilere sahip olmakla birlikte, sabit diskten açmak disketle uğraşma zahmetinden bizi kurtaracaktır. Ayrıca daha hızlıdır. Bununla birlikte, sistemi sabit diskten açılacak şekilde yüklemek bazen çok zahmetli olabilmektedir. Bu nedenle pek çok kullanıcı ilk önce disketten açılış yolu ile kurulum yapar ve her şeyin düzgün çalıştığını gördükten sonra LILO'yu ayarlayarak disk açılış kipine geçer.
Linux çekirdeği belleğe okunduktan sonra ya da adına ne dersin deyin, gerçekte başlatıldıktan sonra, kabaca aşağıdaki olaylar gerçekleşir:
  • Linux çekirdeği diskte sıkıştırılmış olarak tutulur. Bu nedenle ilk önde kendi kendini çözer. Bu, çekirdeğin başlangıcındaki küçük bir programla yapılır.
  • Şayet Linux'un tanıdığı ve çeşitli metin kipleri bulunan Super-VGA bir ekran kartınız varsa, Linux size hangi metin kipinde çalışmak istediğinizi sorar. Çekirdek derlemesi sırasında bir video kipi girilebilir ve böylece daima bu kip kullanılır. Bu ayrıca LILO veya rdev ile de yapılabilir.
  • Bundan sonra çekirdek diğer donanımları kontrol eder (sabit disk, disket sürücü, ağ bağdaştırıcısı, vb) ve bazı donanım sürücülerini uygun bir şekilde yapılandırır ve bunu yaparken buldukları ile ilgili bir çıktı verir. Örneğin ben sistemi açtığım zaman, şuna benzer bir mesaj almaktayım:
    LILO boot:
    Loading linux.
    Console: colour EGA+ 80x25, 8 virtual consoles
    Serial driver version 3.94 with no serial options enabled
    tty00 at 0x03f8 (irq = 4) is a 16450
    tty01 at 0x02f8 (irq = 3) is a 16450
    lp_init: lp1 exists (0), using polling driver
    Memory: 7332k/8192k available (300k kernel code, 384k reserved, 176k
    data)
    Floppy drive(s): fd0 is 1.44M, fd1 is 1.2M
    Loopback device init
    Warning WD8013 board not found at i/o = 280.
    Math coprocessor using irq13 error reporting.
    Partition check:
      hda: hda1 hda2 hda3
    VFS: Mounted root (ext filesystem).
    Linux version 0.99.pl9-1 (root@haven) 05/01/93 14:12:20
    
    Bu çıktı sistemdeki donanımlara, kullanılan işletim sistemi çeşidine ve yapılmış olan ayarlara göre değişiklik gösterebilir.
  • Daha sonra çekirdek kök dosya sistemini bağlamayı deneyecektir. Yer ayarlaması derleme esnasında veya herhangi bir zaman rdev komutu veya LILO ile yapılabilir. Dosya sistemi türü otomatik olarak bulunur. Kök dosya sisteminin bağlanması esnasında bir terslik olursa, örneğin: çekirdek içinde uygun dosya sistemi sürücüsü yoksa, çekirdek PANİKLER ve sistemi kapatır. Aslında yapabileceği başka da bir şey yoktur zaten.
    Kök dosya sistemi genellikle salt okunur bir şekilde bağlanır. Bu dosya sistemi bağlı durumdayken, dosya sisteminin sınanmasını sağlar. Oku-yaz kipinde bağlanmış bir dosya sistemi üzerinde sınama yapmak hiç de iyi bir fikir değildir. Burada bahsedilen sınama işlemi fsck ile yapılır.
  • Bundan sonra çekirdek, init (/sbin/init) programını başlatır (daima süreç numarası olarak 1'i alır). init pek çok ufak tefek iş yapar. Aslında yaptıkları ne şekilde ayarlandığına bağlıdır. init bölümünde daha ayrıntılı (henüz yazlmadı) bilgi bulabilirsiniz. En azından, çok gerekli olan birkaç artalan sürecini çalıştırır.
  • init daha sonra çok kullanıcılı kipe geçer, sanal konsollar ve seri bağlantılar için getty programını çalıştırır. getty, kişilerin sanal konsollar veya seri hatlar üzerinden sisteme bağlanmasını sağlar. init ayrıca nasıl ayarlandığına bağlı olarak diğer programları da çalıştırır.
  • Bütün bunlardan sonra açılış işlemi bitmiş olur, artık sistem açık ve normal çalışma kipine geçmiş haldedir.


[125] Buna kısaca POST (Power On Self Test), açılışta kendi kendini sınama adı verilir.
Önceki Üst Ana Başlık Sonraki
Açılışlar ve kapanışlara genel bir bakış Başlangıç Kapanışla ilgili ayrıntılar
Bir Linux Kitaplığı Sayfası