2010.02.09.
Bemutatkozás és követelmények
Dr. Mileff Péter - Általános Informatikai Tanszék 111. szoba.
Dr. Mileff Péter
Konzultációs idı: szerda12-14.
Követelmények: Vezetett gyakorlat nincs. Jelenléti ív nincs. 1 zárthelyi dolgozat a félév vége felé. ○ 10. hét Zárás: ○ Aláírás + kollokvium (írásbeli és szóbeli) 2
Ajánlott irodalom
Saját segédlet: http://www.iit.uni-miskolc.hu/~mileff/linux A teljes tananyagot tartalmazza.
KÖNYV: PERE LÁSZLÓ, GNU/LINUX rendszerek üzemeltetése I-II.
Kiskapu Kiadó. 2005. Gagné, Marcel, Linux rendszerfelügyelet. Kiskapu Kiadó.
2002. Sikos László, Bevezetés a Linux használatába. BBS-INFO
Kiadó. 2005. stb
3
4
1
2010.02.09.
Bevezetés
A Unix rövid története
A Unix nem egy új operációs rendszer
Régóta egyre növekvı arányban jelen van a számítástechnikai
világban
az AT&T Bell Laboratóriumában egy PDP-7 típusú
Hosszú ideig az egyetemi, kutatói szférában volt egyeduralkodó
Egyre újabb és újabb területeket hódít meg
Miben rejlik a legfıbb ereje?
számítógépre.
banki, vállalati, adatfeldolgozó szféra
1973: a rendszermagot átírták C nyelvre Ennek köszönheti a Unix/Linux a legnagyobb elınyét ma is, a
hordozhatóságot.
Dinamikusságában, alkalmazkodóképességében. Képes ugyanazt a környezetet nyújtani: ○ Mind a mainframe nagyépeknek, ○ mind az otthoni PC-k számára.
Elsı változatát 1969-ben készítette Ken Thomson és Dennis Ritchie
Az AT&T kezdetben ingyen az amerikai egyetemek rendelkezésére bocsátotta a Unix forráskódját Tíz éven belül százezer fölé emelkedett a mőködı Unix rendszerek
száma.
Manapság egyre inkább szükség van
A gyors terjedés miatt: ○ nem volt egységes ellenırzése senkinek sem a forráskód, a rendszer egysége felett.
egy olyan környezetre, amely képes hardvertıl, platformtól
függetlenül mindenhol ugyanazt nyújtani. 5
A Unix rövid története
Elterjedt UNIXUNIX-ok
Számos (helyi) változat alakult ki, amelyek közül a két legjelentısebb: Berkeley egyetemen kifejlesztett BSD Unix,
A UNIX neve
AT&T „hivatalos” változata a System V (System Fiv - SVR4)
AIX HP-UX Irix Nextstep Solaris SunOS Unixware
Ma is számos alváltozat van forgalomban.
A Unix egyre népszerőbbé kezdett válni a kereskedelmi szférában egyre több cég ismerte fel egy egységes Unix szabvány fontosságát több egységesítı, szabványosító bizottság és csoportosulás kezdett
dolgozni
6
IEEE kidolgozta a „POSIX” (Portable Operating System Interface (x)) ajánlást, amely igyekszik egyesíteni a két fı irányt.
7
Gyártó cég
IBM Hewlett-Packard Silicon Graphics Next Sun Microsystems Sun Microsystems Novell
8
2
2010.02.09.
A Linux előzménye
Amikor a Unix még csak az egyetemi és akadémiai szférában volt közismert: kialakult körülötte egy hatalmas programkörnyezet ○ minden egyetem, kutatóintézet elkészítette saját megoldásait problémáira ○ szövegszerkesztés, mindenféle apró utility, fordítóprogramok. Az intézmények non-profit szervezetek voltak, elkészült szoftvereiket publikussá tették: ○ nem volt egységes ellenırzése senkinek sem a forráskód, a rendszer
egysége felett.
Az egységes C nyelv és a környezet miatt: minden Unix felhasználó lefordíthatta, használhatta, módosíthatta és
továbbfejleszthette ıket szinte teljes szabadsággal. Ennek eredményeképpen alakult ki az FSF ○ Free Software Foundation - Richard Stallman 9
10
A Linux előzménye
A Linux
FSF célja: egy szabadon (forráskódban is) ingyen hozzáférhetı szoftverkörnyezet biztosítása Elindult a GNU project (GNU is Not UNIX):
Megvolt tehát a GNU környezet: fordítók, segédprogramok, és a szabadon terjeszthetı XFree
grafikus felület.
egy minél teljesebb Unix rendszert kíván létrehozni és
Egyedül egy operációs rendszer mag hiányzott: amely bizonyítottan szabad.
biztosítani. Ennek jogi megfogalmazása a GPL (GNU General Public
Ennek megírását kezdte el helsinki egyetemista korában
License) GPL alá esı szoftvert bárki:
több száz segítıjével együtt létrehozta azt, amit ma Linuxként
Linus Torvalds. ismerünk:
○ Készíthet, használhat, módosíthat, továbbadhat.
○ egy teljes, szabad operációs rendszert bárki számára.
GPL szoftverért és módosításért pénzt kérni nem szabad ○ GPL forrás módosítva is GPL forrás marad. ○ Fel kell tüntetni a módosítás dátumát, módosító nevét, elérhetıségét, stb. http://www.gnu.org/
Így született meg a GNU/Linux. ○ Jogi értelemben nem UNIX. ○ POSIX szabványt követi fıleg.
11
12
3
2010.02.09.
Top 100 Linux
Mik a disztribúciók?
Egy Linux kernelen alapuló teljes (mőködıképes) Unix rendszer Hogyan készül egy disztribúció? a C forrásban meglévı utility-k, programok
lefordításából, jegyzékstruktúrába helyezésébıl és összekonfigurálásából áll.
Sokféle disztribúció létezik, ingyenesek is és kereskedelmiek is. Néhány: Slackware Linux, Mandriva Linux, OpenSuse, Redhat
Linux, Novell Linux, Ubuntu, Kubuntu, Zenwalk, Frugalware Linux, Uhu Linux, Fedora Linux, stb. www.distrowatch.com
13
14
A 386-os csoda
A Linux egy valódi többfeladatos (multitask) és többfelhasználós (multiuser) rendszer. Mi volt a célja a 386-ossal? ○ A cpu nyújtotta fejlett tár és taszkkezelési lehetıségeket, valódi idıosztásos környezetet kihasználását célozta meg.
Két üzemmód: ○ Védett mód: kernel használja a mag futtatására. A kernelnek
hozzáférése van a gép összes fizikai erıforrásához ○ User mód: a felhasználói folyamatok így futnak.
Lehetıség van több, egymástól független „user” módú taszk definiálására. egymástól védettek, nem tudják egymás és a felügyelı kernel
memória- területét kiolvasni vagy módosítani, a gép közvetlen hardver erıforrásaihoz sincs hozzáférésük 15
16
4
2010.02.09.
A 386-os csoda
UnixLinux struktúrája
Így biztosítható az egyes felhasználói programok egymástól való védelme. az egyes folyamatoknak a gép fizikai erıforrásaihoz (pl.
winchester, képernyı) nincs közvetlen hozzáférésük, bármilyen perifériamőveletet csak a kernel meghívása útján Unix struktúrája
végezhetnek
A kernel: teljes mértékben, fizikai szinten hozzáfér a gép erıforrásaihoz. Fizikai, a lehetı legalacsonyabb szinten kezeli is a hardvert, a
legnagyobb teljesítmény elérése érdekében
17
18
Memóriakezelés
Memóriakezelés
Kihasználja a 386 által nyújtott lehetıségeket
memóriában legyenek ha azok esetleg diszken vannak, akkor gondoskodik
memóriába olvasásukról,
A teljes memóriát lapokra osztja Ezen virtuális lapokat rendeli hozzá az egyes folyamatokhoz
○ illetve ha a fizikai memória megtelt, akkor a ritkábban használt
lapokat a diszkre írja.
gondoskodik róla, hogy az éppen szükséges lapok a fizikai
Tárcsere: a rendszer figyelemmel kíséri az egyes folyamatok
memóriában legyenek
Lapozás: a rendszer arra ügyel, hogy a szükséges lapok a fizikai
lapozásos virtuális memóriakezelés ○ a fizikai memória kiegészítése a hdd-rıl vett virtuális memóriával (page vagy swap terület)
aktivitását is,
A Linux használja a virtuális tárkezelés mindkét fajtáját:
ha szabad memóriára van szükség, egy inaktív folyamat
egészét háttértárra írja, ○ Így felszabadítja a folyamat által használt összes fizikai memóriát
a lapozást (paging) és a tárcserét (swapping)
19
20
5
2010.02.09.
Buffer Cache
Memóriakezelés
A Linux a két módszer keverékét használja:
amíg rendelkezésre áll elegendı memória, úgy csak egyes
lapokat lapoz ki/be
a kernel kezeli, mert minden folyamat csak a kernel meghívásával
végezhet diszkmőveletet
Ha egy folyamat hosszú ideje inaktív, és nem csak egy-két
lapnyi memóriára van szükség, ○ akkor az adott folyamathoz tartozó összes fizikai lapot diszkre menti.
A buffer cache a Unix rendszerek diszk-eléréshez használt gyorsítótárja
Célja: az I/O hozzáférések gyorsítása, ezzel pedig a „felhasználói élmény” növelése. Mérete dinamikusan változik
Minden diszk írás ezen keresztül történik
A hdd virtuális memóriakezelése dinamikus
a rendszer-terheléstıl függıen
menet közben is változtatható, az operációs rendszer leállítása nélkül lehetıségünk van a
minden írás elıször a cache memóriába kerül,
virtuális memória méretének megváltoztatására.
vagy egy megadott idı elteltével íródik ki diszkre, vagy pedig
A swap terület használható fájlként, vagy akár külön
akkor, ha a rendszer számára „elegendı” kiírnivaló összegyőlt
partíciónként. Akár egyszerre több swap terület is. 21
22
23
24
Miért fontos a leállítás?
Kikapcsolás elıtt mindig szükséges a diszk tartalmának szinkronizálása a memóriában lévı állapottal ezen lépések elmulasztása esetén kikapcsoláskor a diszk
tartalma helytelen lehet.
Ezzel fizetünk a nagyobb teljesítményért. Az adatvesztés veszélye minden, a diszk-írást bufferelı rendszerben fennáll. pl.: Unix, Linux, Windows, stb.
6
2010.02.09.
Osztott kódkönyvtárak használatának alapelve
Demand Paging
Demand paging: („igény szerinti lapozás”)
Alapelv:
egy futtatható fájl végrehajtásakor nem az egész fájl töltıdik be
a programok nagy része C nyelven íródnak,
a memóriába, mindig csak azok a lapjai, amikre a végrehajtás során éppen szükség van.
valószínőleg sokban van olyan függvény, amely más
programokban is elıfordul. Ezeket felesleges lenne minden programmal a memóriába
A sebességnövekedés:
tölteni, elég egyszer.
Minden programnak vannak olyan részei melyek csak egyszer
○ Meg kell mondani a programoknak, hogy hol keressék ezeket a
függvényeket a memóriában.
(vagy akár egyszer sem) futnak le ezeket a részeket vagy be sem tölti a rendszer, vagy miután lefutottak felszabadítja az általuk elfoglalt memóriaterületet.
Ezt csinálja a dinamikus linker: ○ A programokba beépített programrészletnek segítve gondoskodik a függvények megtalálásáról ○ illetve a memóriába töltésükrıl, amennyiben még nem lennének betöltve
25
26
27
28
CopyCopy-onon-write mechanizmus
Copy-on-write mechanizmus: új folyamat létrehozása mindig egy másik folyamat
„memóriájának lemásolásával” történik.
Gyorsítás: Mivel viszont egy memórialapra több folyamat
memóriatérképébıl lehet hivatkozni, nem kell azt a lapot lemásolni, ○ csak el kell helyezni a lapra mutató hivatkozásokat a megfelelı
helyeken. Csak arra kell vigyázni, hogy amikor az ugyanarra a lapra
hivatkozó folyamatok közül valamelyik módosítani akarja a lapot, ○ akkor le kell másolni a számára, és így már módosíthatja, mert az
már csak az övé
7
2010.02.09.
Folyamatok ütemezése
Folyamatok ütemezése
Az operációs rendszernek egy CPU-n belül kell konkurensen több feladatot végrehajtania
Linuxban az ütemezés alapegysége az 1/100 másodperc.
ezért valamilyen formában meg kell osztania a rendelkezésre
álló CPU idıt az egyes folyamatok között.
A Unix alapú rendszerek a preemptív idıosztásos ütemezés módszerét alkalmazzák: a rendelkezésre álló idıt felosztja egyenlı részekre, és ezekbıl az egyenlı idıszeletekbıl juttat – a folyamat
prioritásának megfelelıen – többet vagy kevesebbet az adott folyamatnak. Ha az adott folyamat számára kijelölt idıszelet letelt, a kernel megszakítja a folyamat futását ○ és más folyamatnak adja át a vezérlést
29
30
31
32
Folyamatok ütemezése
A Unix(Linux) nem valós-idejő (real-time) operációs rendszer: ha több folyamat fut egyszerre, és az egyiktıl elkerül a
vezérlés, akkor valamekkora idı múlva vissza is fogja majd kapni a két aktív (futó) állapot közti idıre azonban nincs szigorú felsı korlát. Az esetek 99.9999999 százalékában ez az idı (még egy leterhelt rendszeren is) pár tized másodperc – ○ azonban soha nem mondhatjuk, hogy biztosan csak ennyi.
8