BIOS

S Vikipedije, slobodne enciklopedije
BIOS čip

BIOS (engl. Basic Input-Output System) je upravljački softver, ugrađen u lični računar i to je prvi softver koji se izvršava prilikom „podizanja“ računara.

Osnovna svrha BIOS-a je da inicijalizuje i testira ispravnost hardvera, i učita takozvani „boot loader“ ili operativni sistem iz stalne memorije. BIOS dodatno obezbeđuje apstraktni sloj hardveru, koji na dosledan način omogućava da aplikativni programi i operativni sistem komuniciraju sa tastaturom, ekranom i ostalim perifernim uređajima. Varijacije sistemskog hardvera prikriva BIOS, od programa koji preko BIOS-a direktno pristupaju hardveru. MS-DOS (PC DOS), koji je bio dominantan operativni sistem od početka 80-ih do sredine 90-ih, se zasnivao na BIOS servisima za disk, tastaturu i funkcije ispisa teksta. Microsoft Windows, LINUX i ostali operativni sistemi koji su radili u zaštićenom režimu su ignorisali apstraktni sloj koji je obezbeđivao BIOS i nisu ga koristili nakon učitavanja, umesto toga su direktno pristupali hardveru.

Sadržaj BIOS-a je potpuno definisan u trenutku isporuke matične ploče. Međutim, postoje komponente računara koje su promenljive, pa nije moguće unapred definisati podatke o njima. Vrsta i veličina RAM memorije, tip i veličina hard diska, mesto na kom se nalazi operativni sistem su sigurno podaci koji su bitni za startovanje računara, a ovi podaci ne mogu biti unapred poznati.

Na svakoj matičnoj ploči se nalazi Flash ROM čip, koji se naziva i sistemski ROM čip jer sadrži kod koji omogućava procesoru da ostvari komunikaciju sa najbitnijim komponentama personalnog računara kao što su: flopi jedinica, hard disk, optički uređaji, monitor, USB portovi, tastatura i ostale komponente na matičnoj ploči. Skup svih instrukcija koje se nalaze na Flash ROM čipu se naziva BIOS. On je specijalno dizajniran da radi sa svakim modelom računara posebno, povezujući se sa raznim uređajima koji čine komplementarni čipset sistema.

Kako je firmver opšti naziv za programe koji se čuvaju na ROM čipu, neki autori BIOS nazivaju i ovim imenom. Veličina Flash ROM memorije na savremenim računarima je oko 2 MB, mada se za BIOS koristi oko 64 kB.

Flash memorija obezbeđuje da saržaj može biti promenjen bez fizičkog skidanja čipa sa matične ploče. Ovo omogućava BIOS softveru da se lako nadograđuje dodavanjem novih funkcija ili jednostavno ispravljanjem starih grešaka, ali isto tako može učiniti računar ranjivim na BIOS viruse.

BIOS tehnologija je u tranzitnom procesu od 2010. godine.

Istorija[uredi | uredi izvor]

Termin BIOS je osmislio Geri Kildal i prvi put se pojavljuje 1975. godine u CP/M računarskim sistemima, opisujući mašinu, odnosno specifičan deo CP/M sistema koji se učitava prilikom “podizanja” i koji se povezuje direktno sa hardverom. (CP/M obično ima jednostavan “boot loader” u svom ROM-u.)

Verzije MS-DOSa, PC DOSa ili DR-DOSa sadrže fajl koji se naziva "IO.SYS", "IBMBIO.COM", "IBMBIO.SYS", ili "DRBIOS.SYS"; ovaj fajl je poznat i kao “DOS BIOS” i sadrži niži nivo hardverske specifikacije, dela operativnog sistema.

Sa uvođenjem PS/2 uređaja, IBM je podelio sistemski BIOS na dva dela: sa realnim režimom i sa zaštićenim režimom. Realni režim je određen da obezbedi kompatibilnost-unazad sa postojećim operativnim sistemima kao što je DOS, stoga i naziv “CBIOS” (engl. Compatibility BIOS), s druge strane “ABIOS” (engl. Advanced BIOS) obezbeđuje novi interfes, posebno pogodan za operativne sisteme sa multitaskingom, kao što je OS/2.[1]

BIOS korisnički interfejs[uredi | uredi izvor]

BIOS korisnički interfejs

BIOS prvobitnog IBM PC XT računara nije imao interaktivni korisnički interfejs. Poruke ili kodovi o greškama su prikazivani na ekranu, ili su generisani nizovi zvukova koji signaliziraju greške (kada POST nije dostigao tačku uspešnog pokretanja video-displej adaptera). Opcije na PC-ju i XT-u su podešene pomoću prekidača i kratkospojnika (džampera - engl. Jumper) na matičnoj ploči i perifernim karticama. Sa početkom sredine ‘90-ih postalo je uobičajeno da BIOS sadrži korisničke interfejse (engl. BIOS configuration utility) ili (engl. BIOS setup utility), kojima se pristupa pri podizanju sistema, odredjenom sekvencom ključa. Ovaj program omogućuje korisniku da podesi opcije konfiguracije sistema ranije podešenog tipa pomoću DIP prekidača[2], kroz interaktivni sistem menija, kontolisanog tastaturom. U prelaznom periodu, IBM-ovi kompatibilni PC-jevi, uključujući IBM AT, su držali postavke konfiguracije u RAM-u sa baterijom i koristili su bootabilni program za konfiguraciju na disku, ne u ROM-u, da podesi opcije konfiguracije koje se nalaze u ovoj memoriji. Disk je bio dostavljan sa računarom, pa je u slučaju njegovog gubitka bilo nemoguće promeniti sistemska podešavanja.

U savremenim Wintel kompatibilnim računarima, korisnik može konfigurisati hardver koristeći tastaturu i video displej. Isto tako, kada se pojavi greška prilikom podizanja, savremeni BIOS uglavnom prikazuje nenapadne poruke o grešci, često predstavljene kao pop-ap boksevi i predlaže da korisnik pristupi BIOS setap jedinici ili da ignoriše grešku i da nastavi dalje, ako je to izvodljivo. Umesto RAM-a koji koristi bateriju, moderne Wintel mašine mogu skladištiti BIOS podešavanja konfiguracije u Flash ROM-u, čak možda u istom ROM-u koji sadrži i sam BIOS.

Zbog toga što je jedina vidljiva funkcija BIOS-a prosečnom korisniku, koji nije upoznat sa tehnikama programiranja hardvera i apstraktnim slojevima uređaja, on često meša BIOS korisnički interfejs sa pravim BIOS-em.

Operacije[uredi | uredi izvor]

CPU reset[uredi | uredi izvor]

Nakon što se sistem uključi, ili se pritisne reset taster (takozvano “hladno podizanje” – engl. cold boot) pokreće se POST (eng. Power-On Self-Test), odnosno kompletno testiranje hardvera. Ako su bili zadržani tasteri Ctrl+Alt+Delete (takozvano “toplo podizanje” – engl. warm boot) posebno obeležena vrednost se čuva u stalnoj BIOS memoriji (memoriji kojoj nije potrebno napajanje – engl. non-volatile) pre resetovanja procesora, a nakon resetovanja BIOS startap kod detektuje tu vrednost i ne pokreće POST. Ovo čuva vreme koje bi, u suprotnom, bilo izgubljeno na detektovanje i testiranje celokupne memorije. “Non-volatile” RAM memorija je i sat realnog vremena (engl. real-time clock - RTC).

POST ( Power-On Self-Test)[uredi | uredi izvor]

POST

Flash ROM sadrži BIOS ali i poseban program koji se zove POST. On proverava, identifikuje i analizira sistemske komponente kao što su CPU, RAM, kontroleri i ostali delovi čipseta, video kartice, tastatura, hard disk, optički disk i ostali hardver, prilikom svakog uključenja računara. U stvari, POST program samo šalje zahtev komponentama računara da same pokrenu ugrađene procedure testiranja, a o rezultatima testiranja se obaveštava korisnik zvučnim signalom ili prikazom na monitoru.

Prilikom pritiska na taster za uključivanje računara, aktivira se jedinica za napajanje čiji je zadatak da obezbedi potrebne jednosmerne struje. U prelaznom periodu, koji može da traje pola sekunde ili duže, izlazni naponi mogu da imaju različite vrednosti od onih koji se zahtevaju za pravilan rad računara. Kako bi se izbegla mogućnost greške, stepen za napajanje testira izlazne napone i kada oni postignu željeni nivo, generiše se signal PG (engl. Power Good) koji se nekad naziva i PWR-OK (engl. Power OK). Čipset, tek nakon registrovanja signala PG, generiše signal “system reset” koji pokreće postupak inicijalizovanja procesora.

Nakon toga, procesor preko adresne magistrale pristupa fiksnoj memorijskoj adresi koja se naziva “jump address”. Ova adresa je ista za svaki računar, nije se menjala od pojave personalnih računara i u stvari predstavlja adresu u Flash ROM memoriji na kojoj je zapisana prva linija koda POST programa. Na taj način se pokreće testiranje hardvera (POST). Ukoliko se testiranje uspešno završi, izvršava se BIOS. Glavni BIOS učitava BIOS video kartice i informacije o video kartici prikazuje na monitoru. Potom se učitavaju BIOS rutine ostalih komponenti (hard disk, CD,...). Proverava se usklađenost podataka u CMOS memoriji sa stvarnim stanjem i prikazuju sumarni podaci o sistemu.

Sledeći zadatak je da se na osnovu podataka zapisanih u CMOS memoriji odredi lokacija operativnig sistema (hard disk, CD,...) i da se pokrene učitavanje operativnog sistema.

Raniji IBM-ovi PC-jevi su imali malo poznatu naviku POST-a da izvrše "download" programa u RAM preko porta tastature. Ako je download bio koliko-toliko uspešan, BIOS će to potvrditi i pokrenuti program. Ova funkcija je prvenstveno bila namenjena za fabričko testiranje, i za eksperimentalne svrhe.

Boot proces[uredi | uredi izvor]

Odmah nakon POST-a, BIOS poziva INT 19h[3] da započne proces podizanja (engl. Boot Processing). Post-boot programi koji se učitaju, takođe mogu pozvati INT 19h da restartuje sistem ali se pritom mora paziti da se deaktiviraju ometajući i ostali asinhroni procesi hardvera koji mogu smetati BIOS rebooting procesu, inače će sistem pući prilikom ponovnog podizanja.

Kada je INT 19h pozvan, BIOS pokušava da pronađe “Boot Loader” program koji se nalazi na memorijskom uređaju označenom kao “Boot Device”, kao što je hard disk, flopi disk, CD ili DVD. On učitava i izvršava prvi "boot" softver koji nađe, dajući mu kontrolu nad računarom. Ovaj proces je poznat kao “Booting” što je skraćenica od "Bootstrapping".

BIOS određuje kandidata "boot" uređaja koristeći informacije koje je prikupio POST i informacije o konfiguraciji iz EEPROM-a ili CMOS RAM-a. Prateći prioritet "boot" sekvence, BIOS proverava svaki uređaj da bi video da li je on pogodan za "boot" (podizanje). Za disk jedinicu ili za uređaj koji logički predstavlja disk jedinicu, kao što je USB Flash, da bi odradio ovu proveru, BIOS zahteva učitavanje prvog sektora diska (engl. Boot Sector) u RAM. Ako sektor ne može da se pročita (zbog nestalog ili neformatiranog diska, ili zbog problema hardvera), BIOS proglašava taj uređaj neodgovarajućim za podizanje i nastavlja da proverava sledeći uređaj. Ako je sektor uspešno pročitan, neke verzije BIOS-a će proveriti i znak podizanja sektora 0x55 0xAA poslednjih dva bajta sektora, pre nego što prihvate "boot" sektor i proglase taj uređaj pogodnim za podizanje (engl. Bootable Device).

BIOS nastavlja da testira svaki uređaj pojedinačno sve dok ne nađe onaj koji zadovoljava zahteve, dok u međuvremenu prosleđuje kontrolu učitanom sektoru sa “jump” instrukcijom do svog prvog bajta adrese 0x0000:0x7c00. (Ova lokacija je jedan od razloga zašto IBM PC zahteva najmanje 32 kB RAM-a da bi sistem bio pokrenut sa diska; sa 31 kB ili manje, bilo bi nemoguće izvršiti podizanje sa bilo kog diska, koristeći BIOS "boot" protokol). Većina BIOS-a, ali ne svi, učitavaju broj "boot" uređaja u CPU registar pre prebacivanja (engl. Jumping-a ) na prvi bajt učitanog "boot" sektora.

Boot prioriteti[uredi | uredi izvor]

Prioriteti u BIOS meniju

Procesom podizanja (engl. Boot) može da upravlja sam korisnik, podešavajući da se podizanje izvrši sa jednog medija umesto sa drugog, u slučaju da postoje dva ili više butabilnih medija. Na primer većina računara ima hard disk sa koga se izvršava podizanje sistema, ali obično postoji još neki periferni medijski uređaj koji je većeg "boot" prioriteta, tako da korisnik može da podesi da se podizanje izvršava sa promenljivog diska, običnim ubacivanjem, bez potrebe skidanja hard diska ili menjanja njegovog sadržaja.

U većini savremenih BIOS-a, redosled "boot" prioriteta svih potencijalnih "boot" uređaja se može slobodno menjati od strane korisnika preko BIOS korisničkog interfejsa.

Konfiguracija[uredi | uredi izvor]

Interfejs za podešavanja (engl. Setup Utility)[uredi | uredi izvor]

Istorijski gledano BIOS u IBM PC-ju i XT-u nije imao ugrađen korisnički interfejs. BIOS verzije ranijih računara (XT klase) nisu bili softverski podesivi; umesto toga korisnik je podešavao opcije pomoću DIP prekidača na matičnoj ploči. Kasnije su računari, uključujući sve IBM kompatibilne sa 80286 procesorima, imali BIOS memoriju koja se napajala iz male baterije (CMOS RAM čip) i koja je čuvala BIOSS podešavanja. Ova podešavanja, kao što su veličina memorije i parametri hard diska se jedino mogu menjati pokretanjem konfiguracijskog programa sa diska, ne iz RAM-a.

Kasnije je 386. klasa računara počela sa integrisanjem BIOS podešavanja (engl. BIOS setup utility) u sam ROM uz BIOS kod; ovi računari su uglavnom podizali BIOS podešavanja ako je pritisnut određeni taster ili kombinacija tastera, u suprotnom bi se pokrenuo BIOS POST.

Moderna BIOS podešavanja (engl. BIOS setup utility) imaju korisnički interfejs (engl. User Interface – UI) zasnovan na menijima kome se pristupalo pritiskom na određeno dugme na tastaturi kada se PC pokrene. Obično je prilikom samog pokretanja prikazano na ekranu o kom dugmetu je reč, na primer: “Press F1 to enter CMOS setup”. U BIOS podešavanjima korisnik može da:

  • Konfiguriše hardver
  • Podesi sistemski sat
  • Aktivira ili deaktivira sistemske komponente
  • Odabere koji su uređaji potencijalni "boot" uređaji, i po u kom će se redu pokretati
  • Postavi razne lozinke, kao što je lozinka za pristup BIOS korisničkom interfejsu, lozinka za podizanje sistema ili lozinku za pristup hard disku

Reprogramiranje[uredi | uredi izvor]

Pojedine verzije BIOS-a dozvoljavaju takozvani “Overkloking”, proces u kome se procesor prilagođava bržem taktu od onog koji je proizvođač preporučio za zagarantovane performanse, što ima za cilj ubrzavanje rada računara.

Međutim, "overclocking" može ozbiljno da ugrozi pouzdanost celog računarskog sistema u računarima sa nedovoljnim hlađenjem i da generalno skrati vek trajanja komponenti. Ovim se može prouzrokovati, ako se nepravilno obavi, i da se komponente pregreju toliko brzo da dođe do njihovog mehaničkog trajnog uništenja.

Hardver[uredi | uredi izvor]

Prvobitni IBM PC BIOS je bio skladišten u čipu ROM memorije, programiranoj od strane proizvođača, koji se nalazio na matičnoj ploči u odgovarajućem ležištu. Korisnik je mogao da fizički promeni ROM, ali nije mogao da izmeni njen sadržaj. Da bi omogućili nadogradnju, u računarima je počela upotreba re-programabilnih memorijskih komponenti kao što je EPROM (engl. Еrasable PROM) i kasnije FLASH. FLASH BIOS čipovi su postali uobičajeni oko ’95. godine zato što su EEPROM čipovi daleko jeftiniji i lakši za programiranje od standardnih EPROM čipova. FLASH čipovi se programiraju i reprogramiraju direktno u kolu, dok je EPROM potrebno skinuti sa matične ploče da bi se re-programirao. BIOS verzije su nadograđivane da bi bile u koraku sa novim verzijama hardvera i da bi se ispravile greške prethodnih verzija.

Veličina BIOS-a i kapacitet memorije za njegovo skladištenja (ROM, EPROM, i ostale) se povećavao tokom vremena i dodavane su nove karakteristike kodu. BIOS verzije sada postoje sa 16 MB memorije, dok je, poređenja radi, prvobitni IBM PC BIOS bio smešten u 8 kB ROM memorije. Pojedine moderne matične ploče imaju čak i veća memomijska kola, tipa NAND FLASH, koja su u mogućnosti da skladište i ceo kompaktni operativni sistem, kao što su pojedini oblici LINUX-a

Ažuriranje BIOS-a[uredi | uredi izvor]

Upotreba Flash ROM memorije za BIOS omogućava ažuriranje odnosno reprogramiranje ove memorije. Proces reprogramiranja je, ipak, delikatan posao jer ukoliko se ne obavi kako treba može u potpunosti da onesposobi računar. Ukoliko je BIOS narušen, računar nije moguće pokrenuti.

Prilikom reprogramiranja potrebno je:

  • Proveriti da li je nova verzija odgovarajuća za odabranu matičnu ploču
  • Obezbediti da ne dođe do prekida napajanja u toku programiranja
  • Obezbediti da ne dođe do prekida programiranja iz bilo kog razloga

Takođe je važno znati da neki zlonamerni programi (virusi) koriste mogućnost reprogramiranja da bi uništili ili izmenili BIOS.[4]

Kako bi se izbegle moguće posledice, na nekim matičnim pločama postoje kratkospojnici koje je potrebno prespojiti da bi se dozvolio upis u Flash ROM. Pored toga, na nekim matičnim pločama se nalazi više Flash ROM čipova (engl. dual/quad system) sa identičnim sadržajem tako da ukoliko primarni čip otkaže, neki od preostalih preuzima njegovu ulogu.

Napomene[uredi | uredi izvor]

  • CP/M je operativni sistem za masovno tržište kreiran za Intel 8080/85, zasnovan na mikroračunarima po Geriju Kildalu sa iz kompanije Digital Research, Inc
  • Gary Arlen Kildall (Maj 19, 1942 – Jul 11, 1994) bio je Američki naučnik u računarskoj oblasti. Osmislio je operativni sistem PC/M i prvi je video svestranu primenu mikroprocesora u računarstvu.
  • Puno ime International Business Machines Corporation Personal Computer Disk Operating System - IBM PC DOS je operativni sistem namennjen za IBM-ove lične računare, proizveden i prodavan od IBM-a od 1980. do 2000. godine.
  • MS-DOS - engl. Microsoft Disk Operating System - operativni sistem kreiran od strane Microsofta za lične računare
  • PC DOS - Operativni sistem iz porodice DOS sistema napisan za IBM lične računare.
  • COS-MOS was an RCA trademark, which forced other manufacturers to find another name — CMOS

Reference[uredi | uredi izvor]

  1. ^ Phoenix Technologies, Ltd. (1989) [1987]. System BIOS for IBM PC/XT/AT Computers and Compatibles — The Complete Guide to ROM-Based System Software. Phoenix Technical Reference Series (1st izd.). Addison Wesley Publishing Company, Inc. ISBN 978-0-201-51806-1. 
  2. ^ DIP prekidač
  3. ^ Bootstrap Loader
  4. ^ Crouncher 2004, str. 464.

Literatura[uredi | uredi izvor]

  • Phoenix Technologies, Ltd. (1989) [1987]. System BIOS for IBM PC/XT/AT Computers and Compatibles — The Complete Guide to ROM-Based System Software. Phoenix Technical Reference Series (1st izd.). Addison Wesley Publishing Company, Inc. ISBN 978-0-201-51806-1. 
  • Crouncher, Phil (2004). The BIOS Companion: The book that doesn't come with your motherboard!. Electrocution technical publishers. ISBN 978-0-470-22941-5. 

Spoljašnje veze[uredi | uredi izvor]