KURZUS: Bevezetés a számítógépek használatába

MODUL: Informatikai alapismeretek

3. lecke: Operációs rendszerek

Cél: Ebben a leckében áttekintjük azokat az ismereteket, amelyeket az operációs rendszerekkel kapcsolatban szükséges ismerni ahhoz, hogy az Informatika I. és II. tárgy további feldolgozása "gördülékeny" lehessen. Ez a bemutatás viszonylag tömör, csak a legfontosabb elemekre összpontosít. Általános bevezetést követően megismerkedünk az operációs rendszerek feladataival (többek között: folyamatok kezelése, fájl- és mapparendszer menedzselése), áttekintjük azt a folyamatot, ahogy az operációs rendszer elindul, és bemutatunk néhány jelentősebb operációs rendszert is. Hasonlóan az előző leckéhez, egyes részek itt is olvasmányos jellegűek (főként a konkrét operációs rendszerek fejlődéstörténete - a rendszerek kiemelt fontossága miatt azonban nem akartuk elhagyni a leíró részt).

Szintén az előző lecke felépítését követve, az elméleti ismeretek alkalmazását most is egy gyakorló feladatblokkal segítjük. Ez a feladatcsoport a Total Commander program segítségével végigvezeti a hallgatót mindazokon a tevékenységeken, amelyekre a további informatikai tanulmányok során szükség lesz.

Követelmények: Ön akkor sajátította el megfelelően a tananyagot, ha

  • összefoglalóan ismertetni tudja az operációs rendszer főbb jellemzőit (virtuális környezet, kezelési biztonság, erőforrások kezelése);
  • képes felsorolni, ill. listából kiválasztani az operációs rendszer feladatait;
  • saját szavaival képes ismertetni az operációs rendszer elindulásának a folyamatát;
  • saját szavaival el tudja mondani a megismert fájlrendszerek főbb jellemzőit;
  • végre tudja hajtani a Total Commander program segítségével a leckében bemutatott fájl- és könyvtárműveleteket;
  • saját szavaival be tudja mutatni a megismert operációs rendszereket (főbb jellemzők).

Időszükséglet: A tananyag elsajátításához (a feladatok megoldásával együtt) hozzávetőlegesen 3 órára lesz szüksége.

Kulcsfogalmak

  • Virtuális gép.
  • Az operációs rendszer feladatai.
  • BIOS és kernel, felhasználói interfészek.
  • Fájl- és mapparendszer (aktuális könyvtár, szülőkönyvtár, elérési utak stb.), műveletek (mappa létrehozása, fájlok másolása, mozgatása stb.).
  • Commander programok.
  • Windows, UNIX és Linux operációs rendszerek.
  • Az operációs rendszerek általános tulajdonságai.
Az operációs rendszerekről általában

Képzeljük el egy pillanatra, hogy az újonnan megkapott számítógépünkhöz nincs szoftveres támogatás, azaz a hardvert teljes egészében nekünk kell működésre bírni! Megfelelő hardver ismeretek birtokában a gép normális működési folyamatának szinte bármely részét kiemelhetjük, és elemezhetjük, hogy a háttérben milyen történések zajlanak - ezeket kellene megvalósítanunk. Sorra végigmehetünk az indítás, hardver eszközök ellenőrzése stb. folyamatokon, de nagyon hamar adódik az a nyilvánvaló következtetés, hogy egészen egyszerű tevékenységek megvalósítása is rendkívül komoly befektetett munkát kívánna. (Nyomtatásnál például döntenünk kellene arról, hogy miféle elektronikus jeleket küldjünk a lézernyomtató kábelére ahhoz, hogy az épp a nekünk tetsző mintázatot égesse a papírra.)

Szükség van tehát olyan programrendszerre, amely ezt a munkát leveszi a vállunkról.

Meghatározás: Az operációs rendszer (Operation System, OS) olyan alapvető fontosságú programcsomag, ami a hardvert közvetlenül kezeli, a felhasználó alkalmazásainak pedig egységes környezetet biztosít.

Idézze fel, hogy milyen korábbi definíciót tanultunk az operációs rendszerről az előző leckében! Mit gondol, problémát okoz az, hogy a két megfogalmazás között különbség van?

Az operációs rendszer használata a mai számítógépeken - lényegében - megkerülhetetlen. Ez a program a gép bekapcsolásakor elindul, és a kikapcsolás (pontosabban a szabályos leállítás) előtt ez az utolsó program, ami más programok leállítása után utolsóként a processzort is leállítja.

Az operációs rendszer a hardver eszközök kezelése közben elrejti azok - felhasználó számára érdektelen - részleteit. A felhasználó - egy magasabb absztrakciós szinten - a valódi hardver eszközök helyett egy egységes, kényelmes virtuális környezetet lát és ezt is kezeli. Ezen tulajdonsága alapján az operációs rendszert egy virtuális gépnek tekinthetjük. Az eszközök és a fájlok (lásd később) könnyen megjegyezhető, szimbolikus nevekkel kezelhetők, a programok kényelmesen, a technikai részletek ismerete nélkül indíthatók, leállíthatók, és sok-sok magas szintű parancs segíti a munkát (például: adatok másolására).

A belső működési részletek elrejtésével és a virtuális felület alkalmas kialakításával a kezelési biztonság is jelentősen fokozható. Itt nemcsak az adatok biztonságára gondolunk, hanem a gép védelmére is. Míg például egy autót ügyetlen vezetője könnyen tönkre tud tenni, addig egy számítógép (a fizikai megsemmisítés esetét kivéve) gyakorlatilag elronthatatlan. A felhasználó legfeljebb csak a saját adatait tudja elveszíteni, hiszen ahhoz - és tipikusan csak ahhoz - biztosít az operációs rendszer teljes felügyeleti jogot számára.

Ha az operációs rendszer feladatát "alulról felfelé", azaz a gép fizikai alkotórészeinek, valamint a különböző feladatok megoldására szolgáló programok ismeretében közelítjük meg, akkor azt mondhatjuk, hogy az operációs rendszer célja, hogy egy összetett rendszer részeit menedzselje. Ezek a részek a hardver és szoftver erőforrások.

Meghatározás: A számítógép erőforrásainak azokat a szolgáltatásokat nevezzük, amelyeket az operációs rendszer használatakor a felhasználó igénybe vehet.

Egy számítógépen több tucatnyi hardver és még több szoftver eszközt kell kezelni, és ezen erőforrásokat megfelelően elosztani a gépen futó, erőforrásokért versengő programok között. A megfelelő elosztás bonyolult feladat, mert sok, gyakran egymásnak feszülő szempontot kell figyelembe venni: például legyen igazságos és optimális. Optimális, de kinek a szempontjai alapján?

Az operációs rendszer felügyeli az erőforrásokat (Rendszerfigyelő)
1. ábra

Sorolja fel azokat az erőforrásokat, amelyeket az ábra szerint az operációs rendszer felügyel!

Mint a történeti részben már bemutattuk, a számítógépek hőskorában (1950-es évek) még nem léteztek operációs rendszerek. Ekkor az operátorok (gépkezelők) végezték a mai operációs rendszerek alapfeladatainak jelentős részét. Az operátor segítségével volt lehetséges egy megírt program futtatása, neki kellett odaadni a kódot, a kor technikai színvonalának megfelelő adathordozón (például lyukkártyán). Az operátor döntött arról, hogy a programot mikor lehet és kell futtatni, a futáshoz szükséges erőforrásokat is ő biztosította a program számára. A program futása után az eredmények olvashatóvá tételében (nyomtatásában) is segédkezett. Ilyen munkastílusban természetesen elsősorban nagyobb méretű számítási feladatok elvégzését volt érdemes a számítógépre bízni. Az operációs rendszerek elterjedésével az operátori munka - legalábbis eredeti formájában - nagyrészt megszűnt.

Az alfejezet lezárásaként végül felsoroljuk azokat a fontos feladatokat (funkciókat), amelyeket az operációs rendszerek elvégeznek. Ezek a következők:

  • Folyamatkezelés,
  • Fájl- és könyvtárkezelés,
  • Memóriakezelés,
  • I/O kezelés,
  • Hálózatkezelés.

Az utolsó kivételével mindegyikkel részletesen foglalkozunk a továbbiakban.

Az operációs rendszer indulása, a BIOS és a kernel

Mint már tanultuk, bizonyos programok bele vannak építve a számítógép hardver elemeibe. Ezek az apró programok képesek többek között arra, hogy önmaguk épségét leellenőrizzék és felismerjék a saját környezetüket. A legfontosabb ilyen program az alaplaphoz és a videokártyához tartozó BIOS (Basic Input-Output System). A BIOS néhány MB méretű és a mai számítógépek zömében flashmemórián található. Ezen program alapvető feladata, hogy kapcsolatot biztosítson a hardver és szoftver részek között.

A gép bekapcsolásakor, illetve némi késleltetéssel újraindítás után is a BIOS lép működésbe, és különböző gyorstesztekkel feltérképezi a rendelkezésre álló hardverelemeket. Az egyes elemektől kapott válaszok alapján azt is igyekszik eldönteni, hogy azok működőképesek-e (csak alapvető ellenőrzésről van szó). Ha ennek során komolyabb problémát talál, akkor a kiírt hibaüzenet mellett különböző ütemű csipogásokkal jelzi az egyes hibákat. Egyes esetekben csak a csipogás segíthet a hiba azonosításában, hiszen ebben a fázisban még az sem biztos, hogy a videokártya elindult, így előfordulhat, hogy a képernyőn nem látunk semmit.

A BIOS-ba belépve a hardverkörnyezet beállítása egy egyszerű felületen némileg befolyásolható. Például letilthatók egyes eszközök (DVD, alaplapi videokártya), cserélgethető a háttértárak hivatkozási sorrendje, beállítható a pontos idő stb. A BIOS szerepe azonban ezzel együtt is egyre csökken (ez egy régi, több évtizedes technológia terméke), mert ezek a beállítások (egy-két kivételtől eltekintve) már az operációs rendszerből is elvégezhetők.

Tipikus BIOS képernyő
2. ábra

Ha lehetősége van rá, lépjen be a gépe BIOS-ába és tekintse meg, hogy milyen beállítási lehetőségek vannak. Indokolatlanul semmit ne módosítson!

Ha a BIOS túljut a hardverek gyorstesztjén, akkor az előre beállított helyeken elkezdi keresni az operációs rendszert. Ha ténylegesen indíthatót talál, akkor azt elkezdi betölteni. Maga az operációs rendszer a rendszermag (kernel) betöltésével indul, ez a rendszer legalapvetőbb szolgáltatásait tartalmazó modul (a hardver erőforrások, többek között a processzor, a memória kezeléséért felel).

Az operációs rendszer indulása
3. ábra

A kernel inicializálja az eszközöket, majd elindítja a különböző speciális feladatokat elvégző, később folyamatosan futó programokat. Jellemzően több tucatnyi olyan program elindul ekkor, amelyek mindegyike egy-egy konkrét funkcióval (szolgáltatással) bővíti az operációs rendszer képességeit (például: nyomtatási sorok kezelése, különböző hálózati és biztonsági funkciók).

A szolgáltatások "felállásával" az operációs rendszer gyakorlatilag működőképessé vált. Az automatizált működés mellett még a felhasználó utasítására is vár (aki esetleg névvel és jelszóval kell, hogy azonosítsa magát - belépés). A felhasználó bejelentkezése után akár még további programok is elindulhatnak (jellemzően apró segédprogramok, például képernyőre kitett óra, időjárás-előrejelző piktogram).

Windows operációs rendszerében állítsa be, hogy bejelentkezés után automatikusan induljon a számológép (Calc). Ki- és bejelentkezéssel ellenőrizze, hogy beállítás valóban helyes!

Felhasználói interfészek

Egy átlagos felhasználó számára a számítógéppel végzett munka legnagyobbrészt két fő aktivitásból áll: vagy direkt módon az operációs rendszer szolgáltatásait veszi igénybe, vagy valamilyen felhasználói programot futtat és használ. Ezek a programok viszont szintén az operációs rendszerre épülnek rá (4. ábra), a felhasználó tehát végeredményben mindkét esetben az operációs rendszert (is) használja.

Az operációs rendszer a hardver és a felhasználói programok között
4. ábra

Kijelenthetjük tehát, hogy az operációs rendszer kiemelten fontos részét képezi a felhasználói felület (UI, User Interface, interfész) hiszen ezen keresztül zajlik a kommunikáció az ember és az operációs rendszer között. A felhasználói interfész kidolgozottsága (főként: kényelem) döntően meghatározza a felhasználóban az egész operációs rendszerről kialakult képet is, hiszen az átlagos géphasználó keveset tud az OS memória- és folyamatkezeléséről, biztonsági kérdéseiről és egyéb fontos részletekről - a felület alapján viszont képes ítéletet mondani.

Természetesen a szoftvergyártók is felismerték ezt, ezért szebbnél szebb, egyre praktikusabb és egyre kevesebb szakismerettel kezelhető felületekkel igyekeznek felhasználóikat elbűvölni (és persze újabbakat toborozni). Régebben parancsokat kellett tudni precízen begépelni, később egyre több mindent tettek egérrel irányíthatóvá, manapság pedig az a fő cél (érintőképernyő esetén), hogy természetes ujjmozdulatokkal, rámutatással lehessen irányítani az operációs rendszert.

A használat jellege alapján három alapvető felhasználói felülettípust különböztetünk meg.

A parancssori interfész (Command Line Interface, CLI) a legrégebbi és a technikailag legegyszerűbb típus. Jellemzői a fix méretű monitorkarakterek és a billentyűzet kizárólagos használata. A kommunikáció parancsok begépeléséből és az üzenetek elolvasásából áll. A kisebb erőforrásigény miatt a régebbi rendszereknek csak parancssori felületük volt, ezért manapság többen hajlamosak a karakteres felületet lebecsülni és korszerűtlennek tekinteni. Ez azonban tévedés (és tipikusan a nem kellően hozzáértő felhasználókra jellemző)! A karakteres felület minden korszerű operációs rendszernek is szerves része, mert sokszor jóval hatékonyabb és mindenképpen teljesebb, mint a szebb, grafikus felület!

Illusztrációs példa: amíg a grafikus fájlkezelőkben néhány állítási lehetőség van (pl. ikonos vagy listás megjelenítés, 3-4 rendezési szempont), addig a Linux fájllistázásra való ls parancsának kb. 60 olyan kapcsolója van, amivel a megjelenítést szabályozhatjuk.

Munka parancssori felületen
5. ábra

Az irodalomjegyzékben szereplő megfelelő hivatkozások és internetes források alapján tájékozódjon, hogy az ábrán kiadott Linux parancsok hogyan működnek és milyen paraméterekkel (argumentumokkal), ill. kapcsolókkal hívhatók. Ezek után ismertesse, hogy a munkafolyamat (session) végrehajtása során mi történt, mi az eredmény!

Hangsúlyozottan nem a törzsanyag részeként (hanem csak érdekességként) bemutatunk egy olyan feladatot is, ami meggyőzően szemlélteti, hogy a parancssori felület nagy segítségére lehet a hozzáértőknek.

Tegyük fel, hogy le kell töltenünk az internetről egy tömörített (zip) fájlt, amiben egy szövegfájl található, és ennek első háromszáz sorát email-ben el kell küldenünk valakinek. Ezt bárki hamar elvégezheti, de a feladat nagyon unalmassá válik, ha kiderül, hogy ezentúl óránként kell ezt elvégezni a munkahelyünkön. A kedves Olvasó hogyan oldaná ezt meg automatizáltan?

Linux alatt a következő parancs gépelhető be:

while true; do wget -q -O - http://itt.hu/ez.zip | gunzip | head -300 | 
mail ide@cim.hu; sleep 3600; done

Ezzel a feladatot megoldottuk, parancsunk óránként el fogja küldeni email-ben az újra és újra letöltött fájl megfelelő részét. Nyilván sokkal kényelmesebb és hibamentesebb ezt a parancsot egyetlen alkalommal kigondolni és kiadni, mint óránként, hónapokon keresztül ugyanazt a feladatot alkalmanként 2-3 perc alatt "kézzel", webböngésző, tömörítő, szövegszerkesztő és levelező program segítségével végrehajtani.

A szöveges interfész (Text User Interface, TUI, "álgrafikus interfész") olyan fejlettebb felület, amely a képernyőt már nemcsak írógép-stílusban használja, hanem karakteres felületen ablakos technikára emlékeztető képernyőképeket valósít meg. Ezek az interfészek önálló OS-felületként nem terjedtek el, tipikusan a meglévő operációs rendszerekhez készítettek ilyen felületű felhasználói segédprogramokat.

Fénykorukat a PC-s környezetben, a DOS parancssori operációs rendszer idején élték. Első igazán sikeres képviselőjük a Norton Commander volt, ami aztán egész lavinát indított el a fájlkezelő- és mindenféle segédprogramok fejlesztésében. Ezek a programok közvetlenül az operációs rendszer funkcióit bővítették és tették kényelmesebbé, időnként csupán egy jó ötleten alapuló megjelenítési móddal, máskor az OS egyes funkcióinak átvételével.

A kései utód, a Total Commander, a mi Informatika tananyagunkban is fontos szerepet kap, mivel ez a javasolt (elvárt) univerzális eszköz a fájl- és könyvtárkezeléssel kapcsolatos feladatok megoldásához.

A felhasználói felületek harmadik típusát, a grafikus interfészt (Graphic User Interface, GUI) különösebben senkinek nem kell bemutatni, hiszen a modern számítógépeken és mobil eszközökön ez az alapértelmezett. Az ilyen rendszerekben grafikus képernyőfelületen jelennek meg az információk, nem különülnek el élesen a grafikus és szöveges elemek. A felhasználó a billentyűzet mellett különböző mutatóeszközöket, leggyakrabban egeret használhat, vagy épp a saját ujjait érintőképernyők esetében. A grafikus felület jellemző, közismert velejárói az ablakok, ikonok, gombok, gördítősávok és a rövid üzeneteket megjelenítő, időnként felpattanó "buborékok".

Fontos világosan látni azt, hogy a grafikus felület a komoly hardveres erőforrásigény miatt régebben nem lett volna kifejleszthető, még akkor sem, hogyha valaki akkortájt (mondjuk az 1970-es években) a most elfogadott elveket pontosan meg tudta volna fogalmazni.

A mostani erős hardver képességek megléte mellett viszont már szabadon szárnyalhat a fejlesztők fantáziája: sok-sok új ötlet, lehetőség segíti a szebb, használhatóbb felületek kialakítását. Talán egyedül a felhasználói megszokás a gyakori és gyors változások komoly korlátja: a felhasználókat általában nehéz a megszokottól jelentősen eltérő felületre átszoktatni.

Folyamatok, életciklus és ütemezés

Programjaink háttértárakon helyezkednek el, így statikusnak tekinthetők: sok fájlból állhatnak, van méretük, ennek megfelelően foglalnak el megadott helyet az adathordozókon, egyikről a másikra másolhatjuk őket stb. A folyamatok (processzek) ezeknek a programoknak a futó példányai (jegyzetünkben nem foglalkozunk a szálakkal, a párhuzamosan futó folyamatrészekkel). Egy folyamatnak különböző állapotai vannak: megszületik ("épp indul"'), fut, várakozik, befejeződik és megszűnik (lásd lent is). Az állapotátmenetről a folyamat sokszor nem maga dönt, hanem ezt az operációs rendszer szabályozza (ütemezés). A folyamat futás közben használja a processzort (a processzor őt futtatja), és használ egyéb erőforrásokat is, például a memóriát.

Folyamatot csak folyamat indíthat - az operációs rendszer indulásakor elindul egy ún. ősszülő folyamat, ami az összes többit elindítja. Ezekből aztán egy hierarchikus rendszer alakul ki.

Az operációs rendszer az éppen futó folyamatokról nyilvántartást vezet (processz tábla). Ebben a valóban táblázatszerűnek képzelhető adathalmazban található minden, ami a folyamatok futásának adminisztrációjához kell: a futtatandó kód és a hozzá tartozó adatrész elhelyezkedése, regisztertartalmak, menedzsment (pl. jogosultság) információk stb. Ezen adatok egyetlen folyamathoz tartozó összességét folyamat tartalomnak (process context) hívjuk.

Egy folyamat életciklusa vázlatosan a következő lehet. Ha egy új folyamat létrejön, akkor a nemlétező (Non-existent) állapotból indul és bekerül a futásra kész (Ready), tehát a futásra várakozó folyamatok listájába. (Egyszerű, egyprocesszoros/egymagos esetben a "Ready" folyamatok közül mindig csak egy futhat, ezt pedig az ütemező választja ki.)

Folyamat állapotok és állapotátmenetek
6. ábra

Az éppen futó (Running) folyamatot vagy az ütemező teszi vissza egy idő után a futásra várakozók sorába, vagy "saját akaratából" kerül blokkolt állapotba, mert például egy számára szükséges erőforrásra vár.

A folyamatokat futásukban fel lehet függeszteni (Suspended), ez természetesen blokkolt, futó és futásra váró állapotban is megtörténhet. Blokkolt állapotból egy folyamat úgy kerülhet ki, hogy egy jelzés (Signal) értesíti arról, hogy a blokkolást kiváltó körülmény megszűnt. Ekkor a folyamat visszakerül a blokkolást megelőző állapotába, kivéve, ha a felfüggesztés éppen futó állapotban történt, ekkor ugyanis csak a "Ready" állapotba van visszatérés.

Egy folyamat befejezésekor annak futása megszűnik (Zombie), de valamely idő szükséges a folyamattartalom törléséhez, majd ezután - ekkor már nem is beszélhetünk folyamatról - újra a nemlétező állapotba kerül.

Mutassa be saját szavaival a folyamatok életciklusát! (Állapotok, lehetséges átmenetek.)

A futásra képes folyamatok közötti menedzsmentfeladatokat az ütemező látja el. Az ütemezés egy erőforrás-kiosztási feladat (itt a processzor a fő erőforrás), amelynek során az OS a processzorra várakozó ("futni akaró") folyamatok közül kiválaszt egyet, amelyik a következő időszakban futhat.

Az ütemezés főbb céljai a következők:

  • Minden folyamat fusson le (triviális cél annak megszervezése, hogy valamilyen módon minden folyamat kapjon processzoridőt, és tudjon futni).
  • A válaszidő csökkentése, azaz a felhasználó aktivitása és a rá adott első válasz között eltelt idő minimalizálása (ha például egy felhasználó két ablakban két külön programot futtat, elvárja, hogy úgy érezze, hogy mindkét program "azonnal'" reagál a lenyomott gombokra, még akkor is, ha a gép csak egyprocesszoros).
  • A rendszer hatásfokának a növelése, azaz: a processzor minél jobb kihasználása és az átbocsátó képesség növelése (egységnyi idő alatt több befejezett feladat).

Az ütemezés alaptevékenysége a rövid időközönként végrehajtott folyamatváltás (process context switch). Ilyenkor az OS ütemezésért felelős része, az ütemező (scheduler) megállítja az éppen futó folyamatot, elment minden adatot (ami majd a futás folytatásához szükséges; processz tartalom), és a mentett adatok helyére betölti a futásra kiválasztott következő folyamat adatait.

Az ütemező a fenti célokat bonyolult, ún. ütemezési algoritmusok segítségével igyekszik elérni. Ezeknek az algoritmusoknak két alapvető feladata van:

  • A folyamatváltás időzítésének megtervezése,
  • A következő futtatandó folyamat kiválasztása.

Az ütemező algoritmus különböző optimalizációs stratégiákat valósít meg a célok összehangolására - ezek ugyanis sokszor ellentétesek (ha valaki sokat foglalja a processzort, akkor a többiek "éheznek"). Az egyik ilyen stratégia lehet a prioritások beállítása és kezelése. Eszerint a folyamatok fontossági sorrend szerint kategorizálhatók, és ez a besorolás a futás során dinamikusan változhat (akár a felhasználó beavatkozásra is).

Szintén a folyamatokhoz kapcsolódóan, az operációs rendszer rendkívül fontos feladata a memória kezelése is (virtuális memória, lapok, lapkeretek). Mivel ennek részleteit az előző leckében már bemutattuk, ezért most ismételten nem tárgyaljuk.

Saját gépének operációs rendszerében (a megoldás előtt javasolt a Súgó áttekintése, böngészése!) tájékozódjon a következőkről:

  • Milyen programok és folyamatok futnak most a gépen?
  • Milyen egyéb, most éppen nem futó folyamatok találhatók még a folyamatlistában?
  • Mekkora az éppen használt memória, és mennyi a még szabad?
  • Használ-e a rendszer virtuális memóriát, és ha igen, akkor mennyit?

(Windows alatt használja a megoldáshoz a Feladatkezelőt, az Erőforrás-figyelőt és a systeminfo parancsot.)

Fájlkezelés, fájlrendszerek

Mint már jól tudjuk, adatainkat a háttértáron fájlokba rendezve tároljuk (a fájl vagy állomány a számítógép háttértárolóin lévő összetartozó, azonosítóval ellátott kódok tárolási egysége). Az operációs rendszer a fájlok használatához nagyon kényelmes eszközrendszert biztosít. Ezzel óriási terhet levesz a vállunkról, hiszen nem kell törődnünk az összetartozó adatok egyben tartásával, az adatok bitenkénti letárolásával, a használható, szabad hely kiszámításával és sok más technikai részletkérdéssel.

A fájlrendszer feladata, hogy lehetővé tegye a fájlok tárolását, használatát a felhasználó által elvárt kényelmes, hatékony, biztonságos módon. Természetesen a sok különböző igényre készült számtalan (részben egyedi) megoldás miatt sokféle fájlrendszer létezik, mindegyiknek megfogalmazhatók előnyei és hátrányai (lásd később).

A fájlrendszer kereteit a háttértárakon az első használat előtt ki kell alakítani (formázás). Megjegyezzük, hogy teljesen tetszőleges fájlrendszer ilyenkor sem választható, csak olyan, amit az általunk használt operációs rendszer támogat. Napjainkban egy átlagos felhasználó a formázás műveletével csak nagyon ritkán találkozik, mivel az adathordozók túlnyomó többsége gyárilag formázott.

A különböző adathordozókon tárolt adatok kezelésére, manipulálására egységes logikai szemléletet dolgoztak ki, ez a fájlkezelés. Ez a koncepció általánosabb, mint a konkrét fájlrendszerek, hiszen valamennyi fájlrendszer ugyanezen elvet követi.

Egy átlagos célra használt, otthoni számítógépen százezres vagy milliós (!) nagyságrendű fájl található. Ennyi fájlt csak megfelelően csoportosítva lehet kezelni, ezért a fájlrendszerek teljesen általános, "kötelező" tulajdonsága a mapparendszer (könyvtárrendszer) támogatása. Eszerint a fájlok csoportokba sorolhatók (ezek a mappák vagy könyvtárak), és a mappákban újabb almappák hozhatók létre. A rendszer felépítését a felhasználó a fájlkezelő rendszer segítségével lényegében a saját elképzelése szerint végezheti el (persze bizonyos fizikai és logikai korlátozások betartásával).

Gondolkozzon el azon, hogyan tudná megszámolni, hány fájl van a számítógépén.

Természetesen az adattárolás konkrét megvalósításából adódóan minden fájlrendszernek vannak korlátai, a mappák és fájlok maximális számára, a mappák maximális egymásba ágyazhatóságára, a maximális névhosszúságra (fájlok és mappák), illetve a teljes fájlrendszer maximális méretére vonatkozóan. Régebbi tervezésű fájlrendszereknél mindezek ma már komoly korlátot jelenthetnek, azonban a modern fájlrendszereket úgy tervezik, hogy a felhasználó ezekbe a korlátokba egyáltalán ne, vagy csak szélsőséges esetben "fusson bele".

Fájlrendszerünk kiválasztásánál érdemes megfontolni még mindezek mellett a hatékonyság és a biztonság kérdését is. Előbbi csoportba tartozik például a fájlok töredezettségének a problémája, amely akkor jelentkezik, ha korábbi törlések, illetve méretváltoztatások következtében az új fájlok már nem feltétlenül folyamatos tárolással kerülnek a háttértárra. Ez rosszabb esetekben érzékelhető problémákhoz vezethet, mivel a fájlok olvasási és írási sebessége így jelentősen csökkenhet. Ügyes algoritmusokkal a töredezettség csökkenthető (lásd EXT4 fájlrendszer). A biztonsággal kapcsolatban fontos érv lehet a Unix és a Linux rendszer mellett (a Windows rendszerrel szemben) az, hogy a vírusfertőzés alapja szinte mindig egy futtatható fájl módosítása. A Windows ezt megengedi, a Unix és a Linux nem.

Az operációs rendszer a fájlok és könyvtárak kezelésével kapcsolatban a következő fontos szolgáltatásokat, ill. támogatást nyújtja:

  • Fájlok egyedi elnevezése (a fájl azonosítója névből és kiterjesztésből áll),
  • Sok fájl strukturált tárolása (mappákba szervezve),
  • Fájlok visszakereshetősége, olvashatósága,
  • Fájlok létrehozása,
  • Fájlok másolása és mozgatása,
  • Fájlok módosítása,
  • Fájlok törlése, kukába helyezése,
  • Fájlok jogosultságainak kezelése (ahol meghatározhatjuk, hogy ki végezhet olvasási, írási, törlési, futtatási műveletet az egyes fájlokon),
  • Fájltípusok meghatározása, kezelő programokhoz kapcsolása (például beállíthatjuk, hogy a fájlkezelőben egy zenei fájlra kattintva azt valamely zenelejátszó program elkezdje lejátszani),
  • Fájlok fájltípusnak megfelelő megtekintése,
  • Fájlok tömörítése,
  • Fájlrendszer létrehozása az adathordozókon.

Indítsa el operációs rendszerének intézőjét (pl. Windows Intéző), továbbá egy Commander programot! Nézze meg, hogy ezek a programok milyen támogatást nyújtanak a fenti listában szereplő aktivitások elvégzéséhez!

A fájlok és mappák kezeléséhez - a fent bemutatottakon túl még - a következő fontos fogalmak kapcsolódnak (amelyeket minden felhasználónak ismernie kell):

  • Aktuális mappa (azonosítása a pont karakterrel),
  • Szülőmappa (azonosítása: két pont karakter),
  • Gyermekmappa (azonosítása: névvel),
  • Meghajtó (azonosítása betűjellel, például C:, D: stb.),
  • Elérési út (relatív, ha az aktuális mappából indul; abszolút, ha a gyökérből indul),
  • Dzsóker karakterek (?, * - egy, illetve több karakter helyettesítésére használhatók),
  • Maszkok (dzsóker jelekkel és egyéb karakterekkel felépítve).

A fájlok és a mappák műveleteit egy összetett gyakorló feladatban tekintjük át a lecke elméleti része után.

A következőkben a sok-sok fájlrendszer közül három jellemző típus legfőbb tulajdonságait tekintjük át: egy egyszerű, de a mai apró digitális eszközeink (MP3 lejátszó, fényképezőgép, telefon) által széles körben elterjedt rendszert, majd a Windows és Linux egy-egy képviselőjét.

  • FAT, FAT32: Régebbi, de nagyon elterjedt, kompatibilitási célú fájlrendszer. Eredetileg a 80-as években, a DOS operációs rendszerhez készült, a kor színvonalán. Nevét arról a táblázatról kapta, amiben az egyes fájlok elhelyezkedését tartja nyilván (FAT - File Allocation Table). Eredetileg csak 8+3 karakteres fájlnevek használatára volt képes és több más komoly korlátja is volt. Manapság a FAT32-nek nevezett verziót használjuk (32 bites belső címzés). A FAT32-ben a maximális fájlméret 4 GB (és a teljes rendszer mérete 100 GB alatti). A 4 GB régebben óriásinak látszott, de ma már a közönséges médiafájlok is nagyobbak ennél, többek között ezért is szorul ki a rendszer a használatból (a Windows rendszerek kb. 2000-ig főként FAT és FAT32 fájlrendszereket használtak). Manapság már semmilyen operációs rendszer nem részesíti ezeket előnyben (de mind képes használni), azonban a hordozható digitális eszközökön a mai napig elterjedt, ennek oka a széles kompatibilitás. Így ez a fájlrendszer kerül a pendrive-okra, MP3 lejátszókra, a fényképezőgépek és okostelefonok flash háttértáraira. A FAT eszközök külön-külön kezelhetők, a jól ismert meghajtó betűjelek (A:, C:, stb.) segítségével.
  • NTFS: A Windows NT-hez készített NTFS fájlrendszert a korábbi FAT rendszerre építve hozták létre, kimondottan ambiciózus célkitűzéssel (hibatűrés, biztonság, adatok helyreállíthatósága stb.). Az NTFS 2 TB maximális méretű lehet, de ez egybefűzhető, ún. dinamikus kötetek segítségével 16 TB-re növelhető. Ez a méret már kielégíti a mai igényeket. A rendszerben nyilvántartható az egyes felhasználók helyfoglalása, és beállítható, hogy bizonyos tárhelyméretet senki ne léphessen túl.
  • EXT4: Az EXT4 (EXTended filesystem version 4 - kiterjesztett fájlrendszer, 4. verzió) modern fájlrendszert a Linuxhoz fejlesztették ki a 90-es évek elején. Méretproblémákba az átlagos felhasználó aligha futhat bele: a maximális rendszerméret 1000 PB (petabyte, 1 PB = 1000 TB; azaz kb. félmilliószorosa egy mai tipikus winchester kapacitásának), a fájlméretre vonatkozó korlát pedig 16 TB, ami a legtöbb feladathoz szintén bőven megfelel. Egy mappába 64000 almappa kerülhet. Az EXT4-ben alkalmazott extent (kb. terjedelem) szolgáltatás megbecsüli a fájlok jövőbeli méretváltozásait, és ennek megfelelően foglal le a meghajtón a fájl számára fizikai területet. Ez az alrendszer képes nagyon alacsony szinten tartani a fájlok széttagoltságát, így Linux alatt a töredezettség-mentesítés problémájával gyakorlatilag nem kell foglalkoznia a felhasználónak. Szintén csökkenti a széttagoltságot a késleltetett elhelyezés (Delayed Allocation) összetevő használata. Ez a módszer a fizikai blokk elhelyezését visszatartja: csak akkor keres helyet a letárolandó adatnak, amikor az ténylegesen fizikailag tárolásra kerül (a gyakran írt fájloknál mindez komoly teljesítménynövekedést eredményezhet).

Esetleges internetes kutakodást (gyűjtőmunkát) is beépítve, hallgatótársával együtt végezze el a következő feladatot. Jelölje meg kedvenc operációs rendszerét és fájlrendszerét! Érveljen a saját rendszere mellett, és a kollégája rendszere ellen (természetesen szakmai érvekkel)!

Fájl- és könyvtárkezelés gyakorlat
Parancssori felület

Az operációs rendszerek egyik legfontosabb szolgáltatása a fájl- és könyvtárkezelés. Ezeket a feladatokat az operációs rendszerek többségében parancssorból is el lehet végezni. A következő táblázatban bemutatjuk a Linux és a Windows operációs rendszerek legfontosabb fájlkezelő parancsait.

Próbálja ki a parancsokat a saját operációs rendszerében!

Fájl- és könyvtárkezelő parancsok
FeladatWindowsLinux
Könyvtár létrehozásamdmkdir
Könyvtár törléserdrmdir
Könyvtárváltáscdcd
Fájlok másolásacopycp
Fájlok és könyvtárak másolásaxcopycp
Fájlok, könyvtárak listázásadirls

1. táblázat

Total Commander
Alapok

Az operációs rendszerek beépített funkciói mellett számos fájlkezelő alkalmazás segítheti a munkánkat. Ahogy fent már említettük, a Commanderek is ilyen, nagyon sikeres segédprogramok. A következőkben egy gyakorlati feladatblokk megoldásán keresztül alaposabban is megismerkedünk a Total Commander rendszerrel.

Bár ezt a tananyagrészt Windows környezetben készítettük el, más ismert operációs rendszerekben is használható mindig megfelelő Commander változat (vagy éppen pontosan ugyanez).

Nyissa meg a Total Commander alkalmazást és ismerkedjen meg a felületével!

Szükség esetén a Beállítások/Általános beállítások (angolra állított program esetén: Configuration/Options) ablak Nyelv (Language) fülén állítsuk be a kívánt nyelvet.

Nyelvi beállítások
7. ábra

A megfelelő nyelv kiválasztása után próbálja ki a különböző nézeteket az eszköztár

  • Csak a fájl neve,
  • Minden fájl adat,
  • Miniatűrök nézet és a
  • Váltás a könyvtárablakon keresztül nyomógombjai segítségével.
A Total Commander felülete
8. ábra
Mappák létrehozása

Feladat: Hozzunk létre egy új mappát Gyakorlat néven a számítógép egyik meghajtójára!

A továbbiakban mi a D:\ meghajtón fogunk dolgozni. Az új mappa létrehozása az F7-es funkcióbillentyűvel vagy az Új könyvtár nyomógombbal történhet.

Megjegyzés: Ha nincs D: meghajtója akkor dolgozzon az Ön által használt gépen bármely írható meghajtó gyökerébe, (pl. C: meghajtó), és a további feladatokat is értelemszerűen ezen oldja meg!

Hozza létre az ábra szerinti mappastruktúrát! A munka végén ellenőrizze, hogy valóban pontosan az előírt struktúrát kapta meg!

Mappastruktúra
9. ábra

A Windows rendszerben figyeljünk arra, hogy a fájlnevekben megadhatók ugyan kis- és nagybetűk, de használatukra nincs hivatalos előírás. Előfordulhat, hogy különböző programok különböző formában jelenítik meg az általunk létrehozott neveket (például úgy, hogy a mappaneveket csupa nagybetűvel, a normál fájlokat csupa kicsivel írják), és maga az operációs rendszer sem tesz általában különbséget a kis- és nagybetűk között.

Fájlok másolása

Oldja meg velünk közösen a következő feladatokat!

Feladat: Másoljuk át a D:\Gyakorlat\Szoftver\Operációs rendszer\Egyéb mappába a C:\Program Files\ mappából (és almappáiból) az összes exe és bat kiterjesztésű fájlt.

Használjuk a Total Commander bal oldali ablakát forrásnak, a jobb oldalit pedig célnak. A forrás oldalon menjünk bele a Program Files könyvtárba, a másikon pedig az Egyéb mappába.

A "Minden fájl megjelenítése a jelenlegi és minden alkönyvtárban" nyomógombbal vagy a Ctrl+B billentyűparanccsal listázzuk ki a Program Files könyvtárban (és alkönyvtáraiban) található fájlokat.

Minden fájl megjelenítése
10. ábra

A Kijelölés/Coportkijelölés... vagy a numerikus billentyűzet + jele (szürke +) segítségével jelöljük ki a bat és exe kiterjesztésű fájlokat. Ehhez a "*.exe; *.bat" maszk használható.

A *-gal bármennyi bármilyen, a ?-lel pedig pontosan egy tetszőleges karakter helyettesíthető.

Csoport kijelölése
11. ábra

A kijelölés után az F5 funkcióbillentyűvel vagy a Másolás nyomógombbal lehet átmásolni a kijelölt fájlokat a célmappába.

Az egyforma nevű fájlok esetében ne a felülírást, hanem az átnevezést válasszuk és lássuk el a fájlokat megfelelő sorszámmal, pl. program2.exe.

Törlés

Feladat: Töröljük ki az Egyéb mappából a 40 KB-nál kisebb fájlok közül a legrégebbit.

A Csoportkijelölés ablak Létrehoz... nyomógombjának segítségével hívjuk elő a Kijelölés definiálása ablakot. Ennek a Bővített fülén állítsuk be a méretre vonatkozó feltételt, majd mentsük el az új kijelölést "40" néven.

Bővített kijelölés
12. ábra
Rendezés
13. ábra

Ha most kattintanánk a törlésre, akkor a rendszer nem csak azt a fájlt törölné ki, amin állunk, hanem az összes kijelöltet. Ezért a numerikus billentyűzet - jelével (szürke -) vagy a Kijelölés/Csoportkijelölés megszüntetése... paranccsal szüntessük meg a kijelölést. Végezetül az F8-as funkcióbillentyűvel vagy a Delete nyomógombbal vagy a Törlés parancsra kattintva távolítsuk el a kiválasztott fájlt.

Átnevezés, áthelyezés és attribútumok

Feladat: Az Egyéb mappa legnagyobb méretű fájlját nevezzük át "Rejtett"-nek úgy, hogy a kiterjesztését meghagyjuk, majd tegyük rejtetté.

Válasszuk ki az ablakban a kritériumnak megfelelő állományt, majd kattintsunk rá és nevezzük át. Rejtetté tenni végül a Fájl/Attribútumok módosítása... menüpont alatt tudjuk.

Figyelje meg, hogy milyen attribútumokat és egyéb tulajdonságokat lehet még átállítani ebben az ablakban!

Attribútumok módosítása
14. ábra

A rejtett fájlokat úgy tehetjük láthatóvá, hogy a Beállítások/Általános beállítások ablak Képernyő fülén bepipáljuk a megfelelő kapcsolót.

Beállítások, rejtett fájl láthatósága
15. ábra

A bekapcsolás után úgy ismerjük fel a rejtetté tett fájlt, hogy annak megváltozott az ikonja.

Rejtett fájl
16. ábra

Feladat: A rejtetté tett fájlt helyezzük át a Hardver mappába.

Ezt kijelölés után az F6-os funkcióbillentyűvel vagy az Áthely/Átnev. nyomógombbal tudjuk elvégezni.

Keresés

Feladat: Keressünk a C:\ meghajtón olyan png kiterjesztésű fájlokat, amelyek nevének második karaktere "a".

Az Alt+F7 billentyűparanccsal vagy a Keresés nyomógombra kattintva nyissuk meg a keresés ablakot. Ez ugyanúgy épül fel, mint a Kijelölés definiálása ablak.

Készítse el a kereső kifejezést!

Hozzon létre Képek azonosítóval egy új mappát a Szoftver mappába!

Az Ablakba gombbal jelenítsük meg a fájlokat egy ablakban, majd másoljuk át a Képek mappába.

Fájlok összehasonlítása

Ebben a feladatban két nagyon hasonló szövegfájl apró eltéréseit kell megtalálnunk.

Töltse le a Hardver mappába az Ado es ket garas.txt  és az Adó és két garas.txt  azonosítójú fájlokat!

Jelöljük ki a fájlokat, majd vizsgáljuk meg a Fájl/Összehasonlítás tartalomra... parancs segítségével, hogy a két fájl szövege megegyezik-e.

Az összehasonlító pirossal jelöli azokat a sorokat, ahol eltérést talált, és szintén pirossal jelöli az eltérő karaktereket is.

Fájlok összehasonlítása
17. ábra
Fájldarabolás

Feladat: Daraboljuk fel 100 KB-os darabokra az Adó és két garas.txt  fájlt.

Hozzon létre egy 01 és egy 02 nevű mappát a Darabolt könyvtárba!

A létrehozás után az egyik ablakban jelenítsük meg a 01, a másikban pedig a Hardver mappát. Jelöljük ki az Adó és két garas.txt-t, majd válasszuk ki a Fájl/Fájldarabolás... parancsot. A megjelenő párbeszédablakba gépeljük be a 100 KB-ot, majd daraboljuk fel a fájlt az OK gomb lenyomásával.

Fájldarabolás
18. ábra

A darabolás után több sorszámozott fájldarab és egy CRC (Cyclic Redundancy Check; ellenőrző összeg, kontrollszumma) kiterjesztésű önellenőrző fájl jön létre. A CRC állomány tartalmazza az eredeti fájl nevét, méretét és egy ellenőrző kódot. A tartalmat az F3-as funkcióbillentyűvel vagy a Nézőke nyomógombbal meg is tudjuk nézni.

Nézze meg az egyik sorszámozott fájl tartalmát!

Másolja át a 01 mappa tartalmát a 02 mappába!

Álljunk a Total Commander egyik ablakában a Darabolt, a másikban pedig a 01 mappába és egyesítsük a fájldarabokat. Az egyesítést a CRC fájlra való dupla kattintással vagy a CRC kijelölése után a Fájl/Fájlegyesítés paranccsal lehet elvégezni.

Fájlegyesítés
19. ábra

Hasonlítsa össze az eredeti és a most egyesített fájl tartalmát!

Feladat: Próbáljuk ki, hogy valamelyik fájldarab apró módosítása után már az összeillesztést nem lehet elvégezni!

A 02 azonosítójú mappában található fájldarabok közül nyissuk meg a 3-as sorszámút és töröljünk ki belőle egy karaktert. A fájlt szerkesztésre megnyitni az F4-es funkcióbillentyűvel vagy a Szerkesztés nyomógombbal lehet. A törlés után próbáljuk meg újra egyesíteni a fájlt és figyeljük meg, hogy milyen hibaüzenetet kapunk.

Mappák összehasonlítása

Feladat: Hasonlítsuk össze a 01 és 02 mappát, jelöljük meg az eltéréseket.

A mappákat nyissuk meg a Total Commander két oldalán. Ezután a Kijelölés/Mappák összehasonlítása vagy a Shift+F2 billentyűparancs hatására a rendszer piros színnel kiemelve megjeleníti az eltéréseket (most csak egy eltérő fájl van). Az összehasonlítás csak a fájlokra vonatkozik, ha lenne mappa is a könyvtárakban, akkor azt a rendszer a vizsgálat során nem venné figyelembe.

Könyvtárak összehasonlítása
20. ábra
Tömörítés

Feladat: Csomagoljuk be a 01 könyvtárban lévő fájldarabokat Csomagolt.zip néven a Tömörített mappába.

A Total Commader egyik ablakában jelenítsük meg a 01, a másikban pedig a Tömörített mappát. Jelöljük ki a CRC fájlt, majd invertáljuk a kijelölést a Kijelölés/Kijelölés megfordítása vagy a * gomb segítségével (így az összes fájldarab lesz kijelölt). Végezetül a Fájl/Becsomagolás... vagy az Alt+F5 billentyűparanccsal vagy a Tömörítés nyomógombbal tömörítsük be a fájlokat. A megjelenő párbeszédablakban ne felejtsük el átírni a keletkező fájl nevét.

FONTOS! A fájl átnevezésekor ne módosítsuk az elérési utat, a kiterjesztést és a tömörítő algoritmust!

Tömörítés
21. ábra
Tömörített fájl
22. ábra

A Fájl csomagolása ablakban a Titkosít lehetőséget bepipálva jelszóval védett zip állományt is lehet készíteni.

Hasonlítsa össze az eredeti fájlok méretét a csomagolt fájl méretével!

Érdekesség!

A veszteségmentes tömörítés nem mindig jár méretcsökkenéssel. Készítsen egy olyan szöveges fájlt, ami csak a "SZE" karaktereket tartalmazza, majd tömörítse be! Hasonlítsa össze az eredeti fájl méretét a csomagolt fájl méretével!

Feladat: Csomagoljuk ki az előbb létrehozott Csomagolt.zip azonosítójú fájlt az Egyéb mappába.

A már megszokott módon állítsuk be a Commandert úgy, hogy az egyik oldalon legyen az Egyéb mappa, a másikon pedig a zip fájl mappája. Jelöljük ki a tömörített fájlt, majd a Fájl/Kicsomagolás... vagy az Alt+F9 billentyűparanccsal vagy a Kicsomagolás nyomógombbal csomagoljuk ki a fájlokat.

Kicsomagolás
23. ábra

Hasonlítsa össze a 01 és az Egyéb mappa tartalmát!

Tömörítse be a Gyakorlat mappát jelszóval ellátott (jelszó: infó) zip állományként Vezetéknév_Keresztnév_NEPTUNKÓD.zip néven!

Figyeljünk arra, hogy hiába állítunk be bármilyen fájlkiterjesztést, attól technikailag független, hogy milyen tömörítő algoritmust használunk. Tehát, ha pl. zip tömörítést szeretnénk használni, a Tömörítő algoritmusnál mindenképp a ZIP legyen kiválasztva (és logikus, hogy a fájl kiterjesztése is utaljon erre, azaz ZIP legyen).

Önellenőrző kérdések
1. Mi jellemző a parancssori interfészre?
A monitoron fix méretű karakterek, billentyűzet használata.
Monitoron grafikus + szöveges elemek, felhasználói mutatóeszközök.
A grafikus felület elemeinek kezelése - ablak, gomb, görgetősáv.
2. Tegye sorba az operációs rendszer indításának egyes lépéseit!

1.
2.
3.
4.
5.
6.


3. Jelölje be az alábbiak közül az operációs rendszer funkcióit!
fájl- és könyvtárkezelés
folyamatkezelés
keresés az interneten
I/O kezelés
fényképek mappákba rendezése
algoritmusok hatékonyságának a mérése
4. Készítsen olyan keresőkifejezést, aminek a segítségével azokat a fájlokat lehet megkeresni, amiknek a második karaktere "x" és "xlsx" a kiterjesztése!

Kifejezés:

5. Készítsen olyan keresőkifejezést, aminek a segítségével azokat a fájlokat lehet megkeresni, amiknek a neve három karakter és pdf a kiterjesztése! (Pl.: abc.pdf)

Kifejezés:

6. Az ábra alapján válaszoljon a kérdésre!

Adja meg pontosan a gyökérkönyvtártól kezdve a Légi mappa elérési útját! Ügyeljen a kis és nagybetűk helyes használatára.

Elérési út: