Operációs Rendszerek II. x. előadás Első verzió: 2004/2005. I. szemeszter Ez a verzió: 2009/2010. II. szemeszter
Példa operációs rendszerek Rövid ismertetés A szemeszterben példaként megemlített operációs rendszerek Unix Linux Windows Miért pont ezek? Miért nem más? Szempontok Történet, háttér (csak röviden) Struktúra, felépítés áttekintése (a részletekről szól a szemeszter)
Hol a helyük? Micro Comp. (~80) Mini Comp. (~60) Mainframe UNIX (~70)
Hol a helyük? Micro Comp. (~80) Mini Comp. (~60) Mainframe PC UNIX (~70) Szerver Low-end Midrange High-end Mainframe Windows (~93) Linux (~91)
Van még tovább? PC Szerver Mainfr. Van, mindkét irányban Nagyjából out-of-scope
Unix a kezdetek 1969, Bell labs: alig használt PDP-7 a sarokban Multics projekt leállta utáni űr Space travel játék (Thompson) A PDP-7 gépen nem volt fejlesztő környezet (cross compilert kellett használni) Thompson, Ritchie és mások elkezdtek írni egyet (először a fájlrendszert, majd jött a process alrendszer és egy egyszerű shell)
A történet folytatódik Thompson, Ritchie és Ossanna meggyőzi a BTL-t hogy vegyenek egy PDP-11 gépet szövegszerkesztésre A Unix portolásra kerül, megszületnek az első egyszerű kiadvány szerkesztő programok Thompson a BCPL nyelvből kiindulva kifejleszti az interpretált B nyelvet Ennek alapján Ritchie által megyszületik a C nyelv. A Unix diadalútja C nélkül nem valószínű és viszont
Egy zárt világ A rendszer a BTL-en belül közkedveltté válik, de házon kívül nem ismerik 1973-ban kiadott (belső) verzió már tartalmazza a cc C fordítót Ugyanebben az évben az egész rendszert újraírják C-ben ez a lépés alapozza meg a későbbi sikert
Úton az ismertség felé 1973: a Unix bemutatása egy ACM konferencián (1974, első írott publikáció) 1956-os antitröszt határozat miatt az AT&T nem kereskedhetett számítástechnikai termékkel (sem) az ACM konferenciát követő nagy számú megkeresés hatására az AT&T a rendszert kutatási és (egyetemi) oktatási célokra jogdíj nélkül átadta (forráskóddal együtt) 1975-ben már telepített Unix-ot találunk Kanadában, Izraelben és Ausztráliában is A Berkeley egyetem az elsők köz kap Unix licencet (1974 decemberben)
A sokszínűség A gyors terjedés mellett megkezdődnek a módosítások (forráskód elérhető) Az eredményeket sokszor a BTL is beépíti saját fejlesztéseibe A Berkeley-en különösen aktív fejlesztés folyik, az eredeti rendszert jelentősen jobbító programokat külön csomagban, pénzért (USD50) kezdik forgalmazni
A BSD Unix Először itt készül virtuális memóriakezelés Unix-hoz (32 bites VAX gépre) 1979-ben megjelenik az első saját OS verzió (3BSD) ez már teljes csomag A DARPA támogatja a Unix továbbfejlesztését (VM és TCP/IP fejlesztés) Fentieken túl még több jelentős újítás innen származik 1993-ban megjelenik az utolsó (4.4BSD) verzió, a fejlesztés befejeződik A rendszert a BSDI viszi tovább, a történet rögtön egy AT&T perrel indul 1994-től érhető el a 4.4BSD-lite
Az eredeti A fejlesztés a Bell berkein belül sem áll le 1982-ben az AT&T beléphet a piacra Időközben a Unix Support Group nevű csapat kiadja a System III verziót (1982), majd 1983-ban a sokkal agresszívebben marketingelt Syste V-t. Sok kommerciális Unix alapul valamelyik System V verzión Jelenlei verzió az SVR4
Az üzleti rendszerek Több cég is foglalkozott saját hardverére portolt (és kibővített) Unix forgalmazásával (ezek forrása vagy a BTL vonal, vagy a BSD volt) Első cég (1977) Ineractive Systems, de a Microsoft (az SCO-val együttműködve) is az elsők között van 1982-ben Bill Joy kilép a Berkeley-ről és másokkal együtt megalakítja a Sun Microsystems céget. Rendszerük a SunOS a 4.2BSD-n alapul
Azok a 80-as évek A 80-as években több gyártó (IBM, HP, DEC és mások) is előrukkol saját új gépeivel és ehhez saját Unix verziót adnak ki Minden cég megpróbál egyre több extra szolgáltatást beépíteni a rendszerébe, ez gyors fejlődést eredményez. Ugyanakkor a különféle Unix verziók többé-kevésbé inkompatibilisek.
Mach A Unix születéskori erősségei kis méret és egyszerűség az egyre több és több szolgáltatás beleintegrálásával tovatűntek A 80-as évek elején a pittsburgi Carnegie-Mellon egyetemen megkezdődött egy új, mikrokernel alapú operációs rendszer a Mach fejlesztése A rendszer kívülről BSD interfésszel bírt, ugyanakkor AT&T kódtól teljesen mentes volt. A 2.5-ös (még monolitikus kernelű) verzió több piaci rendszer (OSF/1 és NextStep) alapja lett, az első mikrokerneles verzió a 3.0 volt
A Unix háború 1987-ben az AT&T szövetkezett a Sun-nal a következő System V verzió (SVR4) kidolgozására (a Sun korábban BSD vonalat használt). Megjelenik a Solaris 2. Ez a lépés az iparban komoly nemtetszést váltott ki, kezdetét vette a Unix háború. Szövetségek alakultak és szűntek meg, de egy új fenyegetés a Windows NT mindent megváltoztatott
A közelmúlt A Unix név és kód a Novell-hez kerül A kódot a Novell eladja az SCO-nak, a Unix név a Open Group kezébe kerül Sok, a 80-as években virágzó gyártó eltűnik, a megmaradtak (IBM, HP) viszont továbbra is fejlődnek a Unix él és virul A Sun, mint egyik meghatározó szereplő 2009-ben az Oracle kezébe került, de ennek hatásai ma még nem láthatók. Linux
Szabványok A sokféle verzió megkeserítette a fejlesztők életét Szabványosítási törekvések kezdődtek, de szabványból is sok, különböző alakult ki (ezek nem a belső működést, hanem az interfészeket írják le) Egyik legjelentősebb szabvány az IEEE POSIX specifikáció A szabványos kód nem tartalmazhatja az adott platformra jellemző többlet funkciókat!
Összefoglalva... Kezdetben az akadémiai szektorban sikeres Forráskód elérhető (feltételekkel), sok változat, ami visszahat a fő kódra is Sok neves gyártó jelentet meg saját, üzleti alapú verziót Az inkompatibilitás elleni harc eszközei a különféle szabványok (pl. POSIX) Léteznek olyan rendszerek, amelyek csak interfész szinten Unix-ok (Mach, Mac OS, Linux) Az idők során a Unix forrás is jelentősen átalakult (SVR4)
Klasszikus (pre. SVR4) kernel
Változás mozgatórugói Funkcionalitás Fájlrendszer funkciók (locking, quota-k, ACLek) IPC (magasabb absztrakciós szint) Szálak Hálózati szolgáltatások (NFS, NIS)
Változás mozgatórugói Funkcionalitás Teljesítmény, hardver fejlődése Fájlrendszerek teljesítményének növelése Új hardver-technológiák támogatása (RAID, SMP)
Változás mozgatórugói Funkcionalitás Teljesítmény, hardver fejlődése Minőségi elvárások, megbízhatóság Adatvesztés rendszerösszeomlás esetén Működés hibák során
Változás mozgatórugói Funkcionalitás Teljesítmény, hardver fejlődése Minőségi elvárások, megbízhatóság Paradigmaváltás, új alkalmazások Kliens-szerver alkalmazások előtérbe kerülése Real-time elvárások (pl. média szerverek)
Solaris példa az új Unix-ra A Solaris előtt 1982: SunOS 1.0 BSD 4.1 alapú, még Motorola 68000 alapú Sun gépre Hálózati technológiák komoly fejlesztése, több széles körben elterjedt (NFS, RPC). Az implementálásuk jelentős módosítást igényelt, a SunOS 2.0 már tartalmazza VFS-t (1984) Új VM, dinamikus linkelés (SunOS 4, 1988 első SPARC alapú rendszer) Multiprocesszoros rendszerek támogatása, a SunOS 4.1 esetén még aszimmetrikus módon A szimmetrikus multiprocesszing nagyon más
Solaris példa az új Unix-ra Solaris 2 és azon túl Az AT&T szövetség hatására a Sun System V alapon teljesen új rendszerrel ál elő 1992, Solaris 2.0 még csak uniprocesszoros (ezután a korábbi verziók: Solaris 1.x). Még ebben az évben multiprocesszoros támogatás (2.1) 1993-tól x86 platform támogatás 1996-ban már 64 utas SMP (2.5.1), ugyanekkor fájlméret max. átlépi a 2GB-t (2.6) FS 2.2 óta nagyobb Következő nagy lépés a Solaris 7 (nem 2.7), ami már 64 bites processzorokat is támogatja
Solaris példa az új Unix-ra Solaris 2 és azon túl Következő nagy lépés a Solaris 7 (nem 2.7), ami már 64 bites processzorokat is támogatja Minden verzió hoz újításokat (RBAC, újabb ütemezők, zónák és x64 támogatás), Jelenlegi verzió a Solaris 10 OpenSolaris (Oracle felvásárlás hatásai???) Támogatott platormok Sun UltraSPARC-based systems Fujitsu SPARC64 platform-based systems 32 and 64 bit systems based on AMD Intel and VIA x86 CPUs
A Solaris 2 kernel
A régi és az új
Konszolidáció, virtualizáció Solaris 10 Containers (2005 óta) LDoms (csak T sorozat szerverein) xvm, Domains 29
Konszolidáció, virtualizáció Solaris 10 Containers (2005 óta) LDoms (csak T sorozat szerverein) xvm, Domains 29
Konszolidáció, virtualizáció Solaris 10 Containers (2005 óta) LDoms (csak T sorozat szerverein) xvm, Domains 29
Konszolidáció, virtualizáció Solaris 10 Containers (2005 óta) LDoms (csak T sorozat szerverein) xvm, Domains 29
ZFS (zettabyte file system) 2004-ben jelent meg, 2006 óta a Solaris 10 része Storage pool-ok Fájlrendszer és fájlok maximális mérete: 16 EIB (2 64 bytes) stb. 30
Linux történet Kezdet: Linux Torvalds, 1991 x86 Kívülről Unix, felépítésében viszont eltérnek (az egymásra hatás tagadhatatlan) Interneten keresztül együttműködő fejlesztői bázis, széles hardver platform támogatás Kernel: Linus, prg: FSF GNU projekt Eleinte a hangsúly a kis erőforrás igényen és az egyszerűségen volt. Idővel ez megváltozott
Linux - verziók Idővel különféle, egymással többé-kevésbé kompatibilis disztribúciók alakultak ki, ezek közül kinőtt néhány kifejezetten üzleti megoldás is Az üzleti sikerekhez robosztusság, megfelelő funkcionalitás és gyártói támogatás szükséges A támogatás nagy hardver és szoftver szállítóktól megvan (IBM, HP, Oracle, SAP) Fizetős disztribúciók: RedHat, SuSe Ingyenes: Debian, Fedora és sokan mások
Linux - Jellemzők POSIX kompatibilis felületek (felhasználói és programozói is) Felhasználói felületen új szabványt teremtett Moduláris felépítésű kernel Dynamic linking Stackable modules Virtuális fájlrendszer támogatás Valós idejű ütemezés
A Microsoft korai operációs rendszerei 1981: PC-DOS 1.0 (flat FS) 1983: DOS 2.0, XT, HDD támogatás 1984: DOS 3.0, IBM AT 1990: Microsoft Windows 3.0 386 alapú rendszerek támogatására IBM és MS közös fejlesztés (OS/2) Összeveszés, NT fejlesztés indul IBM viszi tovább az OS/2-t, ami soha nem lett átütő siker (okok )
Windows - roadmap A Microsoft nulláról fejleszti a saját rendszerét, amely csak felületeiben (GUI, API) hasonlít a Windows 3-ra (okok ) 1993: Első Windows NT, a 3.1 1996: NT 4.0 Win 95 felület (kernel GUI) 2000: Win 2000 (plug-n-play, pwr m., AD) 2001: Win XP (csak desktop) 2003: Win 2003 server, 64 bit (kezd. IA64) Kurrens rendszerek: Windows 2008, Win 7
Windows elvárások: 1989 32 bites, preemptive, VM támogatás Többplatformos működés Jó SMP skálázhatóság Kliens-szerver környezet támogatása MS-DOS és Win 3.x alkalmazások futtatása (de nem minden áron ) Kormányzati POSIX 1003.1 elvárás Kormányzati biztonsági elvárások Unicode támogatás
Windows célok és jellemzők Fejlesztési célok Bővíthetőség piaci elvárások Hordozhatóság Mezbízhatóság és robosztusság Kompatibilitás Teljesítmény Jellemzők Valós (preemptive) multitasking Kliens-szerver modell SMP és szálak támogatása Objektum alapú megközelítés Nagyrészt C nyelvű kód
Windows Kernel
Windows Kernel