Ar kada nors susimąstėte, kodėl jūsų kompiuteris yra būtent toks ir veikia (ar neveikia) būtent taip, o ne kitaip? Kodėl 2 GHz procesorius kartais yra spartesnis už 3 GHz? Kodėl „Apple“ kompiuterio programos netinka „IBM PC“?
Į šiuos klausimus turėtų padėti atsakyti mūsų pradedama pažintinių straipsnių serija, kurią sąlygiškai būtų galima pavadinti „Pažink kompiuterį“.
Norint veiksmingai naudotis kompiuteriu, reikia žinoti, kaip jis veikia. Neturint supratimo, kaip įrenginys atlieka jam skirtas užduotis, galima sulaukti visai ne tokio rezultato, kokio tikimasi.
Kompiuterio darbą lemia jo architektūra, kurios pagrindas – pagrindinis procesorius. Nuo jo priklauso kompiuterio sparta ir programų darbas. Procesorius ir sąsajų tipas turi įtakos kompiuterio įrangai. Nuo to, kaip ši įranga yra suderinta ir kokia aparatinė programinė įranga (firmware) joje veikia, priklauso programų, kurias pavyks sužadinti kompiuteryje, pasirinkimas.
Kompiuterių liko nedaug
Asmeninių kompiuterių eros pradžioje buvo sukurta daugybė skirtingų kompiuterių architektūrų. Tačiau daugelis jų paseno (Apple II, Atari ST), dėl kompanijų vadybos klaidų išnyko ar jų buvo atsisakyta (IBM PS/2, Amiga, Silicon Graphics, BeOS BeBox). Kitos buvo dirbtinai „numarintos“ dėl komercinės politikos (Alpha, Apple PowerPC).
Šiuo metu didesnę rinkos dalį užima vadinamoji IBM PC architektūra („x86“ platforma), likusius keletą procentų – „Apple“, „Sun Sparc Station“, „Pegasos Power PC“, „Acorn“ ir dar pora kompiuterių tipų. Reikia pripažinti, kad dabartinius kompiuterius ir prieš 25 metus dienos šviesą išvydusį IBM PC jau mažai kas sieja. Liko tik bendras „x86“ instrukcijų rinkinys, kuriuo remiasi ir šiuolaikiniai „Apple“ kompiuteriai, bei keletas senų architektūrinių apribojimų.
Ketvirčio amžiaus palikimas
„x86“ atsirado kartu su „Intel“ procesoriais 8086, 80186, 80286 ir t. t. Visi jie yra suderinami su senesniems modeliams pritaikytomis programomis. Tai paranku vartotojams, tačiau nepatogu naujų procesorių kūrėjams, mat šiuolaikiniuose procesoriuose reikia suderinti dabartines ir prieš 25 metus sukurtas technologijas.
Iš pradžių „x86“ procesoriai rėmėsi išsamių instrukcijų (Complete/Complex Instruction Set Computer – CISC) rinkiniu. Kiekviena CISC instrukcija pati rūpinasi duomenų įkrova, jų apdorojimu (kartais – keliomis operacijomis) ir rezultatų pateikimu. Universalių instrukcijų programos užima mažiau atmintinės (anksčiau tai buvo labai aktualu), tačiau jos vykdomos lėtai, todėl jau nuo „Pentium II“ laikų „x86“ procesoriuose buvo pradėtas naudoti RISC (Reduced Instruction Set Computer) branduolys, sudėtingas CISC instrukcijas skaidantis į greitai vykdomas RISC tipo komandas. Visiškai atsisakyti CISC, o tuo pačiu ir jau esamų programų gamintojai nesiryžo, tačiau kitose rinkose RISC procesoriai yra labai paplitę.
Nuo instrukcijų rinkinio priklauso OS bei programų pasirinkimas. Dėl šios priežasties naujos „x86“ platformos programos gali neveikti senesniuose „x86“ kompiuteriuose. Pavyzdžiui, „Adobe Premiere Pro“ neveiks kompiuteriuose, kurių procesoriai neturi SSE instrukcijų rinkinio, pasirodžiusio tik „Pentium III“ ar „AMD AthlonXP“ procesoriuose.
BIOS
Kita svarbi kompiuterio architektūros dalis – aparatūros programinė įranga (firmware), kitaip dar vadinama BIOS (Basic Input Output System). Tai pirmoji programa, sužadinama įjungus kompiuterį. Ji parengia įrenginį darbui ir pateikia visai kompiuterių šeimai vienodą pagrindinių funkcijų rinkinį, kuriuo naudojasi, pavyzdžiui, OS kūrėjai. Jie žino, kad, neatsižvelgiant į kompiuterį, OS įkrova bus atliekama BIOS sistemai sužadinus 0x19 pertrauktį. Įkrauta OS kompiuterį paprastai valdo savarankiškai, nesinaudodama BIOS.
Senąją kompiuterių BIOS pamažu turėtų pakeisti moderni EFI (Extensible Firmware Interface) sistema, leidžianti efektyviau ir lanksčiau valdyti kompiuterio įkrovą. Ši sistema jau rengiama naujuosiuose „Apple“ kompiuteriuose, tačiau 32 bitų „Windows“ sistemų kol kas dar negali įkrauti EFI. Beje, kompiuterio įkrovos metu spaudžiant „Delete“ ar kitą klavišą, sužadinama programa nėra BIOS. Tai tik dalies jos nuostatų keitimo programa, kurią galima įkrauti iš diskelio ar CD disko.
Bendra kalba su kompiuteriu
Bet kuri programa – tai bitų seka, nurodanti, ką reikia daryti kompiuteriui. Pavyzdžiui, „x86“ šeimos procesoriui 10110000 01100001 bitų seka (šešioliktainiu formatu 0xB061) reiškia įkrauti skaičių 97 į procesoriaus registrą al. Kadangi žmonėms tokia kalba nepatogi, buvo sukurti transliatoriai, formuojantys mašininių komandų seką. Transliatoriai ir pati programavimo „kalba“ yra vadinami asembleriu. Šia kalba minėta komanda rašoma taip:
mov al, 061h
Didesnę mašininio kodo dalį generuoja aukšto lygio programavimo kalbų kompiliatoriai (C/C++, Pascal, Fortran), o asemblerio kalba rašomos tik pavienės funkcijos. Dažniausiai jos prireikia kuriant įrangos tvarkykles ar OS branduolį.
Branduolys
OS branduolys (kernel) – paskutinis komponentas, nusakantis kompiuterio architektūrą. Jis rodo vykdomų programų vidinę struktūrą. „Linux“ sistemoje veikia tik „ELF“ ir „a.out“, o „Windows“ sistemoje – tik „EXE“ ir „COM“ tipo programos. Norint sužadinti kitų OS programas, reikia pasitelkti papildomas priemones, imituojančias kitos OS darbą. Bene geriausias to pavyzdys – „WINE“ aplinka, leidžianti sužadinti „Windows“ programas „Linux“, BSD ir OS X sistemose.
„x86“ architektūra dažnai yra vadinama „Wintel“, pabrėžiant tai, kad joje dominuoja „Intel“ procesorių architektūra ir „Windows“ OS. Tačiau dabar toks pavadinimas nevisiškai tikslus, mat AMD yra užėmusi didelę rinkos dalį, be to, 64 bitų instrukcijas „x86“ procesoriams sukūrė būtent AMD. „Intel“ liko tik jas nukopijuoti ir pavadinti EMT-64.
IBM PC – konstruktorius dideliems vaikams
Prieš 25 metus IBM inžinieriams buvo suteikta iki tol korporacijoje negirdėta laisvė: pigiam biuro kompiuteriui kurti jie galėjo naudoti kitų gamintojų komponentus. Taigi buvo sukurta universali kompiuterių platforma, kuriai įrangą galėjo kurti ir gaminti kas panorėjęs.
Atvira modulinė architektūra tapo viena iš šių kompiuterių paplitimo priežasčių ir viena didžiausių šios architektūros problemų šaltinių. Kadangi gamintojų griežtai nekontroliuoja, jų gaminiai kartais neatitinka visų standartų. Sudėjus tokią įrangą į kompiuterį, jis pradeda veikti nestabiliai. Tiesa, tokios problemos būdingos pigesnei įrangai, tačiau ir žinomų gamintojų įranga nėra ideali.
„Microsoft“ jau suskubo tvarkyti šią netvarką. Kompanija paskelbė, kad 64 bitų „Vista“ operacinė sistema leis įdiegti tik korporacijos skaitmeniniu parašu pasirašytas tvarkykles. Parašui gauti įrangą ir jos tvarkykles reikės sertifikuoti korporacijos laboratorijose. Ar tai padės ne „Windows“ sistemų vartotojams, sunku pasakyti.
Iki šiol nesirūpinę asmeninių kompiuterių rinkoje mažumą sudarančiomis „Linux“ ir BSD sistemomis, gamintojai dar labiau stengsis įrangą kurti ne pagal visuotinius standartus, o taip, kad ji veiktų „Windows“ sistemose.