BIOS - BIOS

1980'lerden bir Dell 310 bilgisayar için bir çift AMD BIOS yongası

Olarak işlem , BIOS ( / b ɒ s , - s / , İLE -oss, -⁠ohss ; bir kısaltma için temel giriş / çıkış sistemi olarak bilinen ve aynı zamanda sistem BIOS , ROM BIOS , BIOS ROM ya da PC BIOS ) olduğu firmware gerçekleştirmek için kullanılan donanım sırasında başlatma çizme işleminin (açılış başlatma) ve için çalışma zamanı hizmeti vermek için işletim sistemleri ve programlar. BIOS bellenimi, bir kişisel bilgisayarın sistem kartına önceden yüklenmiş olarak gelir ve açıldığında çalışan ilk yazılımdır. Adı , 1975 yılında CP/M işletim sisteminde kullanılan Temel Giriş/Çıkış Sisteminden gelmektedir . Orijinal olarak IBM PC'ye ait olan BIOS , uyumlu sistemler oluşturmak isteyen bazı şirketler ( Phoenix Technologies gibi) tarafından tersine mühendislik yapılmıştır . Bu orijinal sistemin arayüzü fiili bir standart olarak hizmet eder .

Modern PC'lerdeki BIOS, sistem donanım bileşenlerini başlatır ve test eder ( Açılışta kendi kendine test ) ve bir yığın depolama aygıtından bir önyükleyici yükler ve ardından bir işletim sistemini başlatır. DOS çağında , BIOS , klavye, ekran, depolama ve diğer giriş/çıkış (G/Ç) aygıtları için uygulama programları ve işletim sistemi için bir arabirimi standartlaştıran BIOS kesme çağrıları sağladı . Daha yeni işletim sistemleri, başlatmadan sonra BIOS kesme çağrılarını kullanmaz.

Çoğu BIOS uygulaması, özellikle sistem yonga seti başta olmak üzere çeşitli aygıtlarla arabirim oluşturarak belirli bir bilgisayar veya ana kart modeliyle çalışmak üzere tasarlanmıştır . Başlangıçta, BIOS bellenimi PC ana kartındaki bir ROM yongasında depolandı . Modern bilgisayar sistemlerinde, BIOS içeriği flash bellekte depolanır, böylece çip anakarttan çıkarılmadan yeniden yazılabilir. Bu, yeni özelliklerin eklenebilmesi veya hataların düzeltilebilmesi için BIOS belleniminde kolay, son kullanıcı güncellemelerine olanak tanır, ancak aynı zamanda bilgisayara BIOS rootkit'lerinin bulaşması olasılığı da yaratır . Ayrıca, BIOS o olabilir başarısız yükseltme tuğla anakart.

Birleşik Genişletilebilir Ürün Yazılımı Arabirimi (UEFI), teknik sınırlamalarını ele almayı amaçlayan eski PC BIOS'unun halefidir.

Tarih

/* C P / M   B A S I C   I / O    S Y S T E M    (B I O S)
                    COPYRIGHT (C) GARY A. KILDALL
                             JUNE, 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)
                    COPYRIGHT (C) GARY A. KILDALL
                            JUNE, 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 (Temel Giriş/Çıkış Sistemi) terimi Gary Kildall tarafından yaratıldı ve ilk olarak 1975'te CP/M işletim sisteminde ortaya çıktı ve önyükleme sırasında yüklenen CP/M'nin doğrudan donanımla arayüz oluşturan makineye özel bölümünü tanımladı . (Bir CP/M makinesinin ROM'unda genellikle yalnızca basit bir önyükleyici bulunur .)

Sürümleri , MS-DOS , PC DOS veya DR-DOS çeşitli "adlı bir dosya içeriyor io.sys ", " IBMBIO.COM ", "IBMBIO.SYS" veya "DRBIOS.SYS"; bu dosya "DOS BIOS" ("DOS G/Ç Sistemi" olarak da bilinir) olarak bilinir ve işletim sisteminin alt düzey donanıma özel bölümünü içerir. ROM'da bulunan temel donanıma özgü ancak işletim sisteminden bağımsız "Sistem BIOS'u" ile birlikte, " CP/M BIOS " analogunu temsil eder .

Orijinal olarak IBM PC'ye ait olan BIOS , uyumlu sistemler oluşturmak isteyen bazı şirketler ( Phoenix Technologies gibi) tarafından tersine mühendislik yapılmıştır .

PS/2 makinelerinin piyasaya sürülmesiyle IBM, Sistem BIOS'unu gerçek ve korumalı mod bölümlerine ayırdı. Gerçek kip bölü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ıldı, oysa "ABIOS" ("Gelişmiş BIOS" için) özellikle yeni arabirimler sağladı. OS/2 gibi çok görevli işletim sistemleri için uygundur .

Kullanıcı arayüzü

Orijinal IBM PC ve XT'nin BIOS'unda etkileşimli kullanıcı arabirimi yoktu. Açılışta otomatik sınama (POST) bir video görüntü bağdaştırıcısını başarıyla başlatma noktasına gelmediğinde , ekranda hata kodları veya mesajları görüntülendi veya hataları bildirmek için kodlanmış bir dizi ses üretildi . IBM PC ve XT'deki seçenekler, ana karttaki ve genişletme kartlarındaki anahtarlar ve atlama kabloları tarafından belirlendi . 1990'ların ortalarından başlayarak, BIOS ROM'un sistem açılışı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 , klavye aracılığıyla kontrol edilen etkileşimli bir menü sistemi aracılığıyla, daha önce DIP anahtarları kullanılarak ayarlanan tipteki sistem yapılandırma seçeneklerini ayarlamasına izin verdi . Ara dönemde, IBM AT ‍‌ dahil IBM uyumlu PC'ler, yapılandırma ayarlarını pil destekli RAM'de tuttu ve bu bellekte yer alan yapılandırma seçeneklerini ayarlamak için ROM'da değil diskette önyüklenebilir bir yapılandırma programı kullandı. Disket bilgisayarla birlikte verilmişti ve diskin kaybolması durumunda sistem ayarları değiştirilemezdi. Aynısı genel olarak , konfigürasyon programına EISA Konfigürasyon Yardımcı Programı (ECU) adı verilen EISA veri yoluna sahip bilgisayarlara uygulandı .

Modern bir Wintel uyumlu bilgisayar, 1990'ların sonundaki ROM'da yerleşik BIOS kurulum yardımcı programlarından temelde değişmeyen bir kurulum rutini sağlar; kullanıcı, klavye ve video ekranını kullanarak donanım seçeneklerini yapılandırabilir. Modern Wintel makinesi, BIOS yapılandırma ayarlarını flash ROM'da, belki de BIOS'un kendisini tutan aynı flash ROM'da depolayabilir.

Operasyon

Sistem başlatma

İlk Intel işlemciler, 000FFFF0h fiziksel adresinde başladı. 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çıldıysa veya sıfırlama düğmesine basıldıysa ("soğuk önyükleme"), tam açılışta kendi kendine test (POST) çalıştırılır. Ctrl+Alt+Delete tuşlarına ("sıcak önyükleme") basıldığında , BIOS tarafından test edilen kalıcı 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 , video kartı , klavye , fare , sabit disk sürücüsü , optik disk sürücüsü ve tümleşik çevre birimleri dahil diğer donanımlar gibi sistem aygıtlarını tanımlar, test eder ve başlatır .

İlk IBM PC'lerin POST'ta bir programı klavye bağlantı noktası aracılığıyla RAM'e indirecek ve çalıştıracak bir rutini vardı. Bu özellik, fabrika testi veya tanılama amaçları için tasarlanmıştır.

Önyükleme işlemi

Önyükleme işlemi

Seçenek ROM taraması tamamlandıktan ve geçerli sağlama toplamlarına sahip algılanan tüm ROM modülleri çağrıldıktan sonra veya isteğe bağlı ROM'ları taramayan bir BIOS sürümünde POST'tan hemen sonra, BIOS, önyükleme işlemini başlatmak için INT 19h'yi arar. Önyükleme sonrası, yüklenen programlar da sistemi yeniden başlatmak için INT 19h'yi arayabilir, ancak BIOS yeniden başlatma sürecini engelleyebilecek kesintileri 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ükleyip çalıştırarak bilgisayarın kontrolünü ona verir.

BIOS, Kalıcı 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 her aygıtın önyüklenebilir olup olmadığını kontrol eder . Sektör okunamıyorsa, BIOS bir sonraki aygıta geçer. Sektör başarılı bir şekilde okunursa, bazı BIOS'lar, bir önyükleme sektörünü kabul etmeden ve aygıtın önyüklenebilir olduğunu düşünmeden önce, sektörün son iki baytında (512 bayt uzunluğunda) 0x55 0xAA önyükleme sektörü imzasını da kontrol eder.

Önyüklenebilir bir aygıt bulunduğunda, BIOS kontrolü yüklenen sektöre aktarır. BIOS, son iki bayttaki önyükleme sektörü imzasını muhtemelen 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 aracılığıyla yüklenen diğer programlar tarafından yapılır.

Ağ bağdaştırıcısı gibi disk olmayan bir aygıt , isteğe bağlı ROM'u veya ana kart BIOS ROM'una tümleşik eşdeğeri tarafından tanımlanan bir prosedürle önyüklemeyi dener . Bu nedenle, isteğe bağlı ROM'lar, anakart BIOS ROM'u tarafından tanımlanan önyükleme sürecini de etkileyebilir veya bunların yerini alabilir.

İle El Torito optik medya önyükleme standardı , optik sürücü aslında önyükleme amaçlı BIOS yüksek yoğunluklu disket. Okuma '3.5" öykünen bir CD-ROM veya DVD-ROM ilk sektörünü' bir basitçe tanımlanmış operasyon değil diskette veya sabit diskte olduğu gibi.Ayrıca, ortamın karmaşıklığı, bir sektörde yararlı bir önyükleme programı yazmayı zorlaştırır.Önyüklenebilir sanal disket, optik ortama kendi doğal ortamında erişim sağlayan bir yazılım içerebilir. biçim.

Açılış ö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 bir diskin önyüklenmesine neden olabilir.

Çoğu modern BIOS'ta, ö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, bu kuralların kurulu isteğe bağlı ROM'lar tarafından değiştirilmesine bağlı olarak sabit bir öncelik şeması uygulandı. Eski bir PC'deki BIOS, iki sürücü kurulu olsa bile, genellikle yalnızca ilk disket sürücüsünden veya ilk sabit disk sürücüsünden önyüklenirdi.

Önyükleme hatası

Orijinal IBM PC ve XT'de, önyüklenebilir disk bulunamazsa, INT 18h çağrılarak ROM BASIC başlatıldı. ROM'da çok az program BASIC kullandığından, klon PC üreticileri bunu dışarıda bıraktı; daha sonra diskten önyükleme yapamayan bir bilgisayar "No ROM BASIC" görüntüleyecek ve duracaktır (INT 18h'ye yanıt olarak).

Daha sonraki bilgisayarlar "Önyüklenebilir disk bulunamadı" gibi bir mesaj görüntüler; bazıları, önyükleme işlemini yeniden denemek için bir diskin takılmasını ve bir tuşa basılmasını ister. Modern bir BIOS hiçbir şey göstermeyebilir veya önyükleme işlemi başarısız olduğunda BIOS yapılandırma yardımcı programına otomatik olarak girebilir.

Önyükleme ortamı

Önyükleme programı ortamı çok basittir: CPU gerçek moddadır ve genel amaçlı ve segment kayıtları SS, SP, CS ve DL dışında tanımsızdır. CS:IP her zaman fiziksel adresi gösterir 0x07C00. CS ve IP'nin gerçekte sahip olduğu değerler iyi tanımlanmamıştır. Bazı BIOS'lar bir CS:IP 0x0000:0x7C00kullanırken diğerleri kullanabilir 0x07C0:0x0000. Ö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 , önyükleme aygıtının INT 13h ile kullanıldığı şekliyle sürücü numarasını içerebilir . SS:SP, muhtemelen donanım kesintilerini destekleyecek kadar büyük olan geçerli bir yığına işaret eder, ancak bunun dışında SS ve SP tanımsızdır. (Kesmelere hizmet verilebilmesi için bir yığın önceden kurulmuş olmalıdır ve BIOS'un en azından günün saatini korumak için her zaman kullandığı ve başlattığı sistem zamanlayıcı-tik kesmesi için kesintiler etkinleştirilmelidir. POST sırasında etkin olması ve klavyenin çalışması için Klavye, BIOS klavye hizmeti çağrılmasa bile çalışır; tuş vuruşları alınır ve BIOS tarafından sağlanan 15 karakterlik önbelleğe alınır.) Önyükleme programı ayarlanmalıdır. BIOS tarafından kurulan yığının boyutu bilinmediğinden ve konumu da aynı şekilde değişken olduğundan, kendi yığınını oluşturur; önyükleme programı SS:SP'yi inceleyerek varsayılan yığını araştırabilse de, koşulsuz olarak yeni bir yığın oluşturmak daha kolay ve daha kısadır.

Önyükleme sırasında, tüm BIOS hizmetleri mevcuttur ve aşağıdaki bellek adresi 0x00400, 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/yonga seti donanımlarını gerektiği şekilde başlattı. Geleneksel bellekte ve genişletilmiş bellekte tüm sistem DRAM'leri için DRAM yenileme, ancak mutlaka genişletilmiş bellek değil, kuruldu ve çalışıyor. Kesme vektörleri , BIOS kesmeleri tekabül BIOS uygun giriş noktalarında noktasına ayarlandı, BIOS tarafından başlatılır cihazlar için vektörler kesme donanımı olanlar da dahil olmak üzere BIOS Resim ISR'ler ve diğer bazı kesme, işaret etmek gerçekleflmekte BIOS'un programların bağlanması için oluşturduğu, hemen geri dönen varsayılan bir sahte ISR'ye ayarlanmıştır. BIOS 0x00400–0x004FF, POST sırasında başlatılan çeşitli parametrelere sahip adreslerde ayrılmış bir sistem RAM bloğu tutar . Adresteki ve üzerindeki tüm bellek 0x00500, önyükleme programı tarafından kullanılabilir; hatta kendi üzerine yazabilir.

Uzantılar (isteğe bağlı ROM'lar)

Sabit disk sürücüsü ana veri yolu bağdaştırıcıları ve video kartları gibi çevresel kartların kendi sabit yazılımları vardır ve BIOS uzatma seçeneği ROM'u , BIOS'a ek işlevsellik sağlayan genişletme kartı sabit yazılımının bir parçası olabilir. Opsiyon ROM'larındaki kod, BIOS işletim sistemini yığın depolamadan başlatmadan önce çalışır . Bu ROM'lar tipik olarak 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, o denetleyici aracılığıyla bağlanan sabit sürücüler için destek ekleyen bir BIOS uzantı ROM'una sahiptir. Bir uzatma ROM'u prensipte işletim sistemi içerebilir veya ağ önyüklemesi gibi tamamen farklı bir önyükleme işlemi uygulayabilir . IBM uyumlu bir bilgisayar sisteminin çalışması, BIOS uzantılı ROM içeren bir adaptör kartının (veya bir ROM yongasının) çıkarılması veya takılmasıyla tamamen değiştirilebilir.

Anakart BIOS'u tipik olarak, tümleşik ekran ve tümleşik depolamanın önyüklenmesi için gerekli donanım bileşenlerine erişmek için kod içerir. Ek olarak, SCSI , RAID , ağ arabirim kartları ve video kartları gibi eklenti adaptör kartları , verilen bileşen için sistem BIOS kodunu tamamlayan veya değiştiren genellikle kendi BIOS'larını (örn. Video BIOS ) içerir. Anakarta yerleşik aygıtlar bile bu şekilde davranabilir; isteğe bağlı ROM'ları, anakart BIOS'unun bir parçası olabilir.

Kart, anakart BIOS'u tarafından desteklenmiyorsa ve işletim sistemi yüklenmeden önce kartın başlatılması veya BIOS hizmetleri aracılığıyla erişilebilir hale getirilmesi gerekiyorsa, bir eklenti kartı bir isteğe bağlı ROM gerektirir (bu, genellikle önyükleme işleminde gerekli olduğu anlamına gelir). ). Gerekli olmadığında bile, bir isteğe bağlı ROM, önyükleme başladıktan sonra bir depolama aygıtından sürücü yazılımı yüklenmeden bir adaptör kartının kullanılmasına izin verebilir - bir isteğe bağlı ROM ile, sürücüyü yüklemek için zaman harcanmaz, sürücü yüklenmez RAM'de veya sabit diskte yer yoktur ve ROM'daki sürücü yazılımı her zaman aygıtla birlikte kalır, böylece ikisi yanlışlıkla ayrılamaz. Ayrıca, ROM kart üzerinde ise, ROM'un sağladığı hem çevresel donanım hem de sürücü yazılımı, yazılımı kurmak için ekstra bir çaba harcamadan birlikte yüklenir. Bazı erken PC sistemlerinde (özellikle IBM PCjr dahil) ROM'un ek bir avantajı, ROM'un ana sistem RAM'inden daha hızlı olmasıydı. (Modern sistemlerde durum bunun tam tersidir ve BIOS ROM kodu genellikle daha hızlı çalışması için RAM'e kopyalanır ("gölgeli").)

Microsoft DEBUG veya Unix dd gibi çeşitli anakart BIOS ve genişletme ROM'larının içeriğini incelemek için birçok yöntem ve yardımcı program vardır .

Önyükleme prosedürü

Genişletme ROM'u, sistemin önyükleme şeklini (bir ağ aygıtından veya bir SCSI bağdaştırıcısından) işbirlikçi bir şekilde değiştirmek isterse, bunu yapma yeteneğini kaydetmek için BIOS Önyükleme Belirtimi (BBS) API'sini kullanabilir. Genişletme ROM'ları BBS API'leri kullanılarak kaydedildikten sonra, kullanıcı BIOS'un kullanıcı arayüzünden mevcut önyükleme seçenekleri arasından seçim yapabilir. Bu nedenle çoğu BBS uyumlu PC BIOS uygulaması, genişletme ROM'ları kendilerini BBS API'sine kaydetmeyi ve çalıştırmayı bitirene kadar kullanıcının BIOS'un kullanıcı arayüzüne girmesine izin vermez.

Ayrıca, bir genişleme ROM'u sistemin tek taraflı olarak önyükleme şeklini değiştirmek isterse, BIOS önyükleme işlemini durdurmak için INT 19h'yi veya normalde 19h'den çağrılan diğer kesmeleri, örneğin INT 13h, BIOS disk hizmetini bağlayabilir. Ardından, BIOS önyükleme işlemini kendi başına bir işlemle değiştirebilir veya BIOS'un belirli aygıtları önyüklenebilir olarak algılamasını önleyerek veya her ikisini birden önleyerek, kendi önyükleme eylemlerini buna ekleyerek yalnızca önyükleme sırasını değiştirebilir. BIOS Önyükleme Spesifikasyonu yayımlanmadan önce, genişletme ROM'larının, anakartın yerel BIOS'u tarafından önyükleme için desteklenmeyen aygıtlar için önyükleme yeteneği uygulaması için tek yol buydu.

başlatma

Anakart BIOS'u POST'unu tamamladıktan sonra, çoğu BIOS sürümü, BIOS uzantı ROM'ları olarak da adlandırılan isteğe bağlı ROM modüllerini arar ve bunları yürütür. Anakart BIOS, " üst bellek alanının " bir bölümündeki uzantı ROM'larını tarar (x86 gerçek kip adres alanının 0xA0000 adresindeki ve üstündeki kısmı) ve bulunan her ROM'u sırayla çalıştırır. Bellek eşlemeli keşfetmek için ISA seçenek ROM'ları, bir BIOS uygulaması gelen gerçek mod adres alanını tarar 0x0C0000için 0x0F0000KB iki bayt ROM arayan (2.048 bayt) sınırları, imza : 0xAA ardından 0x55. Geçerli bir genişletme ROM'unda, bu imzayı, genişletme ROM'unun gerçek bellekte kapladığı 512 baytlık blokların 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) . Belirtilen sayıda 512 baytlık bloğun bir sağlama toplamı hesaplanır ve ROM'un geçerli bir sağlama toplamı varsa, BIOS denetimi, normal bir BIOS uzantı ROM'unda uzantının başlatma rutininin başlangıcı olması gereken giriş adresine aktarır.

Bu noktada, uzantı ROM kodu devralır, 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 . Kullanıcı yapılandırma arabirimi sağlamak, tanılama bilgilerini görüntülemek veya gereken başka bir şeyi yapmak için BIOS hizmetlerini (önceden başlatılmış seçenek ROM'ları tarafından sağlananlar dahil) kullanabilir. Bir isteğe bağlı ROM'un BIOS'un önyükleme sırasını tamamen önleyerek BIOS'a dönmemesi mümkündür.

Bir isteğe bağlı ROM, başlatma işlemini tamamladıktan sonra normalde BIOS'a dönmelidir. Bir isteğe bağlı ROM döndüğünde (ve eğer) BIOS, bellek alanındaki tüm seçenek ROM alanı taranana kadar bulunduğunda her birini çağırarak daha fazla seçenek ROM'u aramaya devam eder.

Fiziksel yerleşim

Dell 310'daki çipler değiştirilerek güncellenen BIOS çipleri

Opsiyon ROM'ları normalde adaptör kartlarında bulunur. Bununla birlikte, orijinal PC ve belki de PC XT, anakartta (IBM'nin terimleriyle "sistem kartı") bir isteğe bağlı ROM'un yerleştirilebileceği yedek bir ROM yuvasına sahiptir ve BASIC yorumlayıcısını içeren dört ROM, ayrıca, isteğe bağlı ROM'lar olabilen özel ROM'larla kaldırılabilir ve değiştirilebilir. IBM PCjr önündeki iki ROM kartuş yuvası olan PC'ler arasında tektir. Bu yuvalardaki kartuşlar, isteğe bağlı ROM'lar için kullanılan üst bellek alanının aynı bölgesiyle eşleşir ve kartuşlar, BIOS'un tanıyacağı isteğe bağlı ROM modüllerini içerebilir. Kartuşlar, BASIC programları gibi farklı şekilde işlenen diğer ROM modülleri türlerini de içerebilir. Bir PCjr kartuşu, muhtemelen bir ROM yongasında birlikte depolanan farklı türlerde birkaç ROM modülü içerebilir.

İşletim sistemi hizmetleri

BIOS ROM, belirli üreticinin donanımına göre özelleştirilir ve işletim sistemleri de dahil olmak üzere programlara standart bir şekilde sağlanacak düşük seviyeli hizmetlere (bir tuşa basma veya bir veri sektörü diskete yazma gibi) izin verir. Örneğin, bir IBM PC'de monokrom veya renkli bir görüntü bağdaştırıcısı olabilir (farklı ekran belleği adresleri ve donanımı kullanan), ancak ekranda belirli bir konumda bir karakteri görüntülemek için tek, standart bir BIOS sistem çağrısı çağrılabilir. metin modu veya grafik modu .

BIOS, çevre birimlerini (klavye, temel metin ve grafik görüntüleme işlevleri vb.) çalıştırmak için küçük bir temel giriş/çıkış işlevleri kitaplığı sağlar . MS-DOS kullanılırken, disk işlevlerine erişmek için bir INT 13h kesme talimatı yürütülerek veya videoya erişmek için bir dizi başka belgelenmiş BIOS kesme çağrısından biri yürütülerek bir uygulama programı (veya MS-DOS tarafından) BIOS hizmetlerine erişilebilir. ekran , klavye , kaset ve diğer aygıt işlevleri.

Bu temel üretici yazılımı işlevinin yerini alacak şekilde tasarlanmış işletim sistemleri ve yürütme yazılımı, uygulama yazılımına yedek yazılım arabirimleri sağlar. Uygulamalar da bu hizmetleri kendilerine sağlayabilir. Bu , programcıların grafik görüntüleme için BIOS video hizmetlerini kullanmanın çok yavaş olduğunu gözlemledikleri 1980'lerde MS-DOS altında bile başladı . Ekran çıktısının 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 gösteri sahnesindeki diğer grafik programcıları, PC görüntü bağdaştırıcılarının IBM BIOS tarafından desteklenmeyen ve atlatılmadan 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 işletim sistemlerinin önyüklemesi ve ilk yüklenmesi sırasında kullanılır. İşletim sisteminin ilk grafik ekranı görüntülenmeden önce, giriş ve çıkış tipik olarak BIOS üzerinden işlenir. Kullanıcıların önyükleme yapmak, güvenli modda önyükleme yapmak veya bilinen en son iyi yapılandırmayı kullanmak için bir işletim sistemi seçmesine olanak tanıyan Windows'un metin menüsü gibi bir önyükleme menüsü BIOS aracılığıyla görüntülenir ve BIOS aracılığıyla klavye girdisini alır.

Pek çok modern bilgisayar, sistemin bir BIOS'u veya CSM özellikli bir UEFI sabit yazılımı olması koşuluyla, konsolları ve disk G/Ç'leri 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 bu yana yeniden programlanabilir mikro koda sahiptir . BIOS, ilk işlemci mikro kodundaki hataları düzelten işlemci mikro koduna yönelik yamalar içerir; mikro işlemcinin içine yüklenen SRAM yeniden programlama böylece sistemi açıkken her zaman gerçekleştirilir mikro güncellemeleri yükleme, kalıcı değildir bu yüzden. Yeniden programlanabilir mikro kod olmadan, pahalı bir işlemci değişimi gerekecektir; örneğin, Pentium FDIV hatası , orijinal Pentium işlemcinin kusurlu mikro kodu yeniden programlanamadığı için ürünün geri çağrılmasını gerektirdiğinden Intel için pahalı bir fiyasko haline geldi . İşletim sistemleri, ana işlemci mikro kodunu da güncelleyebilir .

Kimlik

Bazı BIOS'lar , örneğin Dell gibi orijinal ekipman üreticisi (OEM) tarafından BIOS'un içine yerleştirilmiş bir dijital imza olan bir yazılım lisansı açıklama tablosu (SLIC) içerir . SLIC, ACPI veri tablosuna eklenir ve aktif kod içermez.

Microsoft Windows'un OEM sürümlerini ve Microsoft uygulama yazılımını dağıtan bilgisayar üreticileri, OEM Windows Kurulum diskine ve Windows yazılımını içeren sistem kurtarma diskine lisanslamanın kimliğini doğrulamak için SLIC'yi kullanabilir . SLIC'li sistemler bir OEM ürün anahtarı ile önceden etkinleştirilebilir ve kendi kendini etkinleştirmenin bir yolu olarak BIOS'taki SLIC'ye göre XML biçimli bir OEM sertifikasını doğrularlar (bkz. Sistem Kilitli Önkurulum , SLP). Bir kullanıcı yeni bir Windows yüklemesi gerçekleştirirse, etkinleştirmeyi atlamak için hem OEM anahtarına (SLP veya COA) hem de SLIC'leri için dijital sertifikaya sahip olması gerekir. Bu, kullanıcı OEM tarafından sağlanan önceden özelleştirilmiş bir görüntü 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ı için çatlaklar, Windows aktivasyonunu atlamak için genellikle SLIC'yi düzenler veya taklit eder.

hız aşırtma

Bazı BIOS uygulamaları , garantili kapasite için CPU'nun üretici derecelendirmesinden daha yüksek bir saat hızına ayarlandığı bir işlem olan hız aşırtmaya izin verir . Ancak hız aşırtma, yetersiz soğutulmuş 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 o kadar hızlı ısınmasına neden olabilir ki, mekanik olarak kendilerini yok edebilirler.

Modern kullanım

Bazı eski işletim sistemleri , örneğin MS-DOS , PC içindeki çoğu giriş/çıkış görevini gerçekleştirmek 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ı , başlangıçta yüklendikten sonra modern çoklu görev işletim sistemleri tarafından kullanılmaz.

1990'larda BIOS , Microsoft Windows ve Unix benzeri işletim sistemleri için Gelişmiş Güç Yönetimi (APM), Tak ve Çalıştır BIOS , Masaüstü Yönetim Arayüzü (DMI), PCI BIOS, VESA BIOS Uzantıları (VBE) gibi bazı korumalı mod arabirimleri sağladı. Çoklu İşlemci Spesifikasyonu (MPS). 2000'lerden başlayarak çoğu BIOS , modern işletim sistemleri için ACPI , SMBIOS , VBE ve e820 arayüzleri sağlar.

İşletim sistemleri yüklendikten sonra , Sistem Yönetim Modu kodu SMRAM'de çalışmaya devam eder. 2010'dan beri BIOS teknolojisi, UEFI'ye geçiş sürecindedir .

Yapılandırma

Kurulum yardımcı programı

Tarihsel olarak, IBM PC ve XT'deki BIOS'ta yerleşik bir kullanıcı arabirimi yoktu. Önceki bilgisayarlardaki (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 ayarlar . 80286 CPU'lu tüm IBM uyumlu bilgisayarlar da dahil olmak üzere sonraki bilgisayarlarda, BIOS ayarlarını tutan , pil destekli kalıcı bir BIOS belleği (CMOS RAM yongası) vardı. Video bağdaştırıcı türü, bellek boyutu ve sabit disk parametreleri gibi bu ayarlar, yalnızca ROM'da yerleşik olmayan bir diskten bir yapılandırma programı çalıştırılarak yapılandırılabilir. Bellek boyutu gibi ayarları yapılandırmak için bir IBM AT'ye özel bir "referans disketi" yerleştirildi .

Erken BIOS sürümlerinde parola veya önyükleme aygıtı seçim seçenekleri yoktu. BIOS, ilk disket sürücüden veya bu başarısız olursa ilk sabit diskten önyükleme yapmak için sabit kodlanmıştır. Erken AT sınıfı makinelerde erişim kontrolü, fiziksel bir anahtarlı kilit anahtarı ile yapıldı (bilgisayar kasası açılabiliyorsa, onu yenmek zor değildi). Bilgisayarı açabilen herkes onu başlatabilir.

Daha sonra, 386 sınıfı bilgisayarlar, BIOS kodunun yanı sıra BIOS kurulum yardımcı programını ROM'un kendisine entegre etmeye başladı; bu bilgisayarlar, belirli bir tuşa veya tuş kombinasyonuna basıldığında genellikle BIOS kurulum yardımcı programında önyüklenir, aksi takdirde BIOS POST ve önyükleme işlemi yürütülür.

Standart bir bilgisayarda Award BIOS kurulum yardımcı programı

Modern bir BIOS kurulum yardımcı programı, bilgisayar başladığında klavyede belirli bir tuşa basılarak erişilen bir metin kullanıcı arabirimine (TUI) veya grafik kullanıcı arabirimine (GUI) sahiptir. Genellikle, anahtar erken başlatma sırasında kısa bir süre için duyurulur, örneğin "Kurulum'a girmek için DEL'e basın". Gerçek anahtar belirli donanıma bağlıdır. BIOS kurulum yardımcı programında bulunan özellikler tipik olarak şunları içerir:

  • Donanım bileşenlerini yapılandırma, etkinleştirme ve devre dışı bırakma
  • Sistem zamanını ayarlama
  • Önyükleme sırasını ayarlama
  • BIOS kullanıcı arabirimine erişimi güvence altına almak ve kötü niyetli kullanıcıların sistemi yetkisiz taşınabilir depolama aygıtlarından başlatmasını önlemek için bir parola veya sistemi başlatmak için bir parola gibi çeşitli parolalar ayarlama

Donanım izleme

Modern bir BIOS kurulum ekranında genellikle bir PC Sağlık Durumu veya bir Donanım İzleme sekmesi bulunur ve bunlar doğrudan anakartın Donanım Monitörü yongasıyla arayüz oluşturur. Bu, CPU ve kasa sıcaklığını, güç kaynağı ünitesi tarafından sağlanan voltajı izlemeyi ve ayrıca ana karta 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ü çipinin kendisi tarafından yapılır; bu çip, ayrı bir çip olabilir, I²C veya SMBus aracılığıyla arayüzlenebilir veya bir Süper G/Ç çözümünün bir parçası olarak gelebilir , arayüzlü yoluyla düşük Pim Sayısına (LPC). Gibi bazı işletim sistemleri, NetBSD ile envsys ve OpenBSD sysctl ile hw.sensors , özellik donanım monitörlerle arabirim entegre.

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 izlemeyi gerçekleştirmek için ACPI kullanıyor olabilir.

yeniden programlama

1980'lerin sonundan bir Dell 310 için BIOS değiştirme kiti. İki yonga, yongalar için bir plastik tutucu ve bir yonga çekici dahildir.

Modern PC'lerde BIOS, yeniden yazılabilir EEPROM veya NOR flash bellekte depolanır ve içeriğin değiştirilmesine ve değiştirilmesine izin verir. İçeriğin bu yeniden yazılmasına bazen yanıp sönme denir . Genellikle sistemin üreticisi tarafından sağlanan veya en özel program tarafından yapılabilir POST bir sabit disk veya USB flash sürücü bir BIOS görüntü ile. Bu tür içerikleri içeren bir dosyaya bazen "BIOS görüntüsü" denir. Hataları düzeltmek veya gelişmiş performans sağlamak ya da daha yeni donanımı desteklemek için daha yeni bir sürüme yükseltmek için BIOS yeniden yüklenebilir.

Donanım

American Megatrends BIOS 686. Bu BIOS yongası, bir soket içindeki bir PLCC paketinde yer almaktadır .

Orijinal IBM PC BIOS'u (ve BASIC kaseti), anakart üzerindeki yuvalardaki maske ile programlanmış salt okunur bellek (ROM) yongalarında depolandı . ROM'lar kullanıcılar tarafından değiştirilebilir, ancak değiştirilemez. Güncellemelere izin vermek için, birçok uyumlu bilgisayar, EPROM , EEPROM ve sonraki flash bellek (genellikle NOR flash ) cihazları gibi yeniden programlanabilir BIOS bellek aygıtları kullandı . BIOS üreticisi Micro Firmware'in başkanı Robert Braver'a göre, Flash BIOS yongaları, elektrikle silinebilir PROM (EEPROM) yongalarının standart ultraviyole silinebilir PROM ( EPROM ) yongalarından daha ucuz ve programlanması daha kolay olduğu için 1995'te yaygınlaştı . Flaş çipler devre içinde programlanır (ve yeniden programlanır) ve EPROM çiplerinin yeniden programlama için anakarttan çıkarılması gerekir. BIOS sürümleri, donanımın daha yeni sürümlerinden yararlanmak ve BIOS'ların önceki revizyonlarındaki hataları düzeltmek için yükseltilir.

IBM AT ile başlayarak, bilgisayarlar BIOS aracılığıyla ayarlanabilen bir donanım saatini destekledi. 2000 yılının gerçekleştiği yüzyılı manuel olarak değiştirmeye izin veren bir yüzyıla sahipti. 1995'te oluşturulan çoğu BIOS revizyonu 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 flaş çipleri ISA veri yoluna bağlandı . 1998'den başlayarak, BIOS flaşı , "bellenim merkezi" (FWH) olarak bilinen yeni bir standart uygulamanın ardından ISA'nın işlevsel bir yedeği olan LPC veri yoluna taşındı . 2006'da BIOS flash belleği SPI veri yoluna taşındı .

BIOS'un boyutu ve üzerinde depolanabileceği ROM, EEPROM veya diğer ortamların kapasitesi, koda yeni özellikler eklendikçe zamanla artmıştır; BIOS sürümleri artık 32 megabayta kadar boyutlarda mevcuttur. Buna karşılık, orijinal IBM PC BIOS, 8 KB'lik 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'lerini içerir . Örneğin, bazı ASUS dizüstü bilgisayarlar , NAND flash bellek IC'lerine gömülü Splashtop OS içeriyordu . Ancak, bir bilgisayarın ROM'una BIOS ile birlikte bir işletim sistemi ekleme fikri yeni değil; 1980'lerde Microsoft, MS-DOS için bir ROM seçeneği sundu ve Tandy 1000 HX gibi bazı PC klonlarının ROM'larına dahil edildi .

IBM PC AT ve erken uyumlu cihazlarda başka bir ürün yazılımı yongası türü bulundu. AT'de klavye arayüzü , kendi programlanabilir belleği olan bir mikro denetleyici tarafından kontrol edildi . IBM AT'de bu 40 pinli soketli bir cihazdı, bazı üreticiler ise bu çipin EPROM'a benzeyen bir EPROM versiyonunu kullandılar. Bu denetleyiciye ayrıca , bir megabayt aralığının üzerindeki belleği yönetmek için A20 geçit işlevi atanmıştır ; bazen bu "klavye BIOS'unun" yükseltilmesi, üst belleği kullanabilen yazılımlardan yararlanmak için gerekliydi.

BIOS , belleğin başlatılmasından sorumlu olan Bellek Referans Kodu (MRC) gibi bileşenleri içerebilir (örn. SPD ve bellek zamanlamaları başlatma).

Modern BIOS, Intel Management Engine veya AMD Platform Security Processor ürün yazılımını içerir.

Satıcılar ve ürünler

Farklı BIOS uygulamalarının karşılaştırılması
Şirket ÖdülBIOS AMİBİOS içinde SeaBIOS
Lisans tescilli tescilli tescilli LGPL v3
Bakımlı / geliştirilmiş Sonlandırılmış Sonlandırılmış Sonlandırılmış Evet
32 bit PCI BIOS çağrıları Evet Evet Evet Evet
AHCI Evet Evet Evet Evet
eylem sayısı 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 ? Numara
ROM'dan flaş ? Evet ? Numara
Dilim toplantı toplantı toplantı C
LBA Evet (48) Evet (48) Evet Evet (48)
Çoklu İşlemci Spesifikasyonu Evet Evet Evet Evet
Seçenek ROM'u Evet Evet Evet Evet
Parola Evet Evet Evet Numara
PMM ? Evet ? Evet
Kurulum ekranı Evet Evet Evet Numara
SMBIOS Evet Evet Evet Evet
Başlangıç ​​ekranı Evet (EPA) Evet ( PCX ) Evet Evet (BMP, JPG)
TPM Bilinmeyen Bilinmeyen Bilinmeyen Biraz
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'un tüm listelerini, her makine tipi için IBM PC Teknik Referans Kılavuzunun bir ekinde yayınladı . BIOS listelerinin yayınlanmasının etkisi, herkesin kesin bir BIOS'un ne yaptığını ve nasıl yaptığını tam olarak 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 yapmak zorunda kalmadan temelde tamamen uyumlu klonlar oluşturmasını sağlayan ilk ROM-BIOS'unu piyasaya sürdü ve PC'deki büyümeyi hızlandırmaya yardımcı oldu. uyumlu endüstri ve DOS'un IBM dışı sürümlerinin satışı. Ve ilk Amerikan Megatrends (AMI) BIOS 1986'da piyasaya sürüldü.

BIOS'a aşılanan yeni standartlar genellikle eksiksiz genel belgelere veya BIOS listelerine sahip değildir. Sonuç olarak, BIOS'a yapılan pek çok IBM dışı eklemeyle ilgili özel ayrıntıları öğrenmek, temel BIOS hizmetleriyle ilgili olduğu 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ç takımı lisansı aldı. Anakart üreticisi daha sonra bu BIOS'u kendi donanımına uyacak şekilde özelleştirdi. Bu nedenle, güncellenmiş BIOS'lar normalde doğrudan anakart üreticisinden alınır. Eski büyük BIOS satıcıları arasında American Megatrends (AMI), Insyde Software , Phoenix Technologies , Byosoft, Award Software ve Microid Research vardı. Microid Araştırma ve Ödül Yazılımı, 1998 yılında Phoenix Technologies tarafından satın alındı ; Phoenix daha sonra Ödül markasını aşamalı olarak kaldırdı. Yine 2007 yılında Phoenix tarafından satın alınan General Software , Intel işlemcilere dayalı gömülü sistemler için BIOS sattı.

Açık kaynak topluluğu aracılığıyla açık kaynaklı meslektaşı ile tescilli BIOS'larda ve gelecekteki enkarnasyonlar yerine birini geliştirmek için çaba artan libreboot , coreboot ve OpenBIOS / Open Firmware projeleri. AMD , bazı yonga setleri için ürün spesifikasyonları sağladı ve Google projeye sponsor oldu. Anakart üreticisi Tyan teklifler coreboot onların standart BIOS yanındaki Opteron anakartlardan hattı.

Güvenlik

Bir Amerikan Megatrendler bir "gösteren BIOS , Intel CPU içine Mikrokod yamaları yüklemek için başarısız bir girişimi sonrasında CPU uCode Yükleme Hatası"
Ayrılmış bir BIOS yongası

EEPROM ve Flash bellek yongaları, kullanıcı tarafından kolaylıkla güncellenebildikleri için avantajlıdır; Donanım üreticilerinin ürünlerini yükseltmek, uyumluluğu geliştirmek ve hataları ortadan kaldırmak için BIOS güncellemeleri yayınlaması adettendir . Ancak bu avantaj, hatalı yürütülen veya iptal edilen bir BIOS güncellemesinin bilgisayarı veya aygıtı kullanılamaz hale getirme riski taşıyordu. Bu durumlardan kaçınmak için daha yeni BIOS'lar bir "önyükleme bloğu" kullanır; BIOS'un önce çalışan ve ayrıca güncellenmesi gereken bir bölümü. Bu kod, kontrolü ona aktarmadan önce BIOS'un geri kalanının sağlam olup olmadığını ( karma sağlama toplamlarını veya diğer yöntemleri kullanarak) doğrular . Önyükleme bloğu ana BIOS'ta herhangi bir bozulma algılarsa, genellikle kullanıcıyı , kullanıcının BIOS'u yeniden yüklemeyi deneyebilmesi için çıkarılabilir ortamdan (disket, CD veya USB flash sürücü) önyükleme yaparak bir kurtarma işleminin başlatılması gerektiği konusunda uyarır . Bazı anakartlarda , BIOS bozulmalarından kurtulmak için bir yedek BIOS (bazen DualBIOS kartları olarak adlandırılır) bulunur.

İkisi tanıtım amaçlı olan en az beş bilinen BIOS saldırı virüsü vardır. Vahşi doğada ilk bulunan , Çinli kullanıcıları hedefleyen Mebromi idi .

İlk BIOS virüsü, BIOS yongalarını silmek yerine onlara bulaştıran BIOS Menenjiti idi. BIOS Menenjit, CIH gibi bir virüse kıyasla nispeten zararsızdır .

İkinci BIOS virüsü, uyumlu yonga setlerinde flash ROM BIOS içeriğini silebilen "Çernobil Virüsü" olarak da bilinen CIH idi. CIH 1998'in ortalarında ortaya çıktı ve Nisan 1999'da aktif hale geldi. Genellikle, virüslü bilgisayarlar artık önyükleme yapamıyor ve insanlar flash ROM IC'yi anakarttan çıkarıp yeniden programlamak zorunda kaldı. CIH, o zamanlar yaygın olan Intel i430TX anakart yonga setini hedef aldı ve o zamanlar da yaygın olan Windows 9x işletim sistemlerinin tüm programlara doğrudan donanım erişimine izin vermesi gerçeğinden yararlandı .

Modern sistemler, Intel i430TX yonga seti ve ayrıca diğer flash ROM IC türleri ile uyumlu olmayan çeşitli yonga setleri kullanıldığı için CIH'ye karşı savunmasız değildir. Ayrıca, yanlışlıkla üzerine yazmaya veya bir çökme durumunda bir yedek BIOS kullanabilecek çift ve dörtlü BIOS donanımlı sistemlere karşı korunan önyükleme blokları şeklinde yanlışlıkla BIOS yeniden yazmalarına karşı ekstra koruma vardır. Ayrıca, FreeBSD , Linux , macOS gibi tüm modern işletim sistemleri , Windows 2000 , Windows XP ve daha yenileri gibi Windows NT tabanlı Windows işletim sistemleri , kullanıcı modu programlarının doğrudan donanım erişimine izin vermez .

Sonuç olarak, 2008 itibariyle, CIH esasen zararsız hale geldi ve en kötü ihtimalle yürütülebilir dosyalara bulaşarak ve antivirüs yazılımını tetikleyerek sıkıntıya neden oldu. Bununla birlikte, diğer BIOS virüsleri de olasıdı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, ilk olarak bir istismar kullanmadan donanıma erişim sağlayabilir. İşletim sistemi OpenBSD, 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, çok daha zor bir çekirdek düzeyinde yararlanma veya makinenin yeniden başlatılmasını gerektiren bir saldırgandır.

İkinci BIOS virüsü, İngiltere merkezli Yeni Nesil Güvenlik Yazılımının baş güvenlik danışmanı John Heasman tarafından sunulan bir teknikti. 2006'da Black Hat Güvenlik Konferansı'nda, flash bellekte depolanan normal ACPI işlevlerinin yerini alan kötü niyetli prosedürleri kullanarak ayrıcalıkların nasıl yükseltileceğini ve fiziksel belleğin nasıl okunacağını gösterdi .

Üçüncü BIOS virüsü, "Kalıcı BIOS enfeksiyonu" adı verilen bir teknikti. 2009'da Vancouver'daki CanSecWest Güvenlik Konferansı'nda ve Singapur'daki SyScan Güvenlik Konferansı'nda yayınlandı. Core Security Technologies'den araştırmacılar Anibal Sacco ve Alfredo Ortega, BIOS'taki dekompresyon rutinlerine kötü amaçlı kodun nasıl ekleneceğini göstererek, işletim sistemi başlatılmadan önce bile PC'nin neredeyse tam kontrolüne izin verdi. Kavram kanıtı, BIOS uygulamasındaki bir kusurdan yararlanmaz, yalnızca normal BIOS güncelleme prosedürlerini içerir. Bu nedenle, makineye fiziksel erişim veya kullanıcının root olması gerekir. Bu gereksinimlere rağmen Ortega, kendisinin ve Sacco'nun keşfinin derin etkilerinin altını çizdi: "Tam çalışan bir rootkit'i bırakmak için bir sürücüye yama yapabiliriz . Hatta antivirüsü kaldırabilecek veya devre dışı bırakabilecek küçük bir kodumuz bile var."

Mebromi, iki Çinli şirkete ait AwardBIOS , Microsoft Windows ve antivirüs yazılımına sahip bilgisayarları hedefleyen bir truva atıdır : Rising Antivirus ve Jiangmin KV Antivirus. Mebromi, Ana önyükleme kaydına bulaşan bir kök kullanıcı takımı kurar .

Aralık 2013'te 60 Minutes ile yaptığı röportajda , ABD Ulusal Güvenlik Ajansı Bilgi Güvencesi Direktörü Deborah Plunkett, NSA'nın yabancı bir ulus devletin ABD finansal sistemini hedef alan olası bir BIOS saldırısını ortaya çıkardığını ve engellediğini iddia etti. Program, bunun bir Çin komplosu olduğunu iddia eden isimsiz kaynaklara atıfta bulundu. Ancak The Guardian , The Atlantic , Wired ve The Register'daki takip eden makaleler NSA'nın iddialarını yalanladı.

Daha yeni Intel platformlarında Intel Boot Guard (IBG) teknolojisi etkindir, bu teknoloji başlangıçta BIOS dijital imzasını kontrol eder ve IBG ortak anahtarı anakart PCH'sine kaynaştırılır . Son kullanıcılar bu işlevi devre dışı bırakamaz.

Alternatifler ve ardıllar

Eski PC BIOS'u, birçok yeni makinede daha karmaşık Birleşik Genişletilebilir Ürün Yazılımı Arabirimi (UEFI) ile değiştirildi. UEFI, eski BIOS'un çalışma zamanı arabiriminin yerini alan bir özelliktir. Başlangıçta Intel Itanium mimarisi için yazılan UEFI, artık x86 , x86-64 ve ARM mimarisi platformları için kullanılabilir; Spesifikasyon geliştirme , bir endüstri Özel İlgi Grubu olan Unified EFI Forum tarafından yürütülmektedir . EFI önyükleme yalnızca desteklenen olmuştur Microsoft Windows destekleyen sürümleri GPT , Linux çekirdek 2.6.1 ve üstü, ve MacOS üzerinde Intel tabanlı Mac'ler . 2014 itibariyle, yeni PC donanımı ağırlıklı olarak UEFI bellenimi ile birlikte gelir. 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 değişimi olarak tartışmalı hale getirir . Ayrıca, Windows 11 , önyükleme yapmak için UEFI gerektirir.

X86 dünyasında "Eski BIOS" işlevselliği için diğer alternatifler şunlardır coreboot ve libreboot .

Bazı sunucular ve iş istasyonları , Forth programlama diline dayalı, platformdan bağımsız bir Açık Ürün Yazılımı (IEEE-1275) kullanır ; x86 tabanlı OLPC XO-1 ile birlikte Sun'ın SPARC bilgisayarlarına, IBM'in RS/6000 serisine ve CHRP anakartları gibi diğer PowerPC sistemlerine dahildir .

En az 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 desteklemez ve "Eski mod bu sistemde desteklenmiyor" yazdırır. 2017'de Intel, 2020 yılına kadar eski BIOS desteğini kaldıracağını duyurdu. 2019'dan beri, yeni Intel platformu OEM bilgisayarları artık eski seçeneği desteklememektedir.

Ayrıca bakınız

Notlar

Referanslar

daha fazla okuma

Dış bağlantılar