A számítógépen futó programokat két csoportba szokás osztani: a rendszerprogramok csoportjára, és a felhasználói programok csoportjára. A rendszerprogramok közül a legalapvetobb az operációs rendszer. Ennek feladata egyrészt az, hogy eltakarja a bonyolult hardver elemek programozását a programozó elol, másrészt pedig ez a szoftver felelos a hardver eroforrásoknak a programok közti elosztásáért, az egyes hardver eroforrások védelméért.
Az operációs rendszerek az utóbbi évtizedekben nagyon nagy fejlodésen mentek keresztül. Az elso generációs számítógépekben még nem használtak operációs rendszereket. Megjelenésük a második generációhoz kötodik: a bonyolultabb hardver rendszerekre egyre bonyolultabb operációs rendszereket építettek, majd megjelent a multiprogramozás, a mai operációs rendszerek egy lapveto fontosságú tulajdonsága. A multiprogramozásnak két változata van: a többtaszkos (multitasking) illetve a többfelhasználós (multi user) rendszer (ez a két forma nem zárja ki egymást). A többfelhasználós rendszerekben egy központi egységen osztozik több felhasználó, de a központi egység nagy sebessége miatt minden felhasználó úgy érzi, hogy egy saját gépe van, amin dolgozik. A többtaszkos rendszer annyit tud, hogy ott egy felhasználó egyszerre több feladatot indíthat el, és az elindított feladatok egyszerre (párhuzamosan) fognak végrehajtódni.
Az operációs rendszerekkel kapcsolatban a jelenlegi kutatások a hálózati operációs rendszerek körében történnek. Ezekben a rendszerekben a számítógépek valamilyen dróttal össze vannak kapcsolva, és a felhasználó az operációs rendszer segítségével ezeken a drótokon keresztül adatokat vihet át az egyik géprol a másikra; az egyik géprol (mondjuk Magyarországról) bejelentkezhet egy másik számítógépre (például Kanadába), és Magyarországról úgy dolgozhat, mintha közvetlenül a kanadai számítógép egy képernyojén dolgozna. Az, hogy az általa begépelt karakterek illetve a végeredmények milyen módon jutnak el tole Kanadába (és onnan vissza Magyarországra) rejtve marad elole. A kommunikáció történhet akár telefonvonalakon, akár muholdon keresztül - a lényeg az, hogy az információ eljusson az egyik helyrol a másikra. Az operációs rendszer feladata ilyenkor az, hogy a megbízhatatlan, rossz minoségu telefonvonalakon egy megbízható kommunikációs csatornát biztosítson a felhasználóknak, amiben az egyik géprol a másikra küldött adatok "nem kallódnak el", és az adatokat a fogadó állomás az elküldés sorrendjében kapja meg.
Eddig már számtalan sok operációs rendszer készült, mindegyik más céllal, más problémakör megoldására. Ma a legelterjedtebb ilyen rendszerek (többek közt): az OS/360, a CP/CMS, a VAX VMS, a UNIX és az MS-DOS. Már elég ido volt ahhoz, hogy a legfontosabb absztrakciós szintek és szolgáltatástípusok kialakuljanak. Ezek a szolgáltatások a hagyományos operációs rendszerekben két fo témakörbe sorolhatók: folyamatokkal (processzekkel) kapcsolatos, és a fajlokkal kapcsolatos absztrakciós eszközök. A továbbiakban ezekrol lesz szó kicsit részletesebben.