380 likes | 502 Views
Ami a katedrális és a bazár mögött van. Porkoláb Zoltán gsd@inf.elte.hu. Bemutatkozás. 1987-1994 ELTE Számítóközpont 1994-2003 ELTE TTK Általános Számítástudományi Tanszék 2003- ELTE IK Programozási Nyelvek és Fordítóprogramok Tanszék
E N D
Ami a katedrális és a bazár mögött van Porkoláb Zoltán gsd@inf.elte.hu
Bemutatkozás • 1987-1994 ELTE Számítóközpont • 1994-2003 ELTE TTK Általános Számítástudományi Tanszék • 2003- ELTE IK Programozási Nyelvek és Fordítóprogramok Tanszék • 2003 Ph.D: Szoftver bonyolultsági mértékek
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)
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)
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
OOPSLA 2004Vancouver • > 1500 résztvevő • 54 tutorial • 28 workshop • 27 előadás (173-ból kiválasztva) • Demók, bemutatók, panel-beszélgetések
Keynote #1 The Future of Programming Richard F. Rashid Microsoft Research alapítója és vezetője http://research.microsoft.com/ C.A.R (Tony) Hoare Lovász László
A piramis • Épült: -2476 (Khufu) • 20 – 30 év • Hérodotosz: 100.000 • (inkább 5-20.000) • munkás • kb 160 méter magas
A katedrális • Épült: 1248-1560-1880 • Méretei: 144x86x157 m
A felhőkarcoló • Épült: 1930-31 • 1 év 42 nap • 7 millió munkaóra • 443 m magas
Cristopher Alexander • (Bécs, 1936-) • Cambridge: Matematikus-építész • Építész • Tervezési minták (Design Patterns) • A Pattern Languages
Szoftveres Tervminták • A „négyek bandája” Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides • Jim Coplien • Martin Fowler
ACM Alan Turing előadás Association for Computing Machinery 1947-ben alapították Turing díj 1966 óta Alan Key KiddiKomp Smalltalk 1970-72--Xerox PARC
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.
A bazár • Önszerveződő rendszer • Alapvető szabályok betartása • Evolúciós mechanizmusok
A katedrális és a bazár Eric Steven Raymond 1996
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)
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
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
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
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
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”
Minicomputer • Microcode • Hardver programozása • 1968 MULTIX • General Electrics • AT&T Bell Laboratory • 1969 UNIX • Ken Thompson, Dennis Ritchie • C nyelv
Unix Ken Thompson Space traveller DEC PDP-7 assembly UNICS Uniplex Information and Computing System Brian Kernighan
Portabilitás • 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
A UNIX szerkezete • Kernel • Jogosultságok • Processzek • Ütemezés • Eszközök • Shell • Felhasználói kommunikáció
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: Novell UnixWare
Kernel struktúra • Microkernel vs. Monolit • Andy Tannenbaum • Vrije Universiteit, Amsterdam • Minix 1988-1991 • Microkernel • Jelképes jogdíj • Operációs rendszerek • Számítógépes hálózatok
GNU • Richard Stallman (RMS) • GNU mozgalom • GNU is NOT UNIX • Kernel+GCC+Utilities • Free Software Foundation • GPL licenc • Free software vs Open Source
GUI • Grafikus felhasználói felület • Ivan Sutherland • Sketchpad • Doug Engelbart • NLS (oN Line System) • Egér • hipertext
Xerox PARC • XEROX Palo Alto Research Center • GUI Douglas Engelbart • Smalltalk Alan Key • Bravo Charles Simonyi • Lézernyomtató • Ethernet hálózat • Aspektus-Orientált Programozás • Gregor Kitzales
Apple • Steve Jobs, Steve Wozniak • Apple II. TV output 1977 • 1979 december: • Látogatás a Xerox-nál • 1983: LISA • 1984: Macintosh • Superbowl hirdetés
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 $50.000 • Quick and Dirty OS
OS2 és Windows • 1985: Windows 1.0 • 1992: Windows 3.1
GNU • Richard Stallman (RMS) • GNU mozgalom • GNU is NOT UNIX • Kernel+GCC+Utilities • Free Software Foundation • GPL licenc • Free software vs Open Source
LINUX • Linus Thorvalds (1969-) • 1991 augusztusa • Usenet levél • 1995 Linux név levédése • Linux kernel • Monolitikus • 2% kód
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
Köszönöm a figyelmet! gsd@inf.elte.hu