SIFIR (Arşiv Ana sayfa) => Bilgisayar / Teknoloji

Konu: Bilgisayarın düğmesine basınca ne olur?

Sayfa: [ 1 ]

data_grrr 25.02.2007 01:21:48
// Bu konuda Hintli bir arkadaşa (kendisini tanımasam da) ve wikipedia'ya teşekkürler.


* Güç kaynağı çalıştırılır. : Güç kaynağı, kendi başına bir test gerçekleştirir. Bütün akım ve voltajlar kabul edilebilir düzeyde olduğunda, kaynak, gücün kararlı olduğunu belirtir ve işlemciye Power Good sinyali gönderir. Açılıştan Power Good'a kadar geçen süre genellikle .1 ve .5 saniye arasındadır.

* Mikroişlemci zamanlayıcı çipi Power Good sinyalini alır : Power Good sinyalinin gelişiyle zamanlıyıcı çip, işlemciye reset sinyalleri göndermeyi durdurur ve böylece CPU'nun işlemlere başlamasına izin verir.

* CPU, ROM BIOS kodunu çalıştırmaya başlar :
Cpu, ROM BIOS'u FFFF:0000 adresinden yüklemeye başlar. ROM'un 16 bytelık başlangıcı olan bu kısım sadece JMP talimati içerir ve gerçek ROM BIOS adresini gösterir.

* Temel işlevselliği doğrulamak için ROM BIOS merkezi donanımın temel bir testini gerçekleştirir: Bu noktada gerçekleşen her hata bip kodlarıyla belirtilecektir, çünkü video sistemi henüz başlamamış durumdadır. (Bazı yeni anakartlar kendi ışıklarıyla da bu işi yapar.)

* BIOS kendi ROM BIOS rutinlerini yüklemeye ihtiyaç duyabilecek bağdaştırıcıları arar:
Video bağdaştırıcıları, ROM BIOS'un en temel kaynağını teşkil eder. Başlangıç BIOS rutinleri C000:0000 dan C780:0000 a kadar bir video ROM bulmak için tarama yapar. Herhangi bir ROM bağdaştırıcı yüklemede gerçekleşecek her hata şöyle bir hata mesajı yaratır.   XXXX ROM Error   XXXX başarısız olan modülün segment adresini temsil eder.

* ROM BIOS, Bu açılışın cold-start mı yoksa warm-start mı olduğunu kontrol eder (makine resetlenmiş mi yoksa güç yeni mi veriliyor):

ROM BIOS start-up rutinleri açılış cinsini öğrenmek için 0000:0472 adresindeki değere bakar. 1234h den başka bir değer bunun bir cold-start olduğunu gösterir.

* Eğer cold-start gerçekleşiyorsa BIOS, Power On Self Test (POST) gerçekleştirir.  Eğer warm-start ise  POST'un hafıza test bölümü kapatılır:

POST 3 ayrı bölüme indirgenebilir:

Video Test: Video bağdaştırıcıyı başlatır, video kartını ve hafızasını test eder ve konfigurasyon bilgilerini ya da varsa hataları görüntüler.
BIOS Identification: BIOS'un versiyonunu, üreticisini ve tarihini görüntüler.
Hafıza Testi: Memory çiplerini test eder ve toplamını görüntüler.

POST sırasında gerçekleşen hatalar, ÖLÜMCÜL ya da ÖLÜMCÜL DEĞİL diye sınıflandırılabilir. Ölümcül olmayan hata ekrana bir hata mesajı yazdırır ve sistemin boot process'e devam etmesine izin verir. Ölümcül olanlar ise boot-process'i durdurur ve bip kodlarıyla hata mesajı verir.

BIOS, CMOS'da kayıtlı konfigürasyon seçeneklerini bulur ve okur:
CMOS (Complementary Metal-Oxide Semiconductor) 64 bytelık küçük bir hafıza alanıdır ve anakarta takılı küçük bir pil sayeside bu işlevini sürdüdür. CMOS hangi sırada OS aranması korusunda sürücülerin kontrol edilmesi gerektiğini belirtir.


Bundan sonrası boot işleminin bir işletim sistemini ayağa kaldırmasına yönelik kısmı gerçekleşir.


BOOT PROCESS

      Boot etme, bilgisayar terminolojisinde, kullanıcının, bilgisayar sistemini açtığında işletim sistemini başlatan bootstrapping işlemine denir.
      Bootstrap kavramı en genel anlamda, işletim sistemlerinin başlatım işlemlerini başlatan, GRUB, LILO, NTLDR programları için kullanılır. Modern bilgisayarların Network Interface Card (NIC) lar ile boot edilebilme kabiliyetleri vardır.
      Bir boot zinciri (boot sequence) bilgisayar açıldığında işletim sistemi yüklenmesini sağlayan, bilgisayarın sırasıyla gerçekleştirdiği bir grup işleme denir.

BOOT LOADER:


      Çoğu bilgisayar sistemi sadece hafızada (RAM ya da ROM) bulunan kodları çalıştırabilir; Modern işletim sistemleri çoğunlukla harddiskler, livecdler ve usb flash sürücüleri üzerinde saklanır. Bilgisayar açılır açılmaz hafızasında bir işletim sistemi yüklü değildir. Sadece bilgisayar donanımı, diskten bir programı yüklemek gibi sadece işletim sisteminin gerçekleştirebileceği karmaşık işlemleri yapamaz. Böylece görüşünüşe bakılırsa çözülemez bir paradoks yaratılmış olur; hafızaya bir işletim sistemi yüklemek için daha önceden başka bir işletim sisteminin kurulu olması gerekmektedir.
      Bu paradoksun çözümü boot loader denilen küçük özel bir programı gerektirir. Bu program bir işletiminin tam fonksiyonalitesine sahip değildir ama bir işletim sisteminin başlamasını sağlayan diğer yazılımların yüklenmesini sağlayacak kadar yeterledir. Sıklıkla, çok aşamalı boot loader lar kullanılır; Birkaç küçük program birbirini çağırır ve en sonuncusu işletim sistemini yükler.
       Bootstrap loader ismi birinin kendi kendisini tutarak havaya kaldırması fikrinden gelmiştir. Bu aslında bir alman efsanesi olan Baron Münchhausen'in efsanede kendi ayakkabı bağcıklarını (bootstrap) tutarak kendisini havaya kaldırıp denizden dışarı çıkartmasına ima eder. Bilgisayarlarda bu kavram böylelikle basit bir sistemin daha karmaşık bir sistemi aktive ettiği bir işleme tekabül eder. Birisinin Baron Münchhausen gibi kendi bağcıklarını tutup kendisini havaya kaldırması gibi bilgisayarlarda en basit sistemin kurulmasından başlayarak, bit bit her basit sistemin üstüne başka sistemler bindirerek karmaşık bir işletim sistemini yüklemeyi başarır.

Baron Münchhausen


 
Modern bilgisayarlarda bootstrapping işlemi CPU'nun ROM'daki yazılımı (ör: BIOS) çalıştırmasıyla başlar.  (CPU resetten sonra bu yazılımı dışarıdan bir yardım olmadan çalıştırmak üzere dizayn edilmiştir.) Bu yazılım, boot işleminde yer alacak uygun aygıtların aranması için temel araçları içerir ve uygun bir aygıtın özel bir bölümünden (boot sector) küçük bir program yükler.

Boot Sector:

Boot sektör, hard diskin, floppy diskin, ya da herhangi benzer bir veri depolama aygıtının bir bölümüdür. (tipik olarak ilk 512 byte ı) Her partition bir boot sektöre sahiptir, bununla beraber bütün disk bir master boot record a sahiptir. Bu kavramın işaret ettiği normalde  MBR (master boot record) olmasına rağmen, çoklu işletim sistemi boot etmeye ayarlanmış bilgisayarlarda partition a ait ilk ayrılan alan da kullanılabilir. (boot process'te mbr'a bak daha iyi anlamak için)
Boot sektör, boot işlemleri zincirinin bir parçası olarak hafızaya yüklenip çalıştırılır. Boot sektör çoğunlukla işletim sistemini hafızaya yükleyen küçük bir program içerir.
Floppy diskler bile bir boot loader ları yoksa eğer, floppy ile sistemi boot etmeye çalıştığımızda kullanıcıya "boot edilebilen bir disk tak ve bir tuşa bas" hata mesajını görüntüleyen küçük bir program içerir. Virüslerin açısından baktığımızda bu bir güvenlik zaafiyetidir. Bu alanlara kopyalanan virüsler kolayca diskten boot etmeye çalıştığımızda sisteme bulaşabilir. En iyisi floppyden boot etme seçeneğini BIOS'dan iptal etmek ve sadece gerektiğinde kullanmaktır. Floppy diskler, yavaş yavaş yerini USB flash sürücülere bıraktığı için BIOS dağıtımları USB lerden de boot edebilme olanağı sunmaya başlamıştır. USB den boot etme de floppy ile aynı güvenlik riskini taşır.
Master Boot Record: 
Pc mimarisinde, 512 bytelık boot sektör olan bu alan örneğin, işletim sistemlerinin boot edilebilmesi için hard diskin mantıksal başlangıcında bulunan komutlar zincirini içerir.
ROM BIOS'daki bootstrapping firmware (donanım yazılımı) MBR'ı yükler ve çalıştırır. Bir sürücünün MBR'ı genellikle sürücünün partition table'ını içerir. PC active partition flag'i ile işaretlenmiş boot record'u yükleyip çalıştırır.
Boot Process'te MBR:
MBR'ın ilk 440 ya da 446 byte ı BIOS tarafından çalıştırılacak programdır. Bu kaydın gerisi 2 byte lık bir header ve 16 byte lık 4 e bölünmüş, 4 adet partititon tanımlamamızı sağlayan bölümlerden oluşur. Bu partitionlar 4 primary ya da 3 primary, ve logical sürücülerini içeren 1 adet extended tan oluşabilir.
Düzgün bir MBR, partition table'a bakacak ve active flag'i ile işaretlenmiş primary partition'ı seçecektir.
Extended partition asla çalıştırılamaz, hatta MBR extended bölüm içerisindeki Mantıksal Sürücüleri bile bilmez. MBR, active primary partition'ın ilk 512 byte'ını okur ve sonra o sektörde bulunan programa atlar.
Bu noktada bir deja vu yaşıyormuşsunuz gibi gelebilir. ROM BIOS ilk önce MBR'ı yüklemek için hard diskin ilk 512 byte'lık bölümünü okur. MBR daha sonra active partition'ın ilk 512 byte'lık kısmını okuyarak işletim sistemini yüklemek için gerekli bir boot loader programı yükler.


|===============================|
| İlk 440 byte: Kod bölümü                      |
|===============================|
| 4 byte disk seri numarası                      |
| 2 byte boş (0)                                    |
|===============================|
|16 byte partition table bilgisi                  |
|===============================|
|16 byte partition table bilgisi                  |
|===============================|
|16 byte partition table bilgisi                  |
|===============================|
|16 byte partition table bilgisi                  |
|===============================|
|2 byte MBR imzası    (0xAA55)                |
|===============================|


İlginç: Logical Volume'lere işletim sistemi yüklenebilir.
MBR, extended partition'ın yerini ve büyüklüğünü tanımlar fakat içerisindeki logical volume'ler hakkında hiçbir bilgisi yoktur. Ne extended partition ne de içindeki volümler active olarak işaretlenemez. Bir işletim sistemi logical bir volüme kurulabilir fakat bu işletim sistemi direkt olarak MBR'dan boot edilemez. Buradaki numara bir boot sektörü ve 3 primary partition'dan birine bir çeşit loader aracı yüklemektir. MBR bu şekilde loader aracını boot eder. Loader aracı ise logical volümler ve içlerindeki işletim sistemleri hakkında bilgi sahibi olabilir.

İkinci-Aşama Boot Loader'lar:
Bu programların kendisi bir işletim sistemi değildir; sadece ikinci aşamada çalışan, işletim sistemini yükleyip kontrolü ona bırakınca sonlanan, NTLDR, GRUB vs. gibi programlardır. Sistem bu programlar sayesinde kendisini başlatıp, işletim sisteminin düzgün çalışması için gereken aygıt sürücülerini yükleyebilir.
Boot process'in, PC kullanıcı ile etkileşime geçtiğinde ya da OS, çeşitli programları çalıştırabilir duruma geldiğinde tamamlandığı düşünülür.





Sayfa: [ 1 ]