Boštjan Resinovič
Ste si na vašem PCju že kdaj zaželili pognati kak Macov ali Unixov program? Morda vsaj igrico, če že ne kaj resnejšega? Vsekakor niste prvi, ki bi razmišljali o tem. Premagovanje ovir, ki jih vsiljujejo različne platforme, je že dalj časa na repertoarju posameznih proizvajalcev računalniške opreme. Ker pri dosedanji operacijskih sistemih ni bilo ravno v navadi, da bi že s svojo zasnovo podpirali izvajanje programov pisanih za druge platforme, se je bilo treba proti tej nadlogi boriti s strategijo "okoli riti v žep". Najbolj pogosto je to pomenilo pisanje zahtevnega softwarea za emulacijo, redkeje hardwaresko čaranje z dodatnimi procesorji in drugo nujno potrebno šaro. Šele v zadnjem času smo priča reševanja tega problema v sami srži, torej pri zasnovi operacijskega sistema. Pa kar lepo po vrsti.
Poganjanje programa pisanega za drug računalnik zahteva izvajanje ukazov, ki jih računalnik na katerem teče emulacija, ne razume. Tujo strojno kodo je zato potrebno brati ukaz po ukaz, vsakega od njih dekodirati in tako določiti kaj naj bi sploh naredil ter nazadnje izvesti ekvivalentnega. Torej ? Kje je problem? Ob dovolj hitrem procesorju ga na videz ne bi smelo biti, dejansko pa je in še prav zajeten povrh vsega. Računalnik za katerega je program pisan, je namreč precej drugače zgrajen, ukaze izvede z vgrajeno ožičeno (hard-wired) logiko ali tako, da požene mikroprogramirano rutino v okviru CPE. Pri emulaciji pa stvar poteka malo drugače. Drug računalnik - drug ukazni dekoder, registri in interna arhitektura. Emulirane ukaze je treba izvesti z eksterno kodo namesto z interno, mikroprogramirano. Rezultat je neprimerno daljše izvajanje programa, ki je občutno celo, kadar poteka emulacija na precej sposobnejšem procesorju.
HARDWARESKA REŠITEV
Ker je očitno, da je problem hardwareski, se ponuja kot najenostavnejša pot k izboljšavi časa izvajanja dopolnitev strojne opreme. Zadnji poskus te vrste v svetu osebnih računalnikov je Appleova razširitev Maca Quadra 610 na IBM kompatibilca z vgraditvijo dodatnega 486SX procesorja, BIOSa in podpore za VGA grafiko. Na ta način so pravzaprav stlačili dva računalnika v eno ohišje in omogočili paralelno izvajanje Macovih in DOS oziroma Windows aplikacij. Res da se cenovno bolj splača kupiti dva računalnika v enem kot pa vsakega posebej, vendar pa razvoj takega dvojčka ni poceni, prav tako kot tudi ne kopica dodatnih čipov, ki jih zahteva v primerjavi z manj ambicioznimi enojčki.
Za povsem drugačen pristop so se odločili pri IBMu, ko so svoj operacijski sistem OS/2 zasnovali tako, da podpira poleg lastnih tudi DOS / Windows aplikacije in tako nakazali pot o kateri sedaj razmišljajo že kar vsi proizvajalci.
NOVI TRENDI
Novost je torej sama zasnova operacijskega sistema, ki poleg lastne osebnosti (personality) podpira tudi osebnosti drugih platform. Morda se zdi, da gre v primeru OS/2-ja za nekakšno prevaro, saj teče na povsem enakem hardwareu kot DOS in torej tudi Windowsi. Kljub temu pa izpeljava projekta ni bila enostavna, kljub temu, da je IBM enostavno kupil Windows kodo pri Microsoftu. Poleg težav z upravljanjem pomnilnika je bilo treba rešiti tudi problem pojavljanja dveh vrst oken na istem ekranu.
Za vse novejše operacijske sisteme so značilni grafični uporabniški vmesniki (GUI, Graphic User Interface). Za manipulacijo oken, npr. odpiranje, zapiranje, premikanje, spreminjanje velikosti in podobno porabi procesor neprimerno več časa kot za samo izvajanje neke aplikacije. In prav tu se da precej pridobiti v primerjavi z emulacijo, tudi kakdar gre za operacijske sisteme, ki tečejo na povsem drugačni strojni opremi.
Prav vsi namreč za delo z grafiko kličejo svojo grafično knjižnico. Pri Appleu ocenjujejo, da Mac porabi celo 90 % časa za grafiko in le 10 % za sam "koristni" del aplikacij. Pri Windows programih požre grafika od 60 do 80 % procesorskega časa. Vse te operacije pa so standardne, zato za razliko od emulacije, pri njih ni potrebno imitirati vsakega ukaza v strojni kodi posebej. Neprimerno bolj elegantna, in seveda temu primerno hitrejša rešitev, je izvedba celotne grafične opreacije naenkrat. Operacijski sistem, ki podpira ustrezno osebnost ugotovi, da gre za klic GUIjevega APIja (Application Binary Interface) in , ne bodi len, pošlje identičen klic v svoj API, namesto, da bi se pričel truditi z emulacijo. Pogoj je, da vsebuje njegova grafična knjižnica vse rutine za delo z okni, ki so lastna drugemu operacijskemu sistemu. Ker pa je naš operacijski sistem "razcepljena osebnost", takšne rutine ima.
Prednosti napram emulaciji? Dejansko famozne. Ne le, da ni potrebno za posamezno operacijo, ki na tak ali drugačen način manipulira z oknom, emulirati več ukazov strojne kode, ampak je tako operacijo mogoče sprogramirati hardwareu vsakega računalnika primerno. Praktično to pomreni približevanje časov izvajanja enega in istega programa neodvisno od operacijskega sistema na katerem teče. Teoretično pa je mogoče doseči celo boljše rezultate. Če ima gostitelj hitrejši procesor ali pa bolj kakovostne grafične rutine, lahko prekosi računalnik za katerega je aplikacija namenjena, saj je kode namenjene za delo z grafičnim uporabniškim vmesnikom izjemno dosti. Da teorija ni zmeraj daleč od prakse, trdijo pri SunSelectu - njihov nova Windows osebnost Wabi (Windows Application Binary Interface) naj bi namreč zaradi visoke optimiziranosti grafičnih knjižnic po performansah na identičnem hardwareu prekašala Windowse same. Vsekakor vzpodbuda za Microsoft in druge firme, da se tudi same lotijo izboljšav in dosežejo hitrejše odzive ter dobra novica za uporabnike, ki lahko tako upravičeno pričakujejo, da bodo iz svojih računalnikov iztisnili več kot do sedaj.
OS/2, idejni začetnik uvajanja različnih osebnosti, še zmeraj podpira le DOS oziroma Windows aplikacije. Drugačne pa so napovedi za njegovega naslednika, Workplace OS. Že v osnovi podpira DOS, Windowse, OS/2 in Unix (AIX), najverjetnejša kandidatki za prihodnost pa sta Macova in Taligentova osebnost.
Tudi Windowsi NT so v tej smeri ambiciozno koncipirani. Nudijo namreč pet osebnosti : DOS, Windowse, 32 bitno verzijo Windowsov, OS/2 in Unix (Posix) na 80x86 procesorjih, na drugih (DEC Alpha, Mips R4000/R4400) pa je OS/2 izpadel. Omejitve sicer so : nekatere DOS in Windows aplikacije pod NTjem zaradi konfliktov pri prevzemanju nadzora nad hardwareom enostavno ne delajo; OS/2-jev grafični vmesnik (Presentation Manager) ni podprt, tudi programi v tekstovnem načinu tečejo le, če so pisani za OS/2 1.x; precej Unix softwarea zahteva ponovno kompilacijo.
V Unix svetu so, kot vse kaže najbolj agresivni pri Sunu, kjer so se z že omenjenim Wabi vmesnikom odločili zbližati Unix in Windowse. Zaenkrat je strategija takšna, da Wabi podpira le najbolj popularne Windows programe, kot so Lotus 1-2-3, Ami Pro, Word Perfect, Word, Excel, Quatro Pro, Paradox ... Opazni pa so tudi poskusi drugih proizvajalcev.
Seveda tudi pri Aplleu nočejo zaostati. Odločili pa so se za drugačno pot. Razvijajo namreč lasto Macovo osebnost za Unix, ki bo najprej tekla na PowerPCjih pod operacijskim sistemom PowerOpen. V prihodnosti pa imajo namen zagotoviti podporo še za druge delovne postaje z Unixove platforme, kar že nestrpno pričakujejo pri IBMu, Sunu, Hewlet Packardu in drugih proizvajalcih.
Trend je torej več kot očiten. Pričakujemo lahko operacijske sisteme , ki bodo tekli na različnih procesorjih in ponujali vrsto osebnosti za druge platforme. Emulacijam ter kompliciranim in dragim hardwareskim rešitvam je tako najverjetneje odklenkalo. Kljub porodnim težavam, ki se kažejo v večkrat kjar pretiranih omejitvah, je ideja o več osebnostih prodrla in se že uveljavlja v praksi. Vsi glavni proizvajalci operacijskih sistemov se tega še kako dobro zavedajo in mrzlično delajo na svojih implementacijah različnih sistemov. Ker si nobeden od njih ne sme privoščiti, da bi ga pri njegovem lastnem izdelku povozil kdo drug, bo posledica optimizacija do skrajne mere in to v okviru vseh platform.
Profitiramo torej uporabniki. Naj živijo "razcepjlene osebnosti"!
Nazaj na prejšnjo stran