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.