BIOS
Bilgisayarda BIOS (/ˈbaɪɒs, -oʊs/, BY-oss, -ohss; Basic Input/Output System, Sistem BIOS, ROM BIOS, BIOS ROM veya PC BIOS olarak da bilinir), işletim sistemleri ve programlar için çalışma zamanı hizmetleri sağlamak ve önyükleme işlemi (açılışta başlatma) sırasında donanım başlatma gerçekleştirmek için kullanılan bellenimdir. BIOS ürün yazılımı IBM PC veya IBM PC uyumlu sistem kartına önceden yüklenmiş olarak gelir ve UEFI tabanlı sistemlerde de bulunur. Adı, 1975 yılında CP/M işletim sisteminde kullanılan Temel Giriş/Çıkış Sisteminden gelmektedir. Orijinal olarak IBM PC'ye özel olan BIOS, uyumlu sistemler yaratmak isteyen bazı şirketler (Phoenix Technologies gibi) tarafından ters mühendislikle geliştirilmiştir. Bu orijinal sistemin arayüzü fiili bir standart olarak hizmet vermektedir. ⓘ
Modern PC'lerdeki BIOS, sistem donanım bileşenlerini başlatır ve test eder (Power-on self-test) ve bir yığın depolama aygıtından bir önyükleme yükleyicisi yükler ve ardından bir işletim sistemi başlatır. DOS döneminde BIOS, klavye, ekran, depolama ve diğer giriş/çıkış (I/O) aygıtları için BIOS kesme çağrıları sağlayarak uygulama programları ve işletim sistemi için bir arayüz standartlaştırmıştır. Daha yeni işletim sistemleri başlangıçtan sonra BIOS kesme çağrılarını kullanmaz. ⓘ
Çoğu BIOS uygulaması, özellikle sistem yonga seti olmak üzere çeşitli cihazlarla arayüz oluşturarak belirli bir bilgisayar veya anakart modeliyle çalışmak üzere özel olarak tasarlanmıştır. Başlangıçta, BIOS ürün yazılımı PC anakartı üzerindeki bir ROM yongasında saklanırdı. Daha sonraki bilgisayar sistemlerinde, BIOS içeriği flash bellekte saklanır, böylece çip anakarttan çıkarılmadan yeniden yazılabilir. Bu, BIOS aygıt yazılımının son kullanıcı tarafından kolayca güncellenebilmesini ve böylece yeni özelliklerin eklenebilmesini veya hataların giderilebilmesini sağlar, ancak aynı zamanda bilgisayara BIOS rootkit'lerinin bulaşması olasılığını da yaratır. Ayrıca, başarısız olan bir BIOS yükseltmesi anakartı bozabilir. BIOS firmware kullanan bilgisayarlarda çalışan Microsoft Windows'un son sürümü Windows 10'dur. ⓘ
Unified Extensible Firmware Interface (UEFI), eski PC BIOS'unun teknik sınırlamalarını ele almayı amaçlayan bir halefidir. ⓘ
Tarihçe
/* C P / M B A S I C I / O S Y S T E M (B I O S) TELİF HAKKI (C) GARY A. KILDALL HAZİRAN, 1975 */ [...] /* B A S I C D I S K O P E R A T I N G S Y S T E M (B D O S) TELİF HAKKI (C) GARY A. KILDALL HAZİRAN, 1975 */- Lawrence Livermore Laboratories (LLL) için CP/M 1.1 veya 1.2'nin PL/M kaynak kodundaki BDOS.PLM dosya başlığından bir alıntı ⓘ
BIOS (Basic Input/Output System) terimi Gary Kildall tarafından yaratılmış ve ilk olarak 1975 yılında CP/M işletim sisteminde ortaya çıkmıştır ve CP/M'in açılış sırasında yüklenen ve doğrudan donanımla arayüz oluşturan makineye özgü kısmını tanımlamaktadır. (Bir CP/M makinesinin ROM'unda genellikle yalnızca basit bir önyükleme yükleyicisi bulunur). ⓘ
MS-DOS, PC DOS veya DR-DOS sürümleri çeşitli şekillerde "IO.SYS", "IBMBIO.COM", "IBMBIO.SYS" veya "DRBIOS.SYS" olarak adlandırılan bir dosya içerir; bu dosya "DOS BIOS" ("DOS I/O Sistemi" olarak da bilinir) olarak bilinir ve işletim sisteminin alt düzey donanıma özgü kısmını içerir. ROM'da bulunan donanıma özgü ancak işletim sisteminden bağımsız "Sistem BIOS "u ile birlikte "CP/M BIOS "unun benzerini temsil eder. ⓘ
Başlangıçta IBM PC'ye özel olan BIOS, uyumlu sistemler yaratmak isteyen bazı şirketler (Phoenix Technologies gibi) tarafından ters mühendislikle geliştirilmiştir. ⓘ
PS/2 makinelerinin piyasaya sürülmesiyle birlikte IBM, Sistem BIOS'unu gerçek ve korumalı mod kısımlarına ayırdı. Gerçek modlu kısım, DOS gibi mevcut işletim sistemleriyle geriye dönük uyumluluk sağlamayı amaçlıyordu ve bu nedenle "CBIOS" ("Uyumluluk BIOS'u" için) olarak adlandırılırken, "ABIOS" ("Gelişmiş BIOS" için) özellikle OS/2 gibi çok görevli işletim sistemleri için uygun yeni arayüzler sağladı. ⓘ
Kullanıcı arayüzü
Orijinal IBM PC ve XT'nin BIOS'unda etkileşimli bir kullanıcı arayüzü yoktu. Hata kodları veya mesajları ekranda görüntülenir veya açılışta kendi kendine test (POST) bir video görüntü bağdaştırıcısını başarıyla başlatma noktasına kadar ilerlemediğinde hataları bildirmek için kodlanmış ses dizileri üretilirdi. IBM PC ve XT'deki seçenekler ana karttaki ve genişletme kartlarındaki anahtarlar ve jumper'lar ile ayarlanırdı. 1990'ların ortalarından itibaren, BIOS ROM'unun, sistem açıldığında belirli bir tuş dizisiyle erişilen bir "BIOS yapılandırma yardımcı programı" (BCU) veya "BIOS kurulum yardımcı programı" içermesi tipik hale geldi. Bu program, kullanıcının daha önce DIP anahtarları kullanılarak ayarlanan türden sistem yapılandırma seçeneklerini klavye aracılığıyla kontrol edilen etkileşimli bir menü sistemi aracılığıyla ayarlamasına olanak tanıyordu. Ara dönemde, IBM AT dahil olmak üzere IBM uyumlu PC'ler yapılandırma ayarlarını pil destekli RAM'de tutuyor ve bu bellekte bulunan yapılandırma seçeneklerini ayarlamak için ROM'da değil diskette önyüklenebilir bir yapılandırma programı kullanıyordu. Disket bilgisayarla birlikte verilirdi ve kaybolması halinde sistem ayarları değiştirilemezdi. Aynı durum genel olarak EISA veriyoluna sahip bilgisayarlar için de geçerliydi ve yapılandırma programı EISA Yapılandırma Yardımcı Programı (ECU) olarak adlandırılıyordu. ⓘ
Modern Wintel uyumlu bir bilgisayar, 1990'ların sonlarındaki ROM'da yerleşik BIOS kurulum yardımcı programlarından farklı bir kurulum rutini sunar; kullanıcı klavye ve video ekranını kullanarak donanım seçeneklerini yapılandırabilir. Modern Wintel makine BIOS yapılandırma ayarlarını flash ROM'da, belki de BIOS'un kendisini tutan aynı flash ROM'da saklayabilir. ⓘ
Çalışma
Sistem başlangıcı
İlk Intel işlemcileri 000FFFF0h fiziksel adresinden başlar. Daha sonraki işlemcilere sahip sistemler BIOS'u sistem ROM'undan çalıştırmaya başlamak için mantık sağlar. ⓘ
Sistem yeni açılmışsa veya reset düğmesine basılmışsa ("soğuk açılış"), tam açılış otomatik testi (POST) çalıştırılır. Ctrl+Alt+Delete tuşlarına basılmışsa ("sıcak önyükleme"), BIOS tarafından test edilen geçici olmayan BIOS belleğinde ("CMOS") saklanan özel bir bayrak değeri, uzun POST ve bellek algılamasının atlanmasını sağlar. ⓘ
POST, CPU, yonga seti, RAM, anakart, ekran kartı, klavye, fare, sabit disk sürücüsü, optik disk sürücüsü ve entegre çevre birimleri de dahil olmak üzere diğer donanımlar gibi sistem aygıtlarını tanımlar, test eder ve başlatır. ⓘ
İlk IBM PC'lerde POST'ta klavye portu üzerinden RAM'e bir program indirip çalıştıran bir rutin vardı. Bu özellik fabrika testi ya da tanılama amaçlıydı. ⓘ
Önyükleme işlemi
Opsiyon ROM taraması tamamlandıktan ve geçerli sağlama toplamlarına sahip tespit edilen tüm ROM modülleri çağrıldıktan sonra veya opsiyon ROM'ları için tarama yapmayan bir BIOS sürümünde POST'tan hemen sonra BIOS önyükleme işlemini başlatmak için INT 19h'yi çağırır. Önyükleme sonrası yüklenen programlar da sistemi yeniden başlatmak için INT 19h'yi çağırabilir, ancak BIOS'un yeniden başlatma işlemine müdahale edebilecek kesmeleri ve diğer eşzamansız donanım işlemlerini devre dışı bırakmaya dikkat etmelidirler, aksi takdirde sistem yeniden başlatılırken kilitlenebilir veya çökebilir. ⓘ
INT 19h çağrıldığında, BIOS sabit disk, disket, CD veya DVD gibi bir "önyükleme aygıtında" önyükleme yükleyici yazılımını bulmaya çalışır. Bulduğu ilk önyükleme yazılımını yükler ve çalıştırarak bilgisayarın kontrolünü ona verir. ⓘ
BIOS, Geçici Olmayan BIOS belleğinde (CMOS) ayarlanan önyükleme aygıtlarını veya en eski PC'lerde DIP anahtarlarını kullanır. BIOS, ilk sektörü (önyükleme sektörü) yüklemeye çalışarak önyüklenebilir olup olmadığını görmek için her cihazı kontrol eder. Eğer sektör okunamazsa, BIOS bir sonraki cihaza geçer. Sektör başarılı bir şekilde okunursa, bazı BIOS'lar bir önyükleme sektörünü kabul etmeden ve aygıtı önyüklenebilir olarak değerlendirmeden önce sektörün son iki baytında (512 bayt uzunluğunda) 0x55 0xAA önyükleme sektörü imzasını da kontrol edecektir. ⓘ
Önyüklenebilir bir aygıt bulunduğunda, BIOS kontrolü yüklenen sektöre aktarır. BIOS, son iki baytta önyükleme sektörü imzası olup olmadığını kontrol etmek dışında önyükleme sektörünün içeriğini yorumlamaz. Bölüm tabloları ve BIOS Parametre Blokları gibi veri yapılarının yorumlanması, önyükleme sektöründeki önyükleme programı veya önyükleme işlemi sırasında yüklenen diğer programlar tarafından yapılır. ⓘ
Ağ bağdaştırıcısı gibi disk dışı bir aygıt, seçenek ROM'u veya anakart BIOS ROM'una entegre edilmiş eşdeğeri tarafından tanımlanan bir prosedürle önyükleme yapmaya çalışır. Bu nedenle, seçenek ROM'ları da anakart BIOS ROM'u tarafından tanımlanan önyükleme sürecini etkileyebilir ya da yerini alabilir. ⓘ
El Torito optik medya önyükleme standardı ile optik sürücü aslında önyükleme amacıyla BIOS'a 3,5" yüksek yoğunluklu disket taklidi yapar. Bir CD-ROM ya da DVD-ROM'un "ilk sektörünü" okumak, disket ya da sabit diskte olduğu gibi basitçe tanımlanmış bir işlem değildir. Ayrıca, ortamın karmaşıklığı tek bir sektöre kullanışlı bir önyükleme programı yazmayı zorlaştırır. Önyüklenebilir sanal disket, optik ortama kendi yerel biçiminde erişim sağlayan bir yazılım içerebilir. ⓘ
Önyükleme önceliği
Kullanıcı BIOS tarafından uygulanan önyükleme önceliğini seçebilir. Örneğin, çoğu bilgisayarda önyüklenebilir bir sabit disk bulunur, ancak bazen daha yüksek önyükleme önceliğine sahip bir çıkarılabilir medya sürücüsü vardır, bu nedenle kullanıcı çıkarılabilir diskin önyüklenmesini sağlayabilir. ⓘ
Modern BIOS'ların çoğunda, önyükleme önceliği sırası kullanıcı tarafından yapılandırılabilir. Daha eski BIOS'larda, sınırlı önyükleme önceliği seçenekleri seçilebilir; en eski BIOS'larda, önce disket sürücüleri, ikinci olarak sabit diskler (yani sabit diskler) ve tipik olarak başka hiçbir önyükleme aygıtının desteklenmediği sabit bir öncelik şeması uygulanmıştır, bu kurallar yüklü seçenek ROM'ları tarafından değiştirilebilir. İlk PC'lerde BIOS, iki sürücü takılı olsa bile genellikle yalnızca ilk disket sürücüsünden veya ilk sabit disk sürücüsünden önyükleme yapardı. ⓘ
Önyükleme hatası
Orijinal IBM PC ve XT'de, önyüklenebilir bir disk bulunamazsa, INT 18h çağrılarak ROM BASIC başlatılırdı. Çok az program ROM'da BASIC kullandığından, klon PC üreticileri bunu dışarıda bıraktı; o zaman bir diskten önyükleme yapamayan bir bilgisayar "ROM BASIC yok" mesajını görüntüler ve dururdu (INT 18h'ye yanıt olarak). ⓘ
Daha sonraki bilgisayarlarda "Önyüklenebilir disk bulunamadı" gibi bir mesaj görüntülenirdi; bazıları bir diskin takılmasını ve önyükleme işlemini yeniden denemek için bir tuşa basılmasını isterdi. Modern bir BIOS hiçbir şey göstermeyebilir veya önyükleme işlemi başarısız olduğunda otomatik olarak BIOS yapılandırma yardımcı programına girebilir. ⓘ
Önyükleme ortamı
Önyükleme programı için ortam çok basittir: CPU gerçek moddadır ve SS, SP, CS ve DL hariç genel amaçlı ve segment kayıtları tanımsızdır. CS:IP her zaman 0x07C00
fiziksel adresine işaret eder. CS ve IP'nin gerçekte hangi değerlere sahip olduğu iyi tanımlanmamıştır. Bazı BIOS'lar 0x0000:0x7C00
CS:IP değerini kullanırken diğerleri 0x07C0:0x0000
değerini kullanabilir. Önyükleme programları her zaman bu sabit adrese yüklendiğinden, bir önyükleme programının yeniden konumlandırılabilir olmasına gerek yoktur. DL, INT 13h ile kullanıldığı gibi önyükleme aygıtının sürücü numarasını içerebilir. SS:SP, muhtemelen donanım kesmelerini destekleyecek kadar büyük olan geçerli bir yığına işaret eder, ancak aksi takdirde SS ve SP tanımsızdır. (Kesintilere hizmet verilebilmesi için bir yığının önceden kurulmuş olması gerekir ve BIOS'un her zaman en azından gün sayımını sürdürmek için kullandığı ve POST sırasında başlattığı sistem zamanlayıcı-tikleme kesintisinin etkin olması ve klavyenin çalışması için kesintilerin etkinleştirilmesi gerekir. BIOS klavye hizmeti çağrılmasa bile klavye çalışır; tuş vuruşları alınır ve BIOS tarafından tutulan 15 karakterlik tip ön tamponuna yerleştirilir). BIOS tarafından kurulan yığının boyutu bilinmediğinden ve konumu da aynı şekilde değişken olduğundan, önyükleme programı kendi yığınını kurmalıdır; önyükleme programı SS:SP'yi inceleyerek varsayılan yığını araştırabilse de, koşulsuz olarak yeni bir yığın kurmak daha kolay ve daha kısadır. ⓘ
Önyükleme sırasında tüm BIOS hizmetleri kullanılabilir durumdadır ve 0x00400
adresinin altındaki bellek kesme vektör tablosunu içerir. BIOS POST, tüm BIOS hizmetlerini hazır duruma getirmek için sistem zamanlayıcılarını, kesme denetleyicilerini, DMA denetleyicilerini ve diğer anakart/chipset donanımlarını gerektiği gibi başlatmıştır. Geleneksel bellek ve genişletilmiş bellekteki tüm sistem DRAM'leri için DRAM yenileme ayarlanmıştır ve çalışmaktadır. BIOS kesmelerine karşılık gelen kesme vektörleri BIOS'taki uygun giriş noktalarını gösterecek şekilde ayarlanmıştır, BIOS tarafından başlatılan aygıtlar için donanım kesme vektörleri BIOS tarafından sağlanan ISR'leri gösterecek şekilde ayarlanmıştır ve BIOS'un programların bağlanması için ürettikleri de dahil olmak üzere diğer bazı kesmeler hemen geri dönen varsayılan bir sahte ISR'ye ayarlanmıştır. BIOS, POST sırasında başlatılan çeşitli parametrelerle 0x00400-0x004FF adreslerinde ayrılmış bir sistem RAM bloğu tutar. 0x00500
adresindeki ve üzerindeki tüm bellek önyükleme programı tarafından kullanılabilir; hatta kendi üzerine bile yazabilir. ⓘ
Uzantılar (opsiyon ROM'ları)
Sabit disk sürücüsü ana veri yolu adaptörleri ve video kartları gibi çevresel kartların kendi donanım yazılımları vardır ve BIOS uzantısı seçenek ROM'u, BIOS'a ek işlevsellik sağlayan genişletme kartı donanım yazılımının bir parçası olabilir. Seçenek ROM'larındaki kod, BIOS işletim sistemini yığın depolama alanından önyüklemeden önce çalışır. Bu ROM'lar genellikle donanımı test eder ve başlatır, yeni BIOS hizmetleri ekler veya mevcut BIOS hizmetlerini kendi hizmetleriyle değiştirir. Örneğin, bir SCSI denetleyicisi genellikle bu denetleyici üzerinden bağlanan sabit diskler için destek ekleyen bir BIOS uzantı ROM'una sahiptir. Bir uzantı ROM'u prensip olarak işletim sistemi içerebilir ya da ağ önyüklemesi gibi tamamen farklı bir önyükleme işlemi uygulayabilir. IBM uyumlu bir bilgisayar sisteminin çalışması, BIOS uzatma ROM'u içeren bir adaptör kartının (ya da bir ROM çipinin) çıkarılması ya da takılmasıyla tamamen değiştirilebilir. ⓘ
Anakart BIOS'u tipik olarak tümleşik ekran ve tümleşik depolamanın başlatılması ve önyüklenmesi için kod içerir. Buna ek olarak, SCSI, RAID, ağ arayüz kartları ve video kartları gibi eklenti adaptör kartları genellikle kendi BIOS'larını (örneğin Video BIOS) içerir ve söz konusu bileşen için sistem BIOS kodunu tamamlar veya değiştirir. Anakarta yerleştirilmiş cihazlar bile bu şekilde davranabilir; seçenek ROM'ları anakart BIOS'unun bir parçası olabilir. ⓘ
Bir eklenti kartı, kart anakart BIOS'u tarafından desteklenmiyorsa ve işletim sistemi yüklenmeden önce kartın BIOS hizmetleri aracılığıyla başlatılması veya erişilebilir hale getirilmesi gerekiyorsa (genellikle bu, önyükleme işleminde gerekli olduğu anlamına gelir) bir seçenek ROM'u gerektirir. ROM'un bazı eski PC sistemlerinde (özellikle IBM PCjr dahil) ek bir avantajı da ROM'un ana sistem RAM'inden daha hızlı olmasıydı. (Modern sistemlerde durum bunun tam tersidir ve BIOS ROM kodu genellikle RAM'e kopyalanır ("gölgelenir"), böylece daha hızlı çalışır). ⓘ
Önyükleme prosedürü
Bir genişletme ROM'u sistemin önyükleme şeklini (örneğin bir ağ aygıtından veya bir SCSI adaptöründen) işbirlikçi bir şekilde değiştirmek isterse, bunu yapabilme yeteneğini kaydetmek için BIOS Önyükleme Spesifikasyonu (BBS) API'sini kullanabilir. Genişleme ROM'ları BBS API'lerini kullanarak kayıt olduktan sonra, kullanıcı BIOS'un kullanıcı arayüzünden mevcut önyükleme seçenekleri arasından seçim yapabilir. Bu nedenle BBS uyumlu PC BIOS uygulamalarının çoğu, genişleme ROM'ları BBS API ile kendilerini yürütmeyi ve kaydetmeyi tamamlayana kadar kullanıcının BIOS'un kullanıcı arayüzüne girmesine izin vermez. ⓘ
Ayrıca, bir genişletme ROM'u sistemin açılış şeklini tek taraflı olarak değiştirmek isterse, BIOS açılış sürecini kesmek için INT 19h veya BIOS disk hizmeti INT 13h gibi normalde 19h kesmesinden çağrılan diğer kesmeleri bağlayabilir. Daha sonra BIOS önyükleme işlemini kendi önyükleme işlemiyle değiştirebilir ya da yalnızca kendi önyükleme eylemlerini ekleyerek, BIOS'un belirli aygıtları önyüklenebilir olarak algılamasını engelleyerek ya da her ikisini birden yaparak önyükleme sırasını değiştirebilir. BIOS Önyükleme Spesifikasyonu yayınlanmadan önce bu, genişleme ROM'larının anakartın yerel BIOS'u tarafından önyükleme için desteklenmeyen aygıtlar için önyükleme özelliğini uygulamasının tek yoluydu. ⓘ
Başlatma
Anakart BIOS'u POST işlemini tamamladıktan sonra, çoğu BIOS sürümü BIOS uzantı ROM'ları olarak da adlandırılan seçenek ROM modüllerini arar ve bunları çalıştırır. Anakart BIOS'u "üst bellek alanının" (x86 gerçek mod adres alanının 0xA0000 adresi ve üzerindeki kısmı) bir bölümünde uzantı ROM'larını tarar ve bulunan her ROM'u sırayla çalıştırır. Bellek eşlemeli opsiyon ROM'larını bulmak için BIOS uygulaması 0x0C0000
ile 0x0F0000
arasındaki gerçek mod adres alanını 2 KB (2,048 bayt) sınırında tarar ve iki baytlık ROM imzası arar: 0x55 ve ardından 0xAA. Geçerli bir genişleme ROM'unda bu imzayı, genişleme ROM'unun gerçek bellekte kapladığı 512 baytlık blok sayısını gösteren tek bir bayt izler ve sonraki bayt seçenek ROM'unun giriş noktasıdır ("giriş ofseti" olarak da bilinir). ROM geçerli bir sağlama toplamına sahipse, BIOS kontrolü giriş adresine aktarır; bu adres normal bir BIOS genişletme ROM'unda genişletmenin başlatma rutininin başlangıcı olmalıdır. ⓘ
Bu noktada, uzantı ROM kodu devreye girer, tipik olarak kontrol ettiği donanımı test eder ve başlatır ve önyükleme sonrası uygulamalar tarafından kullanılmak üzere kesme vektörlerini kaydeder. BIOS hizmetlerini (önceden başlatılmış opsiyon ROM'ları tarafından sağlananlar da dahil olmak üzere) bir kullanıcı yapılandırma arayüzü sağlamak, tanılama bilgilerini görüntülemek veya ihtiyaç duyduğu başka herhangi bir şeyi yapmak için kullanabilir. Bir opsiyon ROM'unun BIOS'a dönmeyerek BIOS'un önyükleme sırasını tamamen engellemesi mümkündür. ⓘ
Bir opsiyon ROM'u normalde başlatma işlemini tamamladıktan sonra BIOS'a dönmelidir. Bir opsiyon ROM'u geri döndüğünde (ve dönerse), BIOS daha fazla opsiyon ROM'u aramaya devam eder ve bellek alanındaki tüm opsiyon ROM alanı taranana kadar her birini buldukça çağırır. ⓘ
Fiziksel yerleşim
Opsiyon ROM'ları normalde adaptör kartlarında bulunur. Ancak, orijinal PC ve belki de PC XT'nin anakartında (IBM'in terimleriyle "sistem kartı") bir seçenek ROM'unun takılabileceği yedek bir ROM yuvası vardır ve BASIC yorumlayıcısını içeren dört ROM da çıkarılabilir ve seçenek ROM'ları olabilecek özel ROM'larla değiştirilebilir. IBM PCjr, ön tarafında iki ROM kartuş yuvasına sahip olmasıyla PC'ler arasında benzersizdir. Bu yuvalardaki kartuşlar, opsiyon ROM'ları için kullanılan üst bellek alanının aynı bölgesiyle eşleşir ve kartuşlar BIOS'un tanıyacağı opsiyon ROM modüllerini içerebilir. Kartuşlar ayrıca BASIC programları gibi farklı şekilde işlenen diğer ROM modüllerini de içerebilir. Bir PCjr kartuşu, muhtemelen tek bir ROM yongasında birlikte saklanan farklı türlerde birkaç ROM modülü içerebilir. ⓘ
İşletim sistemi hizmetleri
BIOS ROM'u belirli bir üreticinin donanımına göre özelleştirilmiştir ve düşük seviyeli hizmetlerin (bir tuş vuruşunu okumak veya diskete bir veri sektörü yazmak gibi) işletim sistemleri de dahil olmak üzere programlara standart bir şekilde sunulmasını sağlar. Örneğin, bir IBM PC monokrom ya da renkli ekran adaptörüne sahip olabilir (farklı ekran bellek adresleri ve donanımları kullanarak), ancak metin modunda ya da grafik modunda ekranda belirli bir konumda bir karakteri görüntülemek için tek bir standart BIOS sistem çağrısı çağrılabilir. ⓘ
BIOS, çevre birimlerini (klavye, ilkel metin ve grafik görüntüleme işlevleri gibi) çalıştırmak için temel giriş/çıkış işlevlerinden oluşan küçük bir kütüphane sağlar. MS-DOS kullanılırken, BIOS hizmetlerine bir uygulama programı (veya MS-DOS) tarafından disk işlevlerine erişmek için INT 13h kesme komutu çalıştırılarak veya video ekranı, klavye, kaset ve diğer aygıt işlevlerine erişmek için belgelenmiş diğer BIOS kesme çağrılarından biri çalıştırılarak erişilebilir. ⓘ
Bu temel aygıt yazılımı işlevselliğinin yerini almak üzere tasarlanmış işletim sistemleri ve yönetici yazılımlar, uygulama yazılımlarına yedek yazılım arayüzleri sağlar. Uygulamalar bu hizmetleri kendilerine de sağlayabilir. Bu durum 1980'lerde MS-DOS altında, programcıların grafik görüntüleme için BIOS video hizmetlerini kullanmanın çok yavaş olduğunu gözlemlemesiyle başlamıştır. Ekran çıkış hızını artırmak için birçok program BIOS'u atladı ve video görüntüleme donanımını doğrudan programladı. Özellikle demoscene'deki diğer grafik programcıları, PC ekran adaptörlerinin IBM BIOS tarafından desteklenmeyen ve BIOS'u atlatmadan yararlanılamayan teknik yetenekleri olduğunu gözlemlediler. AT uyumlu BIOS Intel gerçek modunda çalıştığından, 286 ve sonraki işlemcilerde korumalı modda çalışan işletim sistemleri, BIOS hizmetlerinin yerini almak için korumalı mod işlemiyle uyumlu donanım aygıt sürücüleri gerektiriyordu. ⓘ
Modern işletim sistemlerini (Windows ve Linux gibi) çalıştıran modern bilgisayarlarda BIOS kesme çağrıları yalnızca önyükleme ve işletim sistemlerinin ilk yüklenmesi sırasında kullanılır. İşletim sisteminin ilk grafik ekranı görüntülenmeden önce, giriş ve çıkış genellikle BIOS aracılığıyla gerçekleştirilir. Kullanıcıların önyükleme için bir işletim sistemi seçmesine, güvenli modda önyükleme yapmasına veya bilinen son iyi yapılandırmayı kullanmasına olanak tanıyan Windows'un metinsel menüsü gibi bir önyükleme menüsü BIOS aracılığıyla görüntülenir ve BIOS aracılığıyla klavye girişi alır. ⓘ
Birçok modern bilgisayar, sistemin bir BIOS'a veya CSM özellikli bir UEFI ürün yazılımına sahip olması koşuluyla, konsol ve disk I/O'ları için büyük ölçüde BIOS'a dayanan MS-DOS veya DR-DOS gibi eski işletim sistemlerini önyükleyebilir ve çalıştırabilir. ⓘ
İşlemci mikro kod güncellemeleri
Intel işlemciler P6 mikro mimarisinden bu yana yeniden programlanabilir mikro koda sahiptir. AMD işlemciler K7 mikro mimarisinden beri yeniden programlanabilir mikro koda sahiptir. BIOS, ilk işlemci mikrokodundaki hataları düzelten işlemci mikrokoduna yamalar içerir; mikrokod işlemcinin SRAM'ine yüklenir, bu nedenle yeniden programlama kalıcı değildir, bu nedenle mikrokod güncellemelerinin yüklenmesi sisteme her güç verildiğinde gerçekleştirilir. Yeniden programlanabilir mikro kod olmadan, pahalı bir işlemci değişimi gerekecektir; örneğin, Pentium FDIV hatası Intel için pahalı bir fiyasko olmuştur çünkü orijinal Pentium işlemcinin kusurlu mikro kodu yeniden programlanamadığı için ürünün geri çağrılması gerekmiştir. İşletim sistemleri de ana işlemci mikro kodunu güncelleyebilir. ⓘ
Tanımlama
Bazı BIOS'lar, örneğin Dell gibi orijinal ekipman üreticisi (OEM) tarafından BIOS'un içine yerleştirilen dijital bir imza olan yazılım lisansı açıklama tablosu (SLIC) içerir. SLIC, ACPI veri tablosuna eklenir ve aktif kod içermez. ⓘ
Microsoft Windows ve Microsoft uygulama yazılımlarının OEM sürümlerini dağıtan bilgisayar üreticileri, Windows yazılımını içeren OEM Windows Kurulum diski ve sistem kurtarma diskinin lisansını doğrulamak için SLIC'yi kullanabilir. SLIC'li sistemler bir OEM ürün anahtarı ile önceden etkinleştirilebilir ve kendi kendini etkinleştirme aracı olarak BIOS'taki SLIC'e karşı XML formatlı bir OEM sertifikasını doğrularlar (bkz. Sistem Kilitli Ön Kurulum, SLP). Bir kullanıcı Windows'u yeni yüklerse, etkinleştirmeyi atlamak için hem OEM anahtarına (SLP veya COA) hem de SLIC'lerinin dijital sertifikasına sahip olması gerekir. Bu, kullanıcı OEM tarafından sağlanan önceden özelleştirilmiş bir görüntüyü kullanarak bir geri yükleme gerçekleştirirse başarılabilir. Uzman kullanıcılar OEM görüntüsünden gerekli sertifika dosyalarını kopyalayabilir, SLP ürün anahtarının kodunu çözebilir ve ardından SLP aktivasyonunu manuel olarak gerçekleştirebilir. Orijinal olmayan Windows dağıtımlarının crack'leri genellikle Windows aktivasyonunu atlamak için SLIC'i düzenler ya da taklit eder. ⓘ
Hız aşırtma
Bazı BIOS uygulamaları, CPU'nun garanti edilen kapasite için üretici derecelendirmesinden daha yüksek bir saat hızına ayarlandığı bir eylem olan hız aşırtmaya izin verir. Ancak hız aşırtma, yeterince soğutulmayan bilgisayarlarda sistem güvenilirliğini ciddi şekilde tehlikeye atabilir ve genellikle bileşen ömrünü kısaltabilir. Hız aşırtma, yanlış yapıldığında, bileşenlerin mekanik olarak kendilerini tahrip edecek kadar hızlı bir şekilde aşırı ısınmasına da neden olabilir. ⓘ
Bazı BIOS çipleri hız aşırtırmaya (overcloking) imkân tanır. Hız aşırtırma BIOS'un üretim kapasitesini zorlaması demektir. Hız aştırma işlemi uzun vadede bileşen ömrüne zarar verebilir. Ayrıca aşırı ısınma ve kendini yok etme gibi sonuçlar doğurabilir. ⓘ
Modern kullanım
Bazı eski işletim sistemleri, örneğin MS-DOS, PC içindeki çoğu giriş/çıkış görevini yerine getirmek için BIOS'a güvenir. ⓘ
Gerçek mod BIOS hizmetlerini doğrudan çağırmak korumalı mod (ve uzun mod) işletim sistemleri için verimsizdir. BIOS kesme çağrıları, ilk yüklendikten sonra modern çok görevli işletim sistemleri tarafından kullanılmaz. ⓘ
1990'larda BIOS, Microsoft Windows ve Unix benzeri işletim sistemleri için Advanced Power Management (APM), Plug and Play BIOS, Desktop Management Interface (DMI), VESA BIOS Extensions (VBE), e820 ve MultiProcessor Specification (MPS) gibi bazı korumalı mod arayüzleri sağlamıştır. 2000 yılından itibaren çoğu BIOS, modern işletim sistemleri için ACPI, SMBIOS, VBE ve e820 arayüzleri sağlamaktadır. ⓘ
İşletim sistemleri yüklendikten sonra, Sistem Yönetim Modu kodu hala SMRAM'de çalışmaktadır. 2010 yılından beri BIOS teknolojisi UEFI'ye doğru bir geçiş sürecindedir. ⓘ
Yapılandırma
Kurulum yardımcı programı
Tarihsel olarak, IBM PC ve XT'deki BIOS'un yerleşik bir kullanıcı arayüzü yoktu. Daha önceki PC'lerdeki (XT sınıfı) BIOS sürümleri yazılımla yapılandırılabilir değildi; bunun yerine kullanıcılar seçenekleri anakart üzerindeki DIP anahtarları aracılığıyla ayarlıyordu. Daha sonraki bilgisayarlar, 80286 CPU'lu tüm IBM bilgisayarları da dahil olmak üzere, BIOS ayarlarını tutan pil destekli uçucu olmayan bir BIOS belleğine (CMOS RAM yongası) sahipti. Video adaptör tipi, bellek boyutu ve sabit disk parametreleri gibi bu ayarlar, ROM'da yerleşik olmayan bir diskten bir yapılandırma programı çalıştırılarak yapılandırılabilirdi. Bellek boyutu gibi ayarları yapılandırmak için IBM AT'ye özel bir "referans disketi" takılırdı. ⓘ
İlk BIOS sürümlerinde parola ya da önyükleme aygıtı seçim seçenekleri yoktu. BIOS, ilk disket sürücüden ya da bu başarısız olursa ilk sabit diskten önyükleme yapacak şekilde kodlanmıştı. İlk AT sınıfı makinelerde erişim kontrolü fiziksel bir tuş kilidi anahtarıyla yapılıyordu (bilgisayar kasası açılabiliyorsa bunu aşmak zor değildi). Bilgisayarı açabilen herkes onu başlatabilirdi. ⓘ
Daha sonra, 386 sınıfı bilgisayarlar BIOS kurulum yardımcı programını BIOS kodunun yanı sıra ROM'a entegre etmeye başladı; bu bilgisayarlar genellikle belirli bir tuşa veya tuş kombinasyonuna basıldığında BIOS kurulum yardımcı programına önyükleme yapar, aksi takdirde BIOS POST ve önyükleme işlemi yürütülür. ⓘ
Modern bir BIOS kurulum programı, bilgisayar başlatıldığında klavyedeki belirli bir tuşa basılarak erişilen bir metin kullanıcı arayüzüne (TUI) veya grafik kullanıcı arayüzüne (GUI) sahiptir. Bu tuş genellikle ilk açılış sırasında kısa bir süre için ilan edilir, örneğin "Kuruluma girmek için DEL tuşuna basın". Gerçek tuş belirli bir donanıma bağlıdır. BIOS kurulum yardımcı programında bulunan özellikler tipik olarak şunları içerir:
- Donanım bileşenlerinin yapılandırılması, etkinleştirilmesi ve devre dışı bırakılması
- Sistem saatinin ayarlanması
- Önyükleme sırasını ayarlama
- BIOS kullanıcı arayüzüne erişimi güvence altına almak ve kötü niyetli kullanıcıların sistemi yetkisiz taşınabilir depolama aygıtlarından önyüklemesini önlemek için bir parola veya sistemi önyüklemek için bir parola gibi çeşitli parolaların ayarlanması ⓘ
Donanım izleme
Modern bir BIOS kurulum ekranı genellikle anakartın Donanım İzleme çipiyle doğrudan arayüz oluşturan bir PC Sağlık Durumu veya Donanım İzleme sekmesine sahiptir. Bu, CPU ve kasa sıcaklığını, güç kaynağı ünitesi tarafından sağlanan voltajı izlemenin yanı sıra anakarta bağlı fanların hızını izlemeyi ve kontrol etmeyi mümkün kılar. ⓘ
Sistem başlatıldıktan sonra, donanım izleme ve bilgisayar fan kontrolü normalde doğrudan Donanım Monitörü çipi tarafından yapılır; bu çip ayrı bir çip olabilir, I2C veya SMBus aracılığıyla arayüzlenebilir veya Endüstri Standardı Mimarisi (ISA) veya Düşük Pin Sayısı (LPC) aracılığıyla arayüzlenen bir Süper I/O çözümünün bir parçası olarak gelebilir. envsys ile NetBSD ve sysctl hw.sensors ile OpenBSD gibi bazı işletim sistemleri, donanım monitörleri ile entegre arayüz özelliğine sahiptir. ⓘ
Ancak bazı durumlarda BIOS, ACPI aracılığıyla donanım izleme hakkında temel bilgileri de sağlar, bu durumda işletim sistemi donanım izleme gerçekleştirmek için ACPI kullanıyor olabilir. ⓘ
Yeniden Programlama
Modern bilgisayarlarda BIOS, yeniden yazılabilir EEPROM veya NOR flash bellekte saklanır ve içeriğin değiştirilmesine ve değiştirilmesine izin verir. İçeriğin bu şekilde yeniden yazılması bazen flaşlama olarak adlandırılır. Genellikle sistem üreticisi tarafından sağlanan özel bir programla ya da POST sırasında sabit sürücü veya USB flash sürücüdeki BIOS görüntüsü ile yapılabilir. Bu tür içerikleri içeren bir dosya bazen "BIOS görüntüsü" olarak adlandırılır. Bir BIOS, hataları düzeltmek veya daha iyi performans sağlamak ya da daha yeni donanımları desteklemek amacıyla daha yeni bir sürüme yükseltmek için yeniden yüklenebilmektedir. ⓘ
Donanım
Orijinal IBM PC BIOS'u (ve kaset BASIC'i) anakart üzerindeki soketlerde bulunan maske programlı salt okunur bellek (ROM) yongalarında saklanırdı. ROM'lar kullanıcılar tarafından değiştirilebiliyor ancak değiştirilemiyordu. Güncellemelere izin vermek için, birçok uyumlu bilgisayar EPROM, EEPROM ve daha sonra flash bellek (genellikle NOR flash) cihazları gibi yeniden programlanabilir BIOS bellek cihazları kullandı. BIOS üreticisi Micro Firmware'in başkanı Robert Braver'e göre, Flash BIOS çipleri 1995 civarında yaygınlaştı çünkü elektrikle silinebilir PROM (EEPROM) çipleri standart ultraviyole silinebilir PROM (EPROM) çiplerinden daha ucuz ve programlanması daha kolaydı. Flash yongaları devre içinde programlanırken (ve yeniden programlanırken), EPROM yongalarının yeniden programlanması için anakarttan çıkarılması gerekir. BIOS sürümleri, donanımın yeni sürümlerinden yararlanmak ve önceki BIOS sürümlerindeki hataları düzeltmek için yükseltilir. ⓘ
IBM AT ile başlayarak, PC'ler BIOS aracılığıyla ayarlanabilen bir donanım saatini destekledi. Bu saat, 2000 yılına gelindiğinde yüzyılı manuel olarak değiştirmeye olanak tanıyan bir yüzyıl bitine sahipti. 1995'te oluşturulan BIOS revizyonlarının çoğu ve 1997'deki neredeyse tüm BIOS revizyonları, saat 31 Aralık 1999 gece yarısını geçtiğinde yüzyıl bitini otomatik olarak ayarlayarak 2000 yılını destekledi. ⓘ
İlk flash yongaları ISA veri yoluna takıldı. 1998'den itibaren BIOS flaşı, "firmware hub" (FWH) olarak bilinen yeni bir standart uygulamayı takiben LPC veriyoluna taşındı. 2006 yılında BIOS flash belleği SPI veri yoluna taşındı. ⓘ
BIOS'un boyutu ve ROM, EEPROM veya depolanabileceği diğer ortamların kapasitesi, koda yeni özellikler eklendikçe zaman içinde artmıştır; BIOS sürümleri artık 32 megabayta kadar boyutlarda mevcuttur. Buna karşın, orijinal IBM PC BIOS'u 8 KB'lık bir maske ROM'unda bulunuyordu. Bazı modern anakartlar, bazı Linux dağıtımları gibi tüm kompakt işletim sistemlerini depolayabilen daha da büyük NAND flash bellek IC'leri içermektedir. Örneğin, bazı ASUS dizüstü bilgisayarlar NAND flash bellek IC'lerine gömülü Splashtop OS içeriyordu. Bununla birlikte, bir PC'nin ROM'una BIOS ile birlikte bir işletim sistemi dahil etme fikri yeni değildir; 1980'lerde Microsoft, MS-DOS için bir ROM seçeneği sunmuş ve Tandy 1000 HX gibi bazı PC klonlarının ROM'larına dahil edilmiştir. ⓘ
IBM PC AT ve ilk uyumlularında başka bir tür firmware çipi bulunuyordu. AT'de klavye arayüzü kendi programlanabilir belleğine sahip bir mikro denetleyici tarafından kontrol ediliyordu. IBM AT'de bu 40 pinli soketli bir cihazdı, bazı üreticiler ise bu çipin EPROM'a benzeyen bir versiyonunu kullanıyordu. Bu denetleyiciye ayrıca bir megabayt aralığının üzerindeki belleği yönetmek için A20 geçidi işlevi de atanmıştı; bazen üst belleği kullanabilen yazılımlardan yararlanmak için bu "klavye BIOS'unun" yükseltilmesi gerekiyordu. ⓘ
BIOS, belleğin başlatılmasından (örneğin SPD ve bellek zamanlamalarının başlatılması) sorumlu olan Bellek Referans Kodu (MRC) gibi bileşenler içerebilir. ⓘ
Modern BIOS şunları içerir Intel Yönetim Motoru veya AMD Platform Güvenlik İşlemcisi ürün yazılımı. ⓘ
Satıcılar ve ürünler
Şirket | AwardBIOS | AMIBIOS | Insyde | SeaBIOS |
---|---|---|---|---|
Lisans | Tescilli | Tescilli | Tescilli | LGPL v3 |
Bakımı yapıldı / geliştirildi | Sonlandırıldı | Sonlandırıldı | Sonlandırıldı | Evet |
32 bit PCI BIOS çağrıları | Evet | Evet | Evet | Evet |
AHCI | Evet | Evet | Evet | Evet |
APM | Evet | Evet | Evet (1.2) | Evet (1.2) |
BBS | Evet | Evet | Evet | Evet |
Önyükleme menüsü | Evet | Evet | Evet | Evet |
Sıkıştırma | Evet (LHA) | Evet (LHA) | Evet (RLE) | Evet (LZMA) |
CMOS | Evet | Evet | Evet | Evet |
EDD | Evet | Evet | Evet | Evet |
ESCD | Evet | Evet | ? | Hayır |
ROM'dan Flash | ? | Evet | ? | Hayır |
Dil | Montaj | Montaj | Montaj | C |
LBA | Evet (48) | Evet (48) | Evet | Evet (48) |
Çoklu İşlemci Spesifikasyonu | Evet | Evet | Evet | Evet |
Seçenek ROM | Evet | Evet | Evet | Evet |
Şifre | Evet | Evet | Evet | Hayır |
PMM | ? | Evet | ? | Evet |
Kurulum ekranı | Evet | Evet | Evet | Hayır |
SMBIOS | Evet | Evet | Evet | Evet |
Sıçrama ekranı | Evet (EPA) | Evet (PCX) | Evet | Evet (BMP, JPG) |
TPM | Bilinmiyor | Bilinmiyor | Bilinmiyor | Bazıları |
USB önyükleme | Evet | Evet | Evet | Evet |
USB hub | ? | ? | ? | Evet |
USB klavye | Evet | Evet | Evet | Evet |
USB fare | Evet | Evet | Evet | Evet |
IBM, orijinal PC, PC XT, PC AT ve diğer çağdaş PC modelleri için BIOS listelerinin tamamını, her makine tipi için IBM PC Teknik Referans Kılavuzu'nun bir ekinde yayınladı. BIOS listelerinin yayınlanmasının etkisi, herkesin kesin bir BIOS'un tam olarak ne yaptığını ve nasıl yaptığını görebilmesidir. ⓘ
Mayıs 1984'te Phoenix Software Associates, Compaq'ın Portable için yaptığı gibi OEM'lerin IBM PC BIOS'unu tersine mühendislik işlemine tabi tutmak zorunda kalmadan esasen tam uyumlu klonlar üretmesini sağlayan ilk ROM-BIOS'unu piyasaya sürdü ve PC-uyumlu bilgisayar endüstrisinin büyümesine ve DOS'un IBM dışı sürümlerinin satışına yardımcı oldu. Ve ilk American Megatrends (AMI) BIOS 1986'da piyasaya sürüldü. ⓘ
BIOS'a aşılanan yeni standartlar genellikle tam kamusal belgelere ya da BIOS listelerine sahip değildir. Sonuç olarak, BIOS'a yapılan pek çok IBM dışı ekleme hakkındaki özel ayrıntıları öğrenmek, temel BIOS hizmetleri hakkında bilgi edinmek kadar kolay değildir. ⓘ
Çoğu PC anakart tedarikçisi, "bağımsız BIOS satıcısı" veya IBV olarak bilinen ticari bir üçüncü taraftan bir BIOS "çekirdeği" ve araç seti lisanslamıştır. Anakart üreticisi daha sonra bu BIOS'u kendi donanımına uyacak şekilde özelleştirmiştir. Bu nedenle, güncellenmiş BIOS'lar normalde doğrudan anakart üreticisinden temin edilir. Eski büyük BIOS satıcıları arasında American Megatrends (AMI), Insyde Software, Phoenix Technologies, Byosoft, Award Software ve Microid Research yer alıyordu. Microid Research ve Award Software 1998 yılında Phoenix Technologies tarafından satın alındı; Phoenix daha sonra Award marka adını aşamalı olarak kaldırdı. Yine Phoenix tarafından 2007 yılında satın alınan General Software, Intel işlemcilere dayalı gömülü sistemler için BIOS satmıştır. ⓘ
Açık kaynak topluluğu, libreboot, coreboot ve OpenBIOS/Open Firmware projeleri aracılığıyla tescilli BIOS'ların ve gelecekteki enkarnasyonlarının yerine açık kaynaklı bir muadil geliştirme çabalarını artırdı. AMD bazı yonga setleri için ürün özellikleri sağladı ve Google projeye sponsorluk yapıyor. Anakart üreticisi Tyan, Opteron serisi anakartlarıyla standart BIOS'un yanında coreboot'u da sunmaktadır. ⓘ
Güvenlik
EEPROM ve Flash bellek yongaları kullanıcı tarafından kolayca güncellenebildikleri için avantajlıdır; donanım üreticilerinin ürünlerini yükseltmek, uyumluluğu artırmak ve hataları gidermek için BIOS güncellemeleri yayınlaması alışılmış bir durumdur. Ancak bu avantaj, yanlış yapılan veya iptal edilen bir BIOS güncellemesinin bilgisayarı veya cihazı kullanılamaz hale getirme riskini de beraberinde getirmiştir. Bu durumlardan kaçınmak için, daha yeni BIOS'lar bir "önyükleme bloğu" kullanır; BIOS'un önce çalışan ve ayrı olarak güncellenmesi gereken bir kısmı. Bu kod, kontrolü BIOS'a aktarmadan önce BIOS'un geri kalanının sağlam olup olmadığını (karma sağlama toplamları veya diğer yöntemleri kullanarak) doğrular. Önyükleme bloğu ana BIOS'ta herhangi bir bozulma tespit ederse, genellikle kullanıcıyı çıkarılabilir medyadan (disket, CD veya USB flash sürücü) önyükleme yaparak bir kurtarma işleminin başlatılması gerektiği konusunda uyarır, böylece kullanıcı BIOS'u yeniden flaşlamayı deneyebilir. Bazı anakartlarda BIOS bozulmalarından kurtulmak için bir yedek BIOS (bazen DualBIOS anakartlar olarak adlandırılır) bulunur. ⓘ
İkisi gösteri amaçlı olmak üzere bilinen en az beş BIOS saldırı virüsü vardır. Vahşi doğada bulunan ilk virüs Çinli kullanıcıları hedef alan Mebromi'dir. ⓘ
İlk BIOS virüsü, BIOS çiplerini silmek yerine onlara bulaşan BIOS Meningitis idi. BIOS Meningitis, CIH gibi bir virüse kıyasla nispeten zararsızdır. ⓘ
İkinci BIOS virüsü, uyumlu yonga setlerindeki flash ROM BIOS içeriğini silebilen ve "Çernobil Virüsü" olarak da bilinen CIH idi. CIH 1998 yılının ortalarında ortaya çıkmış ve Nisan 1999'da aktif hale gelmiştir. Çoğu zaman, virüs bulaşmış bilgisayarlar artık açılamıyordu ve insanlar flash ROM IC'yi anakarttan çıkarıp yeniden programlamak zorunda kalıyordu. CIH, o dönemde yaygın olan Intel i430TX anakart yonga setini hedef almış ve yine o dönemde yaygın olan Windows 9x işletim sistemlerinin tüm programlara doğrudan donanım erişimine izin vermesinden yararlanmıştır. ⓘ
Modern sistemler, Intel i430TX yonga setiyle uyumlu olmayan çeşitli yonga setleri ve ayrıca diğer flash ROM IC türleri kullanıldığından CIH'ye karşı savunmasız değildir. Ayrıca, kazara BIOS'un üzerine yazmaya karşı korunan önyükleme blokları ya da bir çökme durumunda yedek BIOS kullanabilen çift ve dörtlü BIOS donanımlı sistemler şeklinde kazara BIOS'un yeniden yazılmasına karşı ekstra koruma vardır. Ayrıca, FreeBSD, Linux, macOS, Windows 2000, Windows XP ve daha yenileri gibi Windows NT tabanlı Windows işletim sistemleri gibi tüm modern işletim sistemleri, kullanıcı modu programlarının bir donanım soyutlama katmanı kullanarak doğrudan donanım erişimine sahip olmasına izin vermez. ⓘ
Sonuç olarak, 2008 itibariyle CIH esasen zararsız hale gelmiş, en kötü ihtimalle çalıştırılabilir dosyalara bulaşarak ve antivirüs yazılımını tetikleyerek sıkıntıya neden olmuştur. Bununla birlikte, diğer BIOS virüsleri hala mümkündür; Windows Vista/7'nin UAC'si olmayan çoğu Windows ev kullanıcısı tüm uygulamaları yönetici ayrıcalıklarıyla çalıştırdığından, modern bir CIH benzeri virüs ilke olarak bir istismar kullanmadan donanıma erişebilir. OpenBSD işletim sistemi tüm kullanıcıların bu erişime sahip olmasını engeller ve Linux çekirdeği için grsecurity yaması da varsayılan olarak bu doğrudan donanım erişimini engeller, aradaki fark bir saldırganın çok daha zor bir çekirdek seviyesi istismarı veya makinenin yeniden başlatılmasını gerektirmesidir. ⓘ
Üçüncü BIOS virüsü, İngiltere merkezli Next-Generation Security Software'in baş güvenlik danışmanı John Heasman tarafından sunulan bir teknikti. Heasman 2006 yılında Black Hat Güvenlik Konferansı'nda flash bellekte saklanan normal ACPI fonksiyonlarının yerini alan kötü niyetli prosedürleri kullanarak ayrıcalıkların nasıl yükseltilebileceğini ve fiziksel belleğin nasıl okunabileceğini göstermiştir. ⓘ
Dördüncü BIOS virüsü "Kalıcı BIOS enfeksiyonu" adı verilen bir teknikti. Bu teknik 2009 yılında Vancouver'da düzenlenen CanSecWest Güvenlik Konferansında ve Singapur'da düzenlenen SyScan Güvenlik Konferansında ortaya çıkmıştır. Core Security Technologies'den araştırmacılar Anibal Sacco ve Alfredo Ortega, BIOS'taki dekompresyon rutinlerine kötü niyetli kodların nasıl yerleştirileceğini göstererek, işletim sistemi başlatılmadan önce bile başlangıçta bilgisayarın neredeyse tam kontrolünü sağladılar. Kavram kanıtı, BIOS uygulamasındaki bir kusurdan yararlanmıyor, yalnızca normal BIOS yanıp sönme prosedürlerini içeriyor. Bu nedenle, makineye fiziksel erişim ya da kullanıcının root olmasını gerektirmektedir. Bu gerekliliklere rağmen Ortega, kendisinin ve Sacco'nun keşfinin derin etkilerinin altını çizdi: "Tamamen çalışan bir rootkit bırakmak için bir sürücüye yama yapabiliriz. Hatta antivirüs programını kaldırabilecek ya da devre dışı bırakabilecek küçük bir kodumuz bile var." ⓘ
Mebromi, AwardBIOS, Microsoft Windows ve iki Çinli şirketin antivirüs yazılımı bulunan bilgisayarları hedef alan bir trojan: Rising Antivirus ve Jiangmin KV Antivirus. Mebromi, Ana önyükleme kaydına bulaşan bir rootkit yükler. ⓘ
ABD Ulusal Güvenlik Ajansı Bilgi Güvencesi Direktörü Deborah Plunkett, Aralık 2013'te 60 Minutes ile yaptığı bir röportajda, NSA'nın yabancı bir ulus devlet tarafından ABD finans sistemini hedef alan olası bir BIOS saldırısını ortaya çıkardığını ve engellediğini iddia etti. Program anonim kaynaklara dayanarak bunun bir Çin komplosu olduğunu iddia etti. Ancak The Guardian, The Atlantic, Wired ve The Register'daki takip makaleleri NSA'nın iddialarını yalanladı. ⓘ
Daha yeni Intel platformlarında Intel Boot Guard (IBG) teknolojisi etkinleştirilmiştir, bu teknoloji başlangıçta BIOS dijital imzasını kontrol eder ve IBG ortak anahtarı PCH'ye kaynaştırılır. Son kullanıcılar bu işlevi devre dışı bırakamazlar. ⓘ
Sistem BIOS'u güncellemesi sırasında oluşabilecek elektrik kesintisi veya elektrik dalgalanmasının haricinde Win.Cih virüsü gibi BIOS'u bozabilecek normal şartlarda sistemi açılmaz haline gelmesi ile sonuçlanacaktır. Bu ve buna benzer sorunları ortadan kaldırmak için geliştirilen İkincil BIOS uygulamaları mevcuttur. ⓘ
Alternatifler ve halefler
Unified Extensible Firmware Interface (UEFI) birçok yeni makinede BIOS'u tamamlamaktadır. Başlangıçta Intel Itanium mimarisi için yazılan UEFI, artık x86 ve ARM mimarisi platformları için de mevcuttur; spesifikasyon geliştirme, bir endüstri Özel İlgi Grubu olan Unified EFI Forum tarafından yürütülmektedir. EFI önyüklemesi yalnızca GPT'yi destekleyen Microsoft Windows sürümlerinde, Linux çekirdeği 2.6.1 ve sonrasında ve Intel tabanlı Mac'lerde macOS'ta desteklenmiştir. 2014 itibariyle, yeni PC donanımları ağırlıklı olarak UEFI ürün yazılımı ile birlikte gönderilmektedir. Rootkit korumasının mimarisi, sistemin kullanıcının kendi yazılım değişikliklerini çalıştırmasını da engelleyebilir, bu da UEFI'yi açık donanım topluluğunda eski bir BIOS yerine tartışmalı hale getirir. Ayrıca, Windows 11 önyükleme için UEFI gerektirmektedir. ⓘ
X86 dünyasında "Legacy BIOS" işlevselliğine diğer alternatifler coreboot ve libreboot'u içerir. ⓘ
Bazı sunucular ve iş istasyonları, Forth programlama diline dayanan platformdan bağımsız bir Açık Ürün Yazılımı (IEEE-1275) kullanır; Sun'ın SPARC bilgisayarları, IBM'in RS/6000 serisi ve CHRP anakartları gibi diğer PowerPC sistemleri ve x86 tabanlı OLPC XO-1 ile birlikte bulunur. ⓘ
En azından 2015 itibariyle Apple, MacBook Pro bilgisayarlardan eski BIOS desteğini kaldırmıştır. Bu nedenle BIOS yardımcı programı artık eski seçeneği desteklemiyor ve "Eski mod bu sistemde desteklenmiyor" yazıyor. 2017 yılında Intel, 2020 yılına kadar eski BIOS desteğini kaldıracağını duyurdu. 2019'dan bu yana, yeni Intel platformu OEM PC'ler artık eski seçeneği desteklemiyor. ⓘ
Dual BIOS
1999 yılında GIGABYTE Dual BIOS technology adıyla duyurulan 2. bios yedek bios üzerinden bozulan biosun tekrar programlanmasına olanak sağlar. ⓘ
Dezavantajı BIOS yongalarının anakart üzerine lehimli oluşudur. ⓘ
Safe BIOS
MSI anakart firması tarafından geliştirilen BIOS teknolojisidir. Tek bir BIOS üzerinde yazılım 2 farklı alanda kayıtlıdır. Birçok otorite tarafından bu durumun %100 güvenilir olmayacağı ima edilmiştir. ⓘ
Twin BIOS
GIGABYTE Dual BIOS teknolojisine göre tek artısı çıkartılabilir lehimsiz BIOS yongası şeklinde olması son kullanıcılar açısından posta siparişi ile tamir edilebilir oluşu sayesinden dikkat çekmiştir. ⓘ
Dipnotlar
- Mueller: 2001, s. 327 vd.
- Mueller, a.g.e.
- Mueller, a.g.e., s. 339 ⓘ