1. UNIX operációs rendszer rövid története és jellemzői

Irányzat

Verziók

Példák

AT&T System X rendszerek

System V Release 4.2

Sun Solaris, AT&T System V

Berkley BSD X rendszerek (1992-ig)

BSD 4.4

SunOS, ULTRIX (Alpha), BSD386, FreeBSD

OSF rendszerek (1991)

OSF/1

DEC Didital UNIX, IBM AIX, HP-UX

POSIX
(IEEE szabvány)

 

Linux

 

    1. Jellemzők

 

    1. Előnyök
    1. Linux
    1. Linux felépítése

 

A Linux rendszer komponensei

Felhasználó

SHELL

Segédprogramok
(utility)

Felhasználói
programok
(folyamatok)

Alkalmazások (editor, fordító-programok stb.)

Rendszerkönyvtárak (rendszerhívások)

Linux kernel

(betölthető kernel modulok)

Device driver

Device driver

Device driver

Hardver

1.ora vege

2.ora eleje

  1. UNIX SHELL

Főbb jellemzői a következők:

    1. A shell-ek általános tulajdonságai
    1. Felhasználók belépése a UNIX rendszerbe

 

Rendszer logikai képe

      1. Password (jelszó)
      1. Felhasználói azonosító létrehozása

Egy új felhasználói azonosító létrehozásakor (témaszám vagy account kérésekor) a következő információt kell megadnunk:

A fenti adatokat a rendszer az /etc/passwd fájlban tárolja el, ahol mindenki el is olvashatja. A felhasználó fenti attribútumait a home könyvtár kivételével maga a felhasználó is megváltoztathatja a megfelelő – root jogon futó – parancs futtatásával. (chsh)

A felhasználó belépése után a megadott shell fog elindulni.

Gyakorlat:

    1. A UNIX shell parancsai

A UNIX shell parancsok két csoportba oszthatók:

A shell által értelmezett speciális karaktersorozatok (a viselkedés lehet rendszerspecifikus):

      1. Standard csatornák
      1. A UNIX parancsok általános felépítése
      2. parancs [-kapcsolók] [paraméterek] [>out] [<input][2>error]

        A kapcsolókat ill. a paramétereket a parancs megkapja, ő értelmezi.

        [>out] átirányítja a parancs kimenetét az out nevű fájlba.

        [<input] megadásakor a parancs a bemenetét az input nevű fájlból veszi.

        [2>error] hatására a parancs hibaüzenetei az error nevű fájlba kerülnek.

      3. A man parancs

A UNIX rendszerben van egy dokumentációs adatbázis. Olvasni a man parancs segítségével lehet.

A “parancs_név” parancs részletes leírása jelenik meg a képernyőn (szintaxis, paraméterek, opciók, példák, stb.). A man program lényegében egy speciális formátumban tárolt szöveges adatbázist kezel, ami tartalmazza a parancsok leírását.

Az adatbázis 8 kötetre van osztva. Pl. az egyes kötet az általános parancsok programok leírását, a 2. kötet a rendszerhívások leírását tartalmazza.

Keyword (kulcs-szó) szerinti keresés:

Gyakorlat:

  1. A UNIX FÁJLRENDSZER

UNIX File System (UFS):

    1. UFS jellemzők
    1. UFS felhasználói felület jellemzői
    1. A UNIX fájlrendszerben használat adatszerkezetek

i-node-szám (2bájt)

fájl neve (14 bájt)

6

.

5388

..

45

adat.dat

677

.titok.titkos

   

 

    1. i-node

Az i-node tartalma:

Fájl létrehozásakor a fájl a létrehozó felhasználó hatásos user-ID-jét és group-ID-jét örökli.

Fájl tulajdonosának ill. attribútumainak megváltoztatása:

    1. Könyvtárkezelő parancsok

Az aktuális könyvtár fájljainak listázása: ls.

A könyvtárban levő fájlok neve is egy fájlban, melynek a neve "." van eltárolva. A szülő könyvtárra való hivatkozás "..". (A ".." egy hard link!)

Gyakorlat:

A könyvtárleíró fájl kilistázható a cat . vagy a od -An -Xc . parancsokkal. (A more nem írja ki, mert könyvtár.)

Kilistázza a megadott (vagy paraméter nélkül használva az aktuális) könyvtár tartalmát. A rejtett fájlokat nem írja ki. A rejtett fájlok neve "."-tal kezdődik.

Az ls kapcsolói:

Fájlok, könyvtárak másolása:

Fájlok törlése: (-i kapcsolóval megerősítést kér.)

Könyvtárak törlése:

Új fájlok alapértelmezett (védelmi) paramétereinek megadása:

Fájlok (védelmi) paramétereinek megváltoztatása:

Fájlok tulajdonosának magváltoztatása:

 

    1. A UNIX fájlrendszer felhasználói interfésze

A UNIX fájlrendszer felhasználói felületének lehetőségei:

      1. Hard link

Egy fájl különböző nevekkel történő elérése.

ln /home/users/usr1/file /home/users/usr2/hardlink

/home/users/usr1

 

/home/users/usr2

43

.

 

67

.

23

..

 

88

..

92

file

 

59

adat.dat

91

titok.mese

 

92

hardlink

         
         

 

Hátrány:

      1. Szimbolikus link

Hard link hibáinak kiküszöbölése. (4.2 BSD)

ln -s /home/users/usr1/file /home/users/usr2/szimb_link

/home/users/usr1

 

/home/users/usr2

43

.

 

67

.

23

..

 

88

..

92

file

 

59

adat.dat

91

titok.mese

 

-

szimb_link: /home/users/usr1

       
         

Gyakorlat

      1. Keresés

find ut_lista –kifejezés

Kifejezés:

      1. Pipe (csatorna)

A pipe (csatorna, csővezeték) tulajdonságai:

Lehetőséget ad parancsok egymás után fűzésére:

Különbség a UNIX és a DOS között:

(Hosszú parancsok végrehajtásánál sokáig kell várni az eredmény megjelenésére DOS esetén.)

A PIPE használatának szintaxisa a következő:

Parancsok összefűzése esetén gyakran használt programok:

Bemenet soronkénti rendezése megadott kritérium alapján.

Minta keresése a bemeneti adatok között.

A szöveges bemenet sorainak, szavainak, ill. betűinek megszámlálása.

 

Gyakorlat

  1. Hasznos parancsok
    1. Futási idő mérése

Gyakorlat

    1. Levélküldés
    2. Példaként vegyük a következő parancsot:

      mail hal@kabinet.szif.hu <msg

      A parancs hatására a rendszer elküldi az msg nevű fájlban tárolt üzenetet a megadott címre. Átirányítás nélküli hívásnál az üzenetet be lehet gépelni. Ctrl-D-vel lehet az üzenetet befejezni, és elküldeni a levelet.

    3. Üzenetküldés

Gyakorlat

  1. FOLYAMATOK A UNIX-BAN

UNIX: multiprogramozott operációs rendszer:

Operációs rendszer feladatai:

Folyamat:

CPU elosztás:

Memória elosztás:

Fájlok, I/O eszközök:

Párhuzamos működés:

Egy program vagy felhasználó több folyamatot indít.

Felhasználói felület:

Gyakorlat: ps, ps -aux, ps -elf, id, who (99/11/25)

  1. SIGNAL (99/12/02)

A signal (jelzés) események kezelésére.

Konstansként definiált eseményazonosítók: SIGINT, SIGKILL, SIGSTOP.

    1. Események kezelése

Beépített (rendszer által megvalósított) funkciók:

A folyamat befejeződik (kilép), és generál egy ún. core fájlt, ami tartalmazza a folyamat memóriaképét kilépéskor. Ezt elemezve esetleg meghatározhatjuk, hogy mi okozta a leállást.

Kilép core fájl generálása nélkül.

Elveti az eseményt, nem veszi figyelembe. (Nem minden signal esetén lehetséges.)

Felfüggeszti a folyamat futását.

Folytatja a folyamat futását.

A felhasználó által definiált működés leírása a következőképpen történik:

Gyakorlat:

  1. A UNIX védelmi rendszere

Célja az illetéktelen hozzáférés megakadályozása:

Jogosítványokon keresztül valósul meg.

    1. A UNIX védelmi rendszerének működése

Minden felhasználónak van egy azonosítója (UID).

A jogosítványok könnyebb kezeléséhez:

User ID és csoportba tartozás tárolása:

Fájl i-node:

Jogok értelmezése:

    1. Jogosultságok átruházása

Lehetőség van a jogosultságok átadására egy meghatározott tevékenység végrehajtása idejére. Tevékenység = program.

Megvalósítás:
Egy futó processznek két azonosítója, ID-je van:

Processz elindul (alapeset):

Hatásos UID megváltoztatása:

Megjegyzés:
Kitüntetett felhasználó, a root , super user (UID=0
), aki minden jogosultsággal rendelkezik. A root számára minden fájl elérhető.

Gyakorlat:

  1. Állománynév helyettesítés

Parancsfeldolgozás során a shell a paraméterként megadott (fájl-névként értelmezett) speciális karaktereket behelyettesíti:

Gyakorlat:

  1. Parancs helyettesítés

Parancsfeldolgozás során a shell a ` közé zárt parancsokat végrehajtja és a parancs eredményét (kimenetét) beilleszti a parancssorba:

Gyakorlat:

  1. Parancs sorozatok

Parancsok egymás utáni feltétel nélküli vagy feltételes végrehajtása:

  1. Reguláris kifejezések

Parancsfeldolgozás során a shell néhány parancsa (egrep, sed, awk, perl ) a paraméterként megadott karakterláncot speciális karaktereként értelmezi:

  1. SHELL programozás

Változók:

Változók definiálása: (shell specifikus)

Változók használata:

Vezérlés utasítás: (Gyakorlat: UNIX könyv 59-61 o.)

Ciklus utasítások: (Gyakorlat: UNIX könyv 59-61 o.)

 

    1. Batch példa programok
      1. Fibonacci szám
      2. #!/bin/sh

         

        if test $# -ne 0

        then

        echo "En nem kerek parametert!"

        exit

        else

        echo "Az elso 20 Fibonacci szam:"

        fi

         

        fib_a=1

        fib_b=1

        i=1

         

        echo $fib_a

        echo $fib_b

         

        while [ $i -le 18 ]

        do

        tmp=$fib_b

        fib_b=`expr $fib_a + $fib_b`

        fib_a=$tmp

        echo $fib_b

        i=`expr $i + 1`

        done

      3. Rejtett fájlok adatainak kiírása

#!/bin/sh

if test $# -ne 0

then

echo "En nem kerek parametert!"

exit

else

echo "Az aktualis konyvtarban levo rejtett fajlok:"

fi

for i in `ls -da .*`

do

ls -ld $i

done

 

Feladatok:

http://www.mit.bme.hu/~kiss/edu/UnixLab/Tests/

 

for i in kacsa kuka labda

do

echo "En szeretem a ${i}t…"

done