next up previous contents
Next: A STREAMS elonyei Up: Bevezetés Previous: Bevezetés

Alapfogalmak

A STREAMS egy UNIX kernelbe beépített mechanizmus, mely lehetové tesz egy kétirányú kapcsolat kiépítését a felhasználói programok és a karakteres, adatkommunikációs STREAMS device driverek között. Eredetileg a UNIX terminálok vezérlésére alakították ki, de késobb alkalmazhatónak bizonyult hálózati protokollok implementálására is. (A Release 4 UNIX már STREAMS terminál-drivereket használ.) A STREAMS device driverek adatokat közvetíthetnek a felhasználói programok és a hardware berendezések között, de vannak speciális driverek is, például a multiplexer driverek, amelyek legtöbbször nem állnak a hardware perifériákkal közvetlen kapcsolatban.
Az adatáramlás a driver és a felhasználói program között egyszerre két irányban folyhat: lefelé a felhasználótól a driverig (ezt nevezik write oldalnak) és felfelé a drivertol a felhasználó irányába (ezt nevezik read oldalnak is). Mindkét irányú adatáramot ( streamet) egymás mögé rakott sorok ( queuek) segítségével implementálják. Egy stream a STREAMS device drivertol indul és a stream-fejben végzodik. A stream-fej tartja a kapcsolatot a felhasználó és a stream alsóbb részei között. Minden egyes STREAMS driverre vonatkozó open rendszerhívás egy új stream-fejet hoz létre (amennyiben a driver ezt támogatja).
A driver és a felhasználói program közé beilleszthetünk ún. STREAMS modulokat, amik se nem driverek, se nem stream-fejek (vagyis egy STREAMS modult nem szokás például open rendszerhívással megnyitni). Feladatuk a rajtuk keresztülmeno adatok valamilyen módosítása - például protokollinformációkkal kiegészíthetik azokat, vagy az egyes modulok a nekik szóló információkat kivehetik a sorból. Ha a STREAMS drivert megnyitjuk, akkor létrejön a stream-fej. A modulokat ezután csak közvetlenül a stream-fej alá rakhatjuk az ioctl rendszerhívással (a megfelelo paraméterek beállításával).
A STREAMS driverek teljesen a kernel területén helyezkednek el, ezért ezek írásakor különösen kell vigyázni, nehogy valami hibát csináljunk!



Csizmazia Balazs
Tue Apr 2 00:06:27 MET DST 1996