1. Ana Sayfa
  2. Donanım
  3. Bir bilgisayarın açılırken olup bitenler

Bir bilgisayarın açılırken olup bitenler

Program çalıştırmayan bir bilgisayar koca bir elektronik parçalar yığınıdır. Bir bilgisayarın bir programı çalıştırması için iki şartı sağlaması gerekmektedir:

1. Program ana bellekte yüklü olmalı

2. İşlemcinin program sayacı(PC), programın ilk komutunu göstermelidir.

İşletim sistemi�nin yükleyicisi �loader-, bir programı hafızadan alıp ana belleğe getiren ve programın çalışmasını sağlayan yapıdır. Peki bilgisayar yeni açılınca henüz işletim sistemi çalışmamaktayken, bilgisayarın bir sonraki işleminin ne olacağını, veya işletim sistemini nasıl başlatacağını neler belirler?

İşletim sisteminin hazırlanmasına yükleme –boot– denir. Bilgisayar yükleme işleminin nasıl yapılacağını ana bellekten öğrenemez, çünkü elektrik yeni verildiğinden ana bellek henüz rasgele verilerle doludur, bu yüzden bu bilgiyi bir ROM yongasından öğrenebilir. Bu yonga, ki biz ona BIOS diyoruz, üzerinde yükleme ile ilgili komutları taşır. BIOS �basic input output system�in kısaltılmışıdır. BIOS yongası, belli bir yerdeki özel bir programı çalıştırır. Bu programa önyükleyici denir. Bunun Linux'deki adı LILO�dur. (LILO �Linux Loader- yerine GRUB gibi alternatifler de mevcut, XP�de NTLDR bu işi yapıyor.) Bu program ana belleğe yüklenir ve çalıştırılır. Yükleyicinin asıl görevi işletim sistemini çalışır duruma getirmektir. Yükleyici buna, işletim sisteminin çekirdeğini yükleyerek başlar. Çekirdek çalışmaya başladıktan sonra programları çalıştırmaya hazır hale gelir.

Bu genel bilgilerden sonra biraz detaylardan bahsedelim.

Bilgisayar ilk açıldığında gerekli komutları ROM�dan okuması gerektiğini söylemiştik. Aslında işlemci bu komutları gene ana bellekten okumaktadır. Çünkü bilgisayara elektrik verildiğinde BIOS�un üzerindeki bilgiler ana bellekteki belli bir adrese yüklenir. (Bu arada BIOS�un ilk çalışması için sinyali RTC– Real Time Clock gönderir.) Bu adres, üreticiler tarafından, ana belleğin son 64K�lık kısmı standart olarak kabul edilmiştir. 1Mb�lık belleğin son 64K�lık kesimi BIOS kesimidir 0xF0000�den başlayarak. Ancak CPU ilk olarak 0xFFFF0 adresini gösterir. Burada 5 byte�lık bir jump komutu bulunur. Yani CPU ilk olarak FFFF0 (FFFF:0000h) adresini okumaktadır ve işletime bu adresten başlamaktadır. Bu program yüklenebilir bir ortamdan bir yükleme bölümü arar. Hafıza, disket veya CD de olabilir. Önemli olan yükleme ortamının ilk sektörünün son iki byte�nın 0xAAFF olması. Buradan önyükleyiciyi bulur. Bu önyükleyici ana belleğin 0000:7C00 adresine yüklenir.

Peki BIOS neden direk işletim sisteminin çekirdeğini yüklemiyor da önyükleyici diye bir yapı kullanıyor?

Çünkü BIOS günümüz bilgisayarları için yeterince becerikli ve zeki sayılmaz, adresleme de yeterince başarılı sayılmaz. Ayrıca önyükleyici bize eğer bilgisayar da birden çok işletim sistemi varsa bunlardan istediğimizi açma imkanı verir.

Zaten işletim sisteminin çekirdeği yüklendikten sonra gerisi işletim sistemine kalmıştır.

BIOS için önyükleyiciyi bulup getiriyor dedik ve yeterince zeki olmadığını öne sürdük ancak BIOS�un önyükleyiciyi yüklemeden önce yaptığı işler de vardır. Bunlar donanımla ilgili çeşitli testler ve ilklendirme işlemleridir. BIOS ana kart üzerinde çeşitli testler uygular, bunlara örnek olarak CPU, DMA denetleyicileri ile IRQ denetleyicilerini verebiliriz. Ayrıca çeşitli aygıtlar da incelenmektedir. Örneğin tuş takımını -keyboard- takmadığınız zaman BIOS uyarısı alırsınız. Bu işlemlere genel olarak POST �Power On Self Test� denmektedir. Bu işlemlerin sırası ana karttan ana karta değişiklik gösterebilir. POST hatasız bir şekilde bittikten sonra BIOS önyükleyiciyi aramaya başlar. POST işlemleri başarıyla sonuçlanamazsa, BIOS bipleriyle hata kodu duyurulur.(Warm bootcold boot farkını da işte bu POST işlemlerinin yapılıp-yapılmaması oluşturur.)

BIOS -eğer seçili ise- önce disket sürücüde yüklenebilir -bootable- bir disket olup olmadığına bakar, (uygun sürücü: ilk sektörünün son iki byte�ı 0xAAFF olan.) Eğer varsa 1.sektör, 0.kafa, 0.silindiri belleğin 0000:7C00 adresinden başlayarak yükler. Eğer disket yoksa BIOS bilgisayarın hafızasından -hard disk- boot sektör arar ve ana yükleme bölümünden (Master Boot Record) belleğin 0000:7C00 adresine kopyalar. Yüklenme işlemleri de başarıyla sonlandırıldıktan sonra önyükleyici işlemleri başlar.

Ayrıca işletim sistemi çalışmaya başladıktan sonra BIOS bir kenara çekilip beklemez, hala aktif haldedir. Bu yüzden biraz da BIOS�un sistem çalışırkenki işlevlerinden bahsedelim.

BIOS, her bilgisayarda temel düzeydeki giriş çıkış işlemlerini yapan, bilgisayar donanımı ile işletim sistemi ve programlar arasında etkileşimi sağlayan bir yazılım olarak da düşünülebilir. Bios�un pek çok çeşidi bulunur: ROM BIOS, video BIOS�u, aygıt denetim BIOS�u gibi… Tüm bunlar yazılım katmanlarının en alt düzeyini oluşturur. Diğer yazılımların ve işletim sisteminin kullanması için yordamlar ve küçük programlar sunar. İşletim sistemi, bilgisayar donanımı ile iletişim kurmak için kendi komutlarını kullanabileceği gibi BIOS�un komutlarını, BIOS�un sağladığı servisleri kullanabilir. Linux açıldıktan sonra bütün donanımlara kendi sağladığı fonksiyonlarla erişirken, MS-DOS BIOS fonksiyonlarını kullanır.

Yorum Yap

1
Kimler Neler Demiş?

avatar
1 Comment threads
0 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
0 Comment authors
Guest Recent comment authors

This site uses Akismet to reduce spam. Learn how your comment data is processed.

  Subscribe  
Bildir
Guest
Ziyaretçi
Guest

pc açılışı sırasında bios sup tarafından gerçekleştirilen testler