Az operációs rendszerek csoportosítása

Az operációs rendszerek feladatainál láthattuk, hogy számos feladata lehet ezeknek a programoknak, aligha meglepő hát, hogy operációs rendszerből nem csak egy létezik. (Igazság szerint a különböző operációs rendszerek számát valószínűleg csak becsülni lehet: az ismert (jelenleg is használt, vagy mára elavult, vagy csak fejlesztői célokkal készült, stb.) operációs rendszerek száma is legalább százas nagyságrendű.) Az operációs rendszerek csoportosítására számos szempont képzelhető el. A következőkben néhány fontosabb szempontot mutatunk be - az adott szempontnak megfelelő konkrét operációs rendszer feltüntetésével együtt. Természetesen ez a csoportosítás nem feltétlen teljes és (mint ahogy az néhány rendszer esetében látható is) az egyes rendszerek besorolása egy-egy csoportba (az esetek többségében) nem kizárólagos.

Operációs rendszer-kategóriák (példák)

1)      Felhasználói felület szerint:

a)      karakteres (UNIX, DOS)

b)      grafikus (Apple Mac OS)

2)      Felhasználók száma szerint

a)      egy-felhasználós (BeOS )

b)      több-felhasználós (Microsoft Windows XP)

i)                    hálózati (Novell Netware)

3)      Folyamatkezelés szerint

a)      kötegelt (Microsoft MS DOS)

b)      multiprogramozott

i)                    valós idejű (BeOS, QNX)

ii)                   időosztásos (Multics, UNIX)

4)      Hardver-architektúrák szerint

a)      számítógép-ketegóriák

i)                    mainframe (SUN Solaris)

ii)                   szerver (Microsoft Windows 2000, Linux)

iii)                 személyi számítógép, munkaállomás (IBM OS/2 Warp)

iv)                 mikroszámítógép (Commodore 64)

v)                  kézi számítógép (PalmOS)

b)      processzor-architektúrák szerint

i)                    CISC alapú (Linux, Microsoft Windows)

ii)                   RISC alapú (Hewlett-Packard HP-UX)

c)      sínrendszer alapján

i)                    16 bites (IBM PC DOS)

ii)                   32 bites (Microsoft Windows XP)

iii)                 64 bites (Macintosh OS X)

5)      Jogállás szerint

a)      szerzői jogvédelem alá tartozó (SCO OpenServer)

b)      nyílt forráskódú (Linux)

6)      „Történelmi" kategóriák

a)      korai operációs rendszerek

b)      UNIX-alapú rendszerek

i)                    UNIX verziók, POSIX-kompatibilis rendszerek

ii)                   Linux disztribúciók

c)      Windows rendszerek

Az operációs rendszerek csoportosításának legtriviálisabb, ugyanakkor legkevésbé egyértelmű szempontokat meghatározó módszere lehet a felhasználói preferenciák szerint történő csoportosítás. Ide sorolhatók mindazok a szempontok, amelyek szerint a felhasználók döntenek az általuk használt operációs rendszer mellett: felület, kezelhetőség, megbízhatóság, gazdaságosság, támogatás, gyártó, stb. Ezen kategóriák közül csak az operációs rendszerek felhasználói felület szerinti csoportosítását ismertetjük, eszerint megkülönböztetünk karakteres és grafikus felületű rendszereket.

Karakteres felületű (CLI: Command Line Interface) rendszerek esetében a parancskiadás eszköze a billentyűzet, a számítógép számára az elvégzendő utasításokat egy általában zárt nyelvi struktúra (utasítás-készlet) kifejezéseinek a begépelésével lehet megadni.

A grafikus felületű (GUI: Graphics User Interface) rendszerek esetében a felhasználói műveletek kiválasztása valamilyen előre definiált grafikus szimbólumkészlet és egy pozícionáló eszköz együttes használatával lehetséges. Az előbbi csoportba tartozó operációs rendszerek szokás még parancsvezérelt, az utóbbiakat pedig eseményvezérelt rendszereknek is nevezni - ez esetben nem a felhasználói felület külalakja, hanem a felhasználói munkavégzést támogató eszközrendszer képezi a csoportosítás alapját. (A parancsvezérelt elnevezés egyértelmű, az eseményvezérelt elnevezés magyarázata pedig az, hogy a grafikus felületű rendszerekben a grafikus környezet változásait (a kijelölő eszköz - pl. az egér - elmozdítását vagy aktiválását (kattintás), vagy egy grafikus szimbólum kiválasztását) eseményeknek nevezik.)

Lényegesen egzaktabb kategorizálásra ad lehetőséget az operációs rendszert futtató számítógép hardver architektúrája alapján történő csoportosítás. Ilyen értelemben beszélhetünk a különböző számítógép-kategóriák (mainframe kategóriájú számítógépek, szerver számítógépek, személyi számítógépek (munkaállomások), kézi számítógépek, stb.) jellemző operációs rendszereiről, vagy a számítógép hardver felépítésének támogatásán alapuló kategorizálásról (processzor-architektúra szerint (CISC vagy RISC alapú rendszerek) egy- vagy többprocesszoros rendszerek, 16-32-64 bites rendszerek, stb.).

Az operációs rendszerek csoportosításának következő eszköze lehet az egyes rendszerek működésbeli sajátossága is. Ilyen értelemben vizsgálhatjuk az operációs rendszerben futó programok számát és együttműködésének módját, a rendszer által kiszolgálható felhasználók számát és az erőforrások megosztásának lehetőségeit, stb.

Az egy időben futtatható alkalmazások száma szerint megkülönböztetünk egyfolyamatos (mono-módú vagy kötegelt) és többfolyamatos (multitasking) rendszereket - a hangsúly ebben az esetben az egyidejűségen van: a kötegelt rendszerekben egy program futásának ideje alatt újabb program indítására nincs lehetőség, míg a multiprogramozott rendszerekben egyszerre (egymással párhuzamosan) több program is futtatható. (Azonban nem szabad elfeledkezni arról, hogy a Neumann-architektúrájú számítógépeken a műveletvégzés minden esetben szigorúan soros, így a multiprogramozott operációs rendszerek esetében is csak virtuális párhuzamosságról beszélhetünk - azaz a felhasználó számára úgy érzékelhető, mintha programjai egyszerre működnének, valójában azonban csak az egyes programrészek végrehajtása közötti gyors váltásokról van szó.)

A felhasználók száma szerint egy- és több-felhasználós rendszereket különböztethetünk meg aszerint, hogy az operációs rendszer rendelkezik-e olyan azonosítási szolgáltatással, amely lehetővé teszi a számítógéppel dolgozó felhasználók (és munkájuk) megkülönböztetését. Az egy-felhasználós („single user") rendszerekben semmilyen azonosítási rendszer nem működik, így nem eldönthető, hogy az adott számítógép egyes erőforrásaihoz ki és milyen jogokkal férhet hozzá. Egy több-felhasználós („multi-user") operációs rendszer esetében minden felhasználói tevékenység kiegészül az elvégző felhasználó azonosítójával és ilyen módon (megfelelő biztonsági rendszer kialakításával) az ugyanazon a számítógépen dolgozó felhasználók tevékenysége teljesen elkülöníthető egymástól. (A több-felhasználós rendszerek esetében célszerű további különbséget tenni aszerint, hogy a különböző felhasználók egyidejűleg kezelhetik-e a számítógépet - amennyiben igen, akkor hálózati operációs rendszerről (NOS: Networking Operating System) beszélünk.)

Az operációs rendszerek működésbeli jellemzői alapján történő csoportosításának következő szempontja az operációs rendszer válaszideje lehet. A több-folyamatos rendszereknél említettük, hogy csupán virtuális párhuzamosságról van szó, amely mögött alapvetően kétféle technikai megoldás képzelhető el. Az időosztásos elven működő („time sharing") operációs rendszerek esetében a rendszerben futó folyamatok között szétosztásra kerül a rendszer teljes működési ideje: minden folyamat kap egy „időszeletet", ennyi ideig használhatja a processzort („futhat"), majd át kell adnia a következő folyamat számára, és ez a tevékenység-sorozat mindaddig ismétlődik, míg minden program be nem fejeződik. A valósidejű (RTOS: Real Time OS) rendszerek esetében az egyes programok azonnal végrehajtódnak, így a futásuk eredménye („a válasz") is azonnal (vagy legalábbis emberi léptékkel mérve reális időn - legfeljebb néhány másodperc - belül) rendelkezésre áll. (Természetesen egy valós idejű rendszerben sincs lehetőség két tevékenység egyszerre történő végrehajtására, így amennyiben két program akar ugyanazon időpillanatban elindulni, az egyiknek meg kell várni a másik befejeződését - ebből viszont az is következik, hogy az ilyen rendszerek hatékony működésének feltétele a kis méretű (és ebből következően gyorsan végrehajtódó) programok alkalmazása. A valós idejű rendszereket jellemzően olyan helyzetekben alkalmaznak (többnyire felügyeleti szerepben) ahol az idő szerepe kritikus, mint pl. egészségügy, atomenergia, stb.)