Van egy olyan mondás, miszerint „Szoftver nélkül a számítógép csak egy össze-vissza gubancolt ócskavas-halom”. Bárki, aki dolgozott már számítógéppel – bármilyen rövid ideig is – tisztában van ennek a mondásnak az igazságával. A legtöbb ember számára a „szoftver (SW: Software)” szó alkalmazói (application) vagy másszóval felhasználói (user) szoftver-t jelent, azaz olyan programokat, amelyek segítségével tervezhetünk egy űrhajót, kiszámíthatjuk az adónkat, mozijegyet vásárolhatunk vagy játszhatunk. Ez azonban az igazságnak csak egy része.
Képzeljük el, hogy odaültetnek bennünket egy olyan számítógép elé, amely tényleg csak a puszta hardverből (HW: Hardware) áll, semmilyen szoftver nem található rajta: Hogyan lennénk képesek az említett feladatokat megoldani? De még az olyan egyszerű dolgok is gondolkodást igényelnének, mint két szám összeadása, nem is beszélve a szorzásról, osztásról.
Szerencsére azonban a helyzet a valóságban – legalábbis a számítógép történetének nagyobbik felében – ennél sokkal jobb, mert a szoftvernek van egy általában nem mindig látott, de mindig használt rétege (layer), amely a felhasználó (itt ne csak emberi felhasználókra gondoljunk, a rendszer szempontjából felhasználó lehet valamilyen gép vagy akár egy másik számítógép is) és a hardver között helyezkedik el, olyan környezetet teremtve, amely lehetővé teszi az alkalmazó számára a számítógép kényelmes és hatékony használatát. Ezt hívják operációs rendszernek (operating system).
Az operációs rendszer fogalmát nemigen tudjuk pontosan meghatározni, különböző irányzatok más-más „szigorúsággal” állnak a kérdéshez. Abban mindenki egyetért, hogy az operációs rendszer része a mag (kernel), vagyis az a program, amely feltétlenül szükséges a gép működéséhez és amely közvetlenül vezérli azt. Régebben ezt úgy is meg lehetett közelíteni, hogy a kernel az a program, amely állandóan fut. A dinamikus kernel megjelenése óta azonban ez utóbbi definíció már nem állja meg teljesen a helyét. A másik véglet szerint az operációs rendszerbe tartoznak azok a – tulajdonképpen felhasználói – rendszerprogramok (system program) is, amelyek a gép általános felhasználását segítik, például a fordítók, szövegszerkesztők, parancsértelmező.
E könyv a nézetek különbözőségét figyelembe véve megpróbál inkább az operációs rendszer két szintjéről beszélni. A belső, szűkebben értelmezett szint a kernelt takarja, míg egy tágabb szint alatt a köznapi értelemben vett operációs rendszert értjük – azaz mindazokat a programokat, amelyeket egy felhasználó a gép vásárlásakor megkap. Lényeges különbség a kettő között, hogy a kernel el van rejtve, „védve” van (hardvervédelem) a felhasználó elől, azaz ehhez a felhasználó nem fér hozzá, nem tudja módosítani és – elrontani. Bizonyos rendszerprogramokat célszerű, ha elérhet a felhasználó, mert így azokat úgy tudja alakítani, hogy használatuk számára a legkényelmesebb legyen. A hardver- és szoftverrétegek egy lehetséges egymásra épülését az 1.1. ábra mutatja.
Az alkalmazói programok tehát a felhasználó problémáit oldják meg, míg a rendszerprogramok a számítógép saját tevékenységét irányítják. Ezen belül az operációs rendszer felügyeli az összes erőforrást (resource), továbbá biztosítja azt a környezetet, amelyben az alkalmazói programok futhatnak. Vezérli mind a programok, mind az erőforrások működését, valamint meggátolja a számítógép hibás felhasználását.
A hardver hatékony használatának biztosítása tekintetében az operációs rendszer feladatát – erőforrás kezelés – „alulról”, a hardver oldaláról fogalmaztuk meg (ezt hívják „bottom-up view”-nak). Erőforrás alatt mind hardver-, mind pedig szoftvererőforrásokat értünk (CPU-idő, memória, perifériák, állományok, adatok stb.), melyeket a felhasználók céljaik elérése érdekében használni szeretnének. A sok, sokszor ütköző vagy ellentmondó igény között az operációs rendszernek kell döntenie és az igényelt erőforrásokat felhasználóhoz rendelnie úgy, hogy hatékony, biztonságos és igazságos működést biztosítson.
A kényelmes használat biztosítása tekintetében – megkönnyíti a programozást – „felülről”, a felhasználó oldaláról („top-down view”) közelítünk az operációs rendszerhez. Az operációs rendszer önmagában nem végez (kívülről nézve) hasznos tevékenységet, de olyan környezetet biztosít, amelyben a felhasználói programok képesek hasznos munka végzésére. Ezt úgy is tekinthetjük, hogy az operációs rendszer egy olyan réteget képez a hardver fölött, amely elrejti annak körülményességét és bonyolultságát a programozó elől, és kibővíti a számítógép hardver szolgáltatásait. Így a felhasználó egy sokkal kellemesebb tulajdonságokkal rendelkező virtuális gépet (virtual machine, extended machine) lát.
Manapság a felhasználóbarát (user friendly) virtuális gép, illetve környezet biztosítása egyre növekvő fontosságú alapkövetelmény minden operációs rendszerrel szemben. Hosszú időt igényelt azonban, amíg eljutottunk ide. A következő fejezetben ezt a történeti fejlődést tekintjük át röviden, hangsúlyozva azt, ahogyan a hardver- és szoftvertechnikai előrelépések kölcsönösen egymásra hatottak, kedvező lökést adva a továbbfejlődésnek.

Előző

Előző