1 Ami a katedrális és a bazár mögött van Porkoláb Zoltán
2 Bemutatkozás ELTE Számítóközpont ELTE TTK Általános Számítástudományi Tanszék ELTE IK Programozási Nyelvek és Fordítóprogramok Tanszék 2003 Ph.D: Szoftver bonyolultsági mértékek
3 Oktatás Programozási nyelvek –Programozási nyelvek alapjai –Objektum-orientált programozás –C++ Haladó C++ –Generatív programozás Dokumentumkezelés –Latex –Docbook (XML)
4 Könyvek Bjarne Stroustrup: A C++ programozási nyelv (Kiskapu 2001) Nyéky et al.: Java útikalauz sorozat (1996- ) J2EE Nyéky et al.: Programozási nyelvek (Kiskapu 2003)
5 Kutatás Szoftver bonyolultsági mértékek –Paradigma-független mértékek Generatív programozás –Generikus programozás, STL –C++ Template Metaprogramozás
6 OOPSLA 2004 Vancouver > 1500 résztvevő 54 tutorial 28 workshop 27 előadás (173-ból kiválasztva) Demók, bemutatók, panel-beszélgetések
7 Keynote #1 The Future of Programming Richard F. Rashid Microsoft Research alapítója és vezetője C.A.R (Tony) HoareLovász László
8 A piramis Épült: (Khufu) 20 – 30 év Hérodotosz: (inkább ) munkás kb 160 méter magas
9 A katedrális Épült: Méretei: 144x86x157 m
10 A felhőkarcoló Épült: év 42 nap 7 millió munkaóra 443 m magas
11 Cristopher Alexander (Bécs, 1936-) Cambridge: Matematikus-építész Építész Tervezési minták (Design Patterns) A Pattern Languages
12 Szoftveres Tervminták A „négyek bandája” Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides Jim Coplien Martin Fowler
13 ACM Alan Turing előadás Association for Computing Machinery 1947-ben alapították Turing díj 1966 óta Alan Key KiddiKomp Smalltalk Xerox PARC
14 Piramis? Alulfizetett munkások építették A piramisok a sivatag közepén álló pontszerű képződmények. Mint temetkezési helyek, az első példák az u.n. bloatware-re A használati utasítás hieroglifákkal lett megadva. (És fel kell tépni a borítékot, mielőtt elolvashatnánk). A nagyravágyás emlékművei A Fáraók, akik az építést vezényel- ték, Isten megtestesülésének képzelték magukat.
15 A bazár Önszerveződő rendszer Alapvető szabályok betartása Evolúciós mechanizmusok
16 A katedrális és a bazár Eric Steven Raymond 1996
17 Operációs rendszerek Operating system (OS) A hardver és az alaprendszer működésért felelős szoftver Futtatja és felügyeli az alkalmazói programokat Kommunikál a külvilággal (esetenként a felhasználóval)
18 Korai számítógépek Nincsen operációs rendszer Az operátor kézzel töltötte be és indította a programokat Innen a név: operációs rendszer Neumann-elv: tárolt programok, a program is egyfajta adat Ezt kezdték el támogatni apróbb alkalmazásokkal
19 Kezdeti könyvtárak Gyakori azonos feladatok: –Input/Output –Matematikai számítások –Szövegkezelés –Operációs feladatok (minden programban) Korai könyvtárak Ingyenesek, szabadon terjesztették a forráskóddal együtt
20 Kötegelt rendszerek Az operátor munkáját szimulálta Egy program elindítása és Kapcsolat input adatokkal pl. kártyaolvasó Output kijelölése pl. sornyomtató Számlázás
21 Több program futtatása Input/output berendezések „lassúak” Processzor teljesítmény kihasználatlan Hatékonyság növelése: a processzor-idő jobb kitöltése A futó programokat el kell választani
22 Mainframe Nagy diverzitás –Hardver-specifikus operációs rendszerek –Minden gépen más-más vezérlés 1960 IBM –System/360 gépsorozat –OS/360 operációs rendszer –Az operációs rendszer a hardverrel „jár”
23 Minicomputer Microcode –Hardver programozása 1968 MULTIX –General Electrics –AT&T Bell Laboratory 1969 UNIX –Ken Thompson, Dennis Ritchie –C nyelv
24 Unix Ken Thompson Space traveller DEC PDP-7 assembly UNICS Uniplex Information and Computing System Brian Kernighan
25 Portabilitás –Forrás szintű –Byte-kód szintű –Bináris szintű 1973: A UNIX átírása C nyelvre –13000 sor C kód –800 sor assembly kód
26 A UNIX szerkezete Kernel –Jogosultságok –Processzek –Ütemezés –Eszközök Shell –Felhasználói kommunikáció
27 Terjesztés/terjedés Kezdetben ingyen adják egyetemeknek/kutatóintézeteknek –SUN OS –ULTRIX –BSD –Xenix (Microsoft majd SCO) 1980! 1982: termék (portabilitás miatt) 1993: NovellUnixWare
28 Kernel struktúra Microkernel vs. Monolit Andy Tannenbaum –Vrije Universiteit, Amsterdam –Minix Microkernel Jelképes jogdíj –Operációs rendszerek –Számítógépes hálózatok
29 GNU Richard Stallman (RMS) GNU mozgalom –GNU is NOT UNIX –Kernel+GCC+Utilities Free Software Foundation GPL licenc Free software vs Open Source
30 GUI Grafikus felhasználói felület Ivan Sutherland –Sketchpad Doug Engelbart –NLS (oN Line System) –Egér –hipertext
31 Xerox PARC XEROX Palo Alto Research Center –GUIDouglas Engelbart –SmalltalkAlan Key –BravoCharles Simonyi –Lézernyomtató –Ethernet hálózat –Aspektus-Orientált Programozás Gregor Kitzales
32 Apple Steve Jobs, Steve Wozniak Apple II. TV output december: –Látogatás a Xerox-nál –1983: LISA 1984: Macintosh Superbowl hirdetés
33 Microsoft Bill Gates, Paul Allen, 1975 –BASIC interpreter Altair 8800 –Fortran, COBOL CP/M 1981 IBM PC –Operációs rendszer (CP/M) –Tim Paterson QDOS $ –Quick and Dirty OS
34 OS2 és Windows 1985: Windows : Windows 3.1
35 GNU Richard Stallman (RMS) GNU mozgalom –GNU is NOT UNIX –Kernel+GCC+Utilities Free Software Foundation GPL licenc Free software vs Open Source
36 LINUX Linus Thorvalds (1969-) 1991 augusztusa –Usenet levél 1995 Linux név levédése Linux kernel Monolitikus 2% kód
37 Linux disztribúciók Felhasználóbarát összeállítások Előre lefordított programok Installációs eljárások Csomagkezelés –RPM, deb, tgz Support
38 Köszönöm a figyelmet!