/i/Yazılım

Umuyoruz ki geleceğin yazılımcıları bu altinciden çıkacak!
    başlık yok! burası bom boş!
  1. 1.
    +1
    Hikaye değil, kurgu da değil. BIOS sadece ondan ibaret değil. Ben sistem programcılığı yapıyorum. BIOS'un baştan sona ne yaptığını anlatabilirim.

    Bilgisayara güç gittiğinde işlemci CS:0xFFFF IP:0 durumundadır. Bu bellekte 0xFFFF0'ı gösterir. O adreste BIOS'un kendisine, başlangıç koduna gitmeyi sağlayan bir jmp komutu (Makine dili EA EB 03 00 F0) (EA jmp opcode'u, EB 03 little endian olarak 3EB, 00F0 da yine little endian olarak F000, little endian dediğim byte'ların ters sırayla kaydedilmesi işlenmesi oluyor. Yani 0xABCDEF bellekte EF CD AB diye kaydediliyor) vardır. işlemci jump kodunu uyguladığı zaman genelde 0xF03EB gibi bir adrese gider. (CS:0xF000 IP:0x3EB) Bundan itibaren sistem kontrolünü BIOS ele alır. BIOS öncelikle POST (Power On Self Test) adında bir işlem uygular ve tüm parçaların doğru çalışıp çalışmadığını kontrol eder. Bir hata varsa sesli uyarı verir ve sistemi açmaz. RAM'lerden birini yanlış taktığınızda gelen o sesin kaynağı BIOS.

    Sistem POST aşamasından da geçerse, sisteme bağlı her türlü sabit diskten, CD-ROM'dan, DVD-ROM'dan (boot sırası diye ayarladığınız şey) bir sektör (512 kb) okur. Sektörün sonu 0xAA55 ile bitiyorsa başlatılabilir bir sektördür ve BIOS kontrolü o sektöre devreder.

    Bootloader kontrolü ele alınca işletim sistemini açar ve açılış tamamlanmış olur.

    Şimdi bu sistemin tamamen silinmesinden bahsediyoruz. Artık 0xFFFF0'da geçerli bir jmp komutu olmayacak, işlemci ne yapacağını bilemeyip orada ya Invalid Opcode hatasıyla triple fault verecek ya da olduğu yerde beklemekten başka bir şey yapmayacak.

    Üstelik BIOS'un yaptıkları da bu kadar değil. BIOS anakarttaki birçok parçayla iletişim kurup onları yapılandırmakla görevli. Kullanıcı da bu ayarlarla oynayabiliyor. (Overclock yapma ekranı dediğin kısım)

    Eğer BIOS'a zarar gelirse ne olacağını az çok tahmin edebilirsiniz artık.
    ···
   tümünü göster