UNIX rendszerek UNIX: operációs rendszer, C programozási nyelvben írt pl.
Linux (nyílt forráskódú) Solaris (SUN Microsystems) lsd. pld. PTE-TTK A245
Használat Parancssoros felhasználói felület Grafikus felhasználói felület
Linux a Linux egy számítógépes operációs rendszer a legismertebb példája a szabad szoftverekenek és nyílt forráskódú programoknak „Linux” elnevezés szigorúan véve a Linux kernelt jelenti, de gyakran az elnevezést a teljes Unix-szerű operációs rendszerre alkalmazzák
A '80-as évek elejétől az egyik meghatározó PC-s operációs rendszer a DOS (Disk Operating System) volt. A DOS elődjét, a QDOS-t (Quick and Dirty Operating System) – amely egy operációs rendszer váz volt – Bill Gates vásárolta meg egy Seattle-i programozótól 50 000 dollárért. A QDOS-t egy kicsit módosították, kapott egy BASIC-értelmezőt és ezzel el is készült az MS-DOS. Gates rendkívül jól átlátta az akkori szoftverpiaci helyzetet. Az IBM pont ez idő tájt keresett operációs rendszert a PC nevű számítógépcsaládjához. Gates felismerte a lehetőséget, és rávette az IBM-et, hogy a személyi számítógépeit a Microsoft DOS operációs rendszerével szállítsa. Persze Bill Gates semmit sem bízott a véletlenre: elöbb kötötte meg a szerződést az IBMmel, és csak utána vásárolta meg a QDOS-t. Mivel az IBM PC elárasztotta a világot – köszönhetően a nyílt architektúrának (hardvergyártók sora tudott készíteni hozzá eszközöket licencelési procedúra nélkül) és olcsó mivoltának – az MS-DOS is megkezdte szárnyalását. A DOS az ügyes marketing stratégia miatt a világ minden szegletébe eljutott. A PC felhasználóinak nem nagyon volt választásuk. Az akkori Apple Mac gépek jobbak voltak, de magasabb áruk – és a perifériák alacsony választéka – meggátolta őket a szélesebb körű elterjedésben.
Az akkori számítástechnika másik nagy tábora a UNIX-világ volt. A UNIX jó tulajdonságai ellenére is az intézmények, kutatási központok, iskolák operációs rendszere volt, részben az ára miatt, részben mert eredetileg sem otthoni felhasználásra, hanem nagygépekre tervezték. A UNIX operációs rendszer forráskódja zárt volt, ahhoz néhány kivételezett intézményen kívül mások nem férhettek hozzá. A szakemberek természetesen megkísérelték a UNIX előnyeit átültetni az olcsóbb PC-re. Az egyik ilyen próbálkozás a MINIX volt, megalkotója Andrew S. Tanenbaum holland professzor és kernelszakértő. A MINIX fejlesztése teljesen elölről kezdődött, azaz készítője nem egy meglevő operációs rendszert használt fel alapjául. Tanenbaum a rendszert oktatási céllal írta, azt szerette volna, ha tanítványai ezen a MINIX-en tanulják meg az operációs rendszerek működésének, felépítésének alapjait. A MINIX az Intel 8086 mikroprocesszoraira lett fejlesztve, amelyek abban az időben elárasztották a világ számítástechnikai piacát.
A MINIX nem volt kimagaslóan jó operációs rendszer, de elvitathatatlan előnye, hogy nyílt volt a forráskódja. Bárki, aki megvásárolta Tanenbaum Operációs rendszerek című könyvét, hozzájuthatott a mintegy 12.000 sor MINIX kódhoz (a könyv második kiadásakor már több, mint 27.000 sor), amely egy működő operációs rendszer forráskódja volt. Ez volt az első alkalom, hogy valóban széles közönség elolvashatta egy operációs rendszer forrását, hiszen a többi rendszer forráskódját gyártói szigorúan védelmezték a nyilvánosságtól. Tanenbaum munkájának köszönhetően azonban programozók és egyetemisták tömegei tanulmányozhatták az operációs rendszerek működését. Ez azt eredményezte, hogy ugrásszerűen megnőtt a téma népszerűsége, egyre-másra alakultak olyan levelezési listák, ahol az érdeklődők az operációs rendszerek készítésének kérdéseiről beszélgethettek. Az egyik olvasó Linus Torvalds finn egyetemista volt.
Ez idő tájt a világon sok programozót inspirált a GNU Projekt, amelyet Richard M. Stallman (RMS) indított útjára. A szabad szoftveres megmozdulás célja az volt, hogy szabadon felhasználható, minőségi szoftvereket készítsen és terjesszen. Stallman karrierjét a MIT Artifical Intelligence Laboratory osztályánál kezdte. 1983-ban készítette el híres kiáltványát, amellyel deklarálta a GNU projekt elindulását. A GNU név egy rekurzív mozaikszó, amely a 'GNU is Not Unix'-ot takarja. Stallman álma egy szabadon felhasználható operációs rendszer elkészítése volt. Kezdetnek 1984-ben Stallman nekiállt megírni a GNU C Compiler-t (GCC – GNU Compiler Collection). 1991-re a GNU projekt számos fejlesztő-eszközt készített. A régen várt Gnu C fordító is rendelkezésre állt, így már csak egyetlen dolog hiányzott Stallman víziójából: a szabad operációs rendszer. (Akkoriban a MINIX-et is licencelni kellett.) Elkezdődött a GNU operációs rendszer fejlesztése is. Ez a GNU/Hurd névre hallgatott, de a kilátások szerint nem lehetett a megjelenésére számítani néhány éven belül (azóta sem jelent meg).
1991-ben Linus másodéves hallgatója volt a Helsinki Egyetem számítástechnikai tudományok karának. Linus autodidakta hacker volt, saját operációs rendszert szeretett volna írni. Hogy miért? Mert a GNU/Hurd-re várhatóan néhány évet várni kellett volna. A 21 éves egyetemista a Intel 80386os processzor védett módú (protected mode), feladat-váltó (task-switching) lehetőségeit szerette volna felfedezni. Ez körülbelül 1991 nyarának elején lehetett. A pontos dátumra maga Linus sem emlékszik. Egy biztos: egy e-mail tanúsága szerint 1991. július 3-án már a POSIX szabvány után érdeklődött az interneten, így ekkor már futhatott nála egy kezdetleges rendszer. A program fejlesztése a Tanenbaum-féle Minix alatt történt, eleinte Assembly nyelven. 1991. augusztus 25-én Linus egy történelmi levelet küldött a MINIX hírcsoportba (a levél magyar nyelvű fordítása):
„Üdv minden Minix-felhasználónak odakinn! Készítek egy (ingyenes) operációs rendszert (csak hobbi, nem lesz olyan nagy és profi, mint a GNU a 386- (486) AT-klónokhoz. Április óta kotyvasztom, és már kezd elkészülni. Szeretnék visszajelzéseket hallani, mit szerettek, illetve nem szerettek a Minixben, mivel az én operációs rendszerem némileg hasonlít rá (többek között azonos a fájlrendszer fizikai kiosztása – :gyakorlati okokból). Mostanában ültetttem át a bash (1.08) és a gcc (1.40) programokat, és úgy tűnik, működnek a dolgok. Ez azt is jelenti, hogy pár hónapon belül valami használhatót fogok kapni, és kíváncsi lennék, milyen képességeket szeretnének az emberek. Minden javaslatot szívesen veszek, azt viszont nem ígérem, hogy meg is csinálom őket :-) - Linus (
[email protected]) Ui.: Igen! Nincs benne Minix-kód és többszálú fs-sel (fájlrendszerrel) rendelkezik. Nem hordozható (portable)(a 386 feladatváltást használja stb.), és lehet, hogy soha nem is fog az AT-merevlemezeken kívül bármi mást támogatni, minthogy nekem csak ez van :-(.”
Valahogy így kezdődött a Linux története. Linus levele számos programozót megérintett. Andrew S. Tanenbaum – a MINIX operációs rendszer atyja – Hollandiában élő egyetemi tanár, operációsrendszer-kutató – egyik későbbi levelében azt írta, hogy a Linux elavult (Linux is obsolete), mert monolitikus, ezért a professzor nem jósolt neki nagy jövőt. A levélből óriási vita lett. Ennek ellenére a Linux az elmúlt 10 évben hihetetlen fejlődésen ment keresztül, és még mindig monolitikus.
Mire használható a Linux? Ideális Internet kiszolgáló • WWW szerver : Az Apache nevű web-szerver szoftver a legelterjedtebb a világon. Minden Linux disztribúcióban megtalálható. (A Microsoft Hotmail is ezt használja egy Sun szerveren!) • FTP szerver A gépünkön közérdeklődésre számot tartó, hasznos programokat és információkat, tananyagokat tárolhatunk gyors letöltés céljára. • Tűzfal: Véd a hackerektől, a betörőktől, akik szórakozásból, vagy információszerzés céljából, engedély nélkül akarnak belépni a hálózatunkba.
Nagy teljesítményű LAN kiszolgáló Ingyenes fileszerver, printszerver, ami kiegészítő szoftverek segítségével minden felhasználó részére elérhető lehet. Alkalmas korszerű irodai alkalmazások (okmány és kiadványszerkesztők, táblázatkezelők, ill. prezentációkészítők) futtatására. A Star Office, az Applixware és a Corel Office a Linux alatt használható változatai tartalmazzák a MS Office-ból ismert szoftvereszközöket. Az ApplixWare a SuSE disztribúcióban is megtalálható. A Star Office és az ApplixWare házi használatra ingyenes, hivatali használatra mindhárom jóval olcsóbb, mint a MS Office. A Linux operációs rendszer ezeken kívül természetesen alkalmas még szoftverfejlesztésre, tudományos számításokra, multimédiaalkalmazásokhoz, és játékra is.
Általában a parancsokról a UNIX/Linux rendszerekben a kis- és a nagybetű különbözőnek számít lehet a parancsokat paraméterezni megadhatók a paraméterek között állományok nevei a paraméterek között szerepel számos kapcsoló (opció) is általában egy vagy két kötőjel után szokás megadni a legtöbb parancsnak kötött a paraméter-sorrendje, ami azt jelenti, hogy ha több paramétert is szerepeltetni kell, akkor azok csak egy meghatározott sorrendben követhetik egymást
egy parancsértelmezőn belül a parancsok mellett szerepelhetnek a parancsokkal teljesen megegyezõ módon programok indítását végzõ parancsok is Azaz az egyes parancsértelmezõknek van egy alap parancskészletük, és ezen felül minden más parancs valójában nem más, mint egy programhívás. Ebben az esetben a parancs nevével egyezõ nevû programot keres a parancsértelmezõ a programok tárolására szolgáló könyvtárakban, és ha megvan, akkor elindítja azt, átadva neki a kapott paramétereket. Ha a program lefutott, a parancsértelmezõ válik ismét aktívvá, így a legtöbb program esetén fel sem tûnik, hogy önálló program futott le.
a parancsértelmező képes értelmezni több állományra utaló állományneveket – ilyenkor minden lehetséges (létező) állománynevet behelyettesít a megadott állománynévhez, és mindegyikre végrehajtja a kapott utasítást
adduser felhasználói név Új felhasználó beiktatása a rendszerbe
cd [könyvtárnév] Aktuális könyvtár beállítására használható. Alapértelmezett az aktuális felhasználó home könyvtára. A"." megadsásával egy szinttel vissza lép Amennyiben ezt paraméter nélkül használjuk, akkor egy speciális könyvtárba jutunk, amely nem más, mint a home-könyvtár, vagyis az a könyvtár, ahol a felhasználói anyagok találhatók. Épp az az oka, hogy ide ilyen könnyen el lehet jutni bárhonnan, hogy a home-könyvtáron belül találja minden felhasználó a saját személyes anyagait. Amennyiben paraméterként megadunk egy könyvtárat, akkor abba a könyvtárba jutunk. Harmadik lehetõség paraméterként egy - jelet megadni, aminek hatására abba a könyvtárba jutunk vissza, amelyiket legutóbb elhagytunk. A parancs beírását váró promptból nem minden gépen derül ki, hogy éppen melyik könyvtrában tartózkodunk, így szükséges lehet annak lekérdezése is, hogy éppen hol tartózkodunk. Erre a célra szolgál a pwd parancs, amely semmi mást nem csinál, mint kiírja az aktuális könyvtár teljes elérési útvonalát.
pwd - Az aktuális könyvtár teljes elérési útvonalát adja meg
A könyvtár (és állomány) megadási módja: egy /-jellel kezdõdik, ami a fõkönyvtárra utal. Ezt követõen minden könyvtárnevet az õt követõtõl egy újabb /-jel választ el, egészen a végéig, ahol vagy szerepel egy újabb per-jel, vagy nem. Ha nem, akkor az utoló név egy állomány neve is lehet, különben az mindenképpen egy könyvtár lesz.
chmod [kapcsolók] filenév állomány és könyvtárak hozzáférési engélyek megadása, elvétele + Hozzá ad egy engedélyt - Elvesz egy engedélyt = Beállítja az engedélyt stb A jogosultságok: a jogok tulajdonos felhasználó, tulajdonos csoport, és egyéb kategóriába vannak rendezve. Mivel egy kategórián belül három jog létezik, amelyek vagy meg vannak adva, vagy nincsenek, így egy kategóriát három bittel lehet ábrázolni. Ez a három bit éppen egy oktális, azaz nyolcas számrendszerbeli számjegyet ad. Éppen ezért a három kategóriát egy három jegyû oktális számmal is meg lehet adni.
A jogosultság beállítását lehetõvé tevõ parancsnak, a chmod parancsnak az egyik formája éppen ezt teszi lehetõvé: elsõ paramétere az oktális kód, a második a beállítandó állományokat adja meg (lehet egyetlen csillag is, ekkor a könyvtár valamennyi bejegyzésére fog vonatkozni). Megadható a paraméterek elõtt a -R opció is, amely esetben a könyvtárak tartalmára is fog rekurzívan vonatkozni a mûvelet. Jó tanács: csak a valóban futtatható programkódot tartalmazó állományoknak adjunk futtatási jogot, azonban a könyvtáraknak mindig adjuk meg a futtatási jogot. A fenti tanácsból látszik, hogy a rekurzív jogbeállítást és az oktális megadást együtt nem mindig célszerû alkalmazni. A másik módszer ha az oktális szám helyett felsoroljuk a változtatásokat: ha + jel után szerepeltetünk egy jogot (r, w, x, X ha csak a könytvárakra akarjuk beállítani) akkor az be lesz állítva, ha egy jel után, akkor az törölve lesz, = esetén pontosan a megadott jogok lesznek érvényesek. A + vagy a - jel elõtti betûvel pedig megadhatjuk, hogy melyik csoportra legyen ez érvényes: •u: a felhasználó jogosultságról van szó; •g: a tulajdonos csoport tagjainak jogosultságáról van szó; •o: a többi felhasználó jogosultságairól van szó; •a: minden felhasználóra vonatkozik, azaz mindhárom kategóriát egyszerre állítja (alapértelmezés).
cp [kapcsolók] filenév filenév Állomány másolása cp -b A felülírásra kerülo fájlokról biztonsági másolatot készít cp -u Az azonos néven már létezo és késobbi dátumú file-okat nem írja felül cp -v Másoláskor egyenként megjeleníti a file-ok nevét file [kapcsolók] filenév A megadott file típusát adja eredményül.
finger [kapcsolók] [felhasználó] Felhasználókról szolgáltat információt.A felhasználó név, @gazdanév formában szerpelhet. finger - l Részletes listát jelenít meg A legtöbb rendszeren elérhetõ a finger parancs, amely paraméterek nélkül a bejelentkezett felhasználók listáját adja meg. Amennyiben egy adott felhasználó azonosítóját adjuk meg paraméterként, akkor arról a felhasználóról ad egy bõvebb információt, és közli, be van-e jelentkezve, és ha nincs, akkor mikor volt utoljára bejelentkezve.
who [kapcsolók] [file] Az aktuálisan bejelentkezett felhasználók listáját, a hozzájuk tartozó terminált, a bejelentkezés idejét és annak a gazdagépnek a nevét adja meg, amelyen bejelentkeztek. Hasonló célokra alkalmas a who és a w parancs is. A who egyszerûen kilistázza a bejelentkezett (pontosabban az éppen szöveges parancsértelmezõt futtató) felhasználók azonosítóját, és hogy honnan jelentkezett be. Ez tehát szûkebb annál, amit a finger mutat. A w ennél valamivel bõvebb adatokat szolgáltat, mivel kiírja egy sorban azt is, hogy hány felhasználó van bejelentkezve – ez lehet ugyanaz a felhasználó több példányban –, mióta fut az operációs rendszer a gépen, és éppen mekkora a gép terhelése. Ezen kívül egy adott felhasználóról azt is megmondja, hogy éppen milyen programot futtat.
free - memória információk megjelenítése fsck - állomány renszerek ellenőrzése és javítása grep - Egy meghatározott szövegmintát keres egy file-ban. Egyszerre több file-ban is kerestethetünk kill - futó procesz kilövése
ls file és könyvtár információk megjelenítése ls -a, --all Kilistázza a könyvtár összes file-ját a "." és a ".." is bővebb információ-tartalommal rendelkezõ listát szeretnénk kapni: a hosszú listát (long) adó opció, a -l használható: ls -l
make A C fejlesztői könrnyezet fontos eleme. Egyszerűsíti a több mudulból álló projektek fordítását. A programozó az egyes programrészek közötti kapcsolatokat egy make-file-ban tárolja. Ha a programozó módosítja valamelyik imodul forráskódját, akkor csak a módosított részeket és ezektol függő modulokat kell újra lefordítani.
man - Online kézikönyv - lefontosabb és leggyakrabban használt parancs Az oldalak a /usr/man könyvtárban találhatók vagy a MANPATH környezeti változóban megadott könyvtárban Kilépés a man-ból 'q' billentyu lenyomásával történik. Lapozás előre space, vagy 'f'. Lapozás vissza 'b' man -a A megadott névnek megelelo összes kézikönyvoldalt megjeleníti man -f Egyenértéku a whatis paranccsal man -h Súgó oldalt jelenít meg man -k Egyenértéku az apropos paranccsal man -M útnév További könyvtárak, amelyekben kézikönyvoldalak kereshetok man -w nem kézikönyvoldalt, hanem annak elérési útvonalát jeleníti meg
Ez a parancs a paraméterében megadott parancsról mond el minden fontos tudnivalót. Egy hibája azonban van: a legtöbb parancs esetében ezek a manuálok angol nyelvûek. Igaz ugyan, hogy elkezdték magyarra fordítani, de a legtöbb parancs esetében a magyar nyelvû manuál még elég szegényes, a tudnivalóknak csak egy töredékét tartalmazza – idõnként teljesen fölösleges munkának tûnik a fordítás. Ilyenkor jobb lenne, ha nem a magyar nyelvû manuál, hanem az eredeti, angol nyelvû lenne elérhetõ. Erre alkalmas többek között a -a opció, amely azt mondja meg, hogy az adott parancsról rendelkezésre álló valamennyi manuált mutassa meg. Persze nem egyszerre, hanem egymás után. Fontos tudni még, hogy a parancsértelmezõ beépített parancsainak nincs saját manuáljuk, hanem a parancsértelmezõ manuáljában a Builtin command nevû résznél kell õket megkeresni. Ilyen a lentebb tárgyalt cd, pwd és egyéb parancsok. Ha valamely parancsot tehát nem találunk, akkor próbálkozzunk a man bash vagy a man sh paranccsal.
mkdir [kapcsolók] könyvtárnév Könyvtár létrehozása. mkdir -m jogok Új könyvtár létrehozása a megadott jogokkal mkdir -p Az elérési útvonalban megadott még nem létezo alkönyvtárakat is létrehozza Új könyvtárt létrehozni a mkdir paranccsal lehet, ahol meg kell adni a könyvtár nevét. Létezõ, de üres könyvtárat törölni a rmdir paranccsal tudunk. Olyan könyvtárat, amely nem üres, a rendszer nem enged törölni, tehát azt elõször ki kell üríteni úgy, hogy a tartalmát töröljük. Arra azonban figyeljünk, hogy amit Linux alatt törlünk, azt azonnal véglegesen, visszavonhatatlanul töröljük, így jól gondoljuk meg, hogy mit csinálunk!
mount [kapcsolók] [eszköz] [csatolási_ hely] Új filerendszer csatolása egy könyvtárstruktúrába. A meg nem adott paramétereket a parancs az /etc/fstab file megfelelo bejegyzéseibol veszi. umount filerendszer leválasztása mv [kapcsolók] forrás cél Fájlokat vagy könyvtárakat átnevez vagy átmozgat
ping rendszernév vagy ip cím Megnézhetjük, hogy egy adott rendszer muködik-e ps [kapcsolók] Aktuális processzek listája Ha azt szeretnénk tudni, hogy milyen programok futnak éppen, akkor erre parancssoros üzemmódban a ps parancsot használhatjuk. Ha paraméter nélkül, ps formában hívjuk meg, akkor a saját programjainkat (hivatalos nevén processzeinket) láthatjuk, ráadásul csak az adott parancsértelmezõben indítottakat. Ennek csupán azért van értelme, mert programokat elindíthatunk úgy is, hogy a háttérben fussanak, és közben új parancsokat lehessen kiadni. Azonban ha a -U opciót is megadjuk, és utána megadjuk a saját azonosítónkat (vagy másét), akkor az összes, a megadott azonosítójú felhasználóhoz tartozó processzt láthatjuk, a -A opció esetén pedig valamennyi processzt Megj: qstat
rm [kapcsolók] file-ok Egy vagy több file törlése rm -f A file-okat jóváhagyás nélkül akkor is eltávolítja, ha azok írásvédettek rm -i Minden file-nál jóváhagyást kér rm -v Törléskör megjeleníti a file neveket a paraméterében megadott állományt azonnal, és visszavonhatatlanul törli!
talk felhasználó [@gazdanév] [tty] Kapcsolat létesítése a megadott felhasználóval. Ha a felhasználó több terminálon jelentkezett be, akkor a terminál beírható a parancssorba. A kapcsolat a
billentyuk lenyomásával szüntetheto meg. write felhasználó [terminál] A felhasználó adott termináljára küld üzenetet.