
Programov´an´ıv UNIXu Jan Pechanec verze: 17. prosince 2007 (c) 1999 – 2004 Martin Beran (c) 2005 – 2007 Jan Pechanec SISAL MFF UK, Malostransk´en´am. 25, 118 00 Praha 1 [email protected] Organizaˇcn´ıvˇeci: • tento pˇredmˇet je 2/1, cviˇcen´ıbude jednou za dva t´ydny v laboratoˇri UNIX • vˇsechny informace kter´ebudete potˇrebovat a materi´aly k pˇredn´aˇsce jsou na http://www.devnull.cz/mff, vˇcetnˇeaktu´aln´ıverze tˇechto pozn´amkov´ych slajd˚u • je potˇreba se zapsat na cviˇcen´ına webu • z´apoˇcet je za z´apoˇctov´yprogram • zkouˇska m´ap´ısemnou a ´ustn´ıˇc´ast, je nutn´ez´ıskat z´apoˇcet pˇred zkouˇskou, vˇcetnˇepˇredterm´ın˚u • zkouˇset se bude to, co bude odpˇredneseno (kromˇet´emat na vyplnˇen´ıpˇr´ıpadnˇe zbyl´eho ˇcasu). Vˇetˇsina informac´ıje ve slajdech, ale ˇrada d˚uleˇzit´ych podrob- nost´ım˚uˇze chybˇet. • pˇredpoklady: – uˇzivatelsk´aznalost UNIXu, programov´an´ıv shellu na ´urovni pˇredn´aˇsky ,,Uvod´ do UNIXu a TCP/IP” – znalost jazyka C – znalost z´akladn´ıch pojm˚uteorie operaˇcn´ıch syst´em˚u • tento text je pr˚ubˇeˇznˇedoplˇnov´an, ChangeLog zaˇc´ın´ana stranˇe207. 1 Obsah • ´uvod, v´yvoj UNIXu a C, program´atorsk´en´astroje • z´akladn´ıpojmy a konvence UNIXu a jeho API • pˇr´ıstupov´apr´ava, perifern´ızaˇr´ızen´ı, syst´em soubor˚u • manipulace s procesy, spouˇstˇen´ıprogram˚u • sign´aly • synchronizace a komunikace proces˚u • s´ıt’ov´akomunikace • vl´akna, synchronizace vl´aken • ??? - bude definov´ano pozdˇeji, podle toho kolik zbyde ˇcasu • budeme se zab´yvat hlavnˇeprincipy UNIXu a programov´an´ım pro UNIX pouze v jazyce C. • pˇredn´aˇska je pˇrev´aˇznˇeo syst´emov´ych vol´an´ıch, tj. rozhran´ım mezi uˇzivatelsk´ym prostorem a j´adrem • pˇri popisu API se budeme drˇzet normy Single UNIX Specification, version 3. Syst´emy podporuj´ıc´ıtuto specifikaci mohou pouˇz´ıvat oznaˇcen´ıUNIX 03. V souˇcasn´edobˇe(09/2007) jsou to posledn´ıverze syst´em˚uSolaris, AIX, HP-UX a Mac OS X. • pro konkr´ern´ıpˇr´ıklady budu pouˇz´ıvat vˇetˇsinou syst´emy FreeBSD a Solaris. 2 Obsah • ´uvod, v´yvoj UNIXu a C, program´atorsk´en´astroje • z´akladn´ıpojmy a konvence UNIXu a jeho API • pˇr´ıstupov´apr´ava, perifern´ızaˇr´ızen´ı, syst´em soubor˚u • manipulace s procesy, spouˇstˇen´ıprogram˚u • sign´aly • synchronizace a komunikace proces˚u • s´ıt’ov´akomunikace • vl´akna, synchronizace vl´aken • ??? - bude definov´ano pozdˇeji, podle toho kolik zbyde ˇcasu Literatura v ˇceˇstinˇe 1. Skoˇcovsk´y, L.: Principy a probl´emy operaˇcn´ıho syst´emu UNIX. Science, 1993 2. Skoˇcovsk´y, Ludˇek: UNIX, POSIX, Plan9. L. Skoˇcovsk´y, Brno, 1998 3. Jelen, Milan: UNIX V - programov´an´ıv syst´emu. Grada, Praha 1993 4. Linux - Dokumentaˇcn´ıprojekt. Computer Press, 1998; http://www.cpress.cz/knihy/linux 5. Herout, Pavel: Uˇcebnice jazyka C. 2 d´ıly. Kopp, Cesk´eˇ Budˇejovice, 2004 (4., respektive 2. pˇrepracovan´evyd´an´ı) 3 OhlednˇeUnixu doporuˇcuji sp´ıˇse literaturu v anglick´em jazyce. 1. vˇsestrann´y´uvod do UNIXu, ale dost struˇcn´a; Skoˇcovsk´yje autorem v´ıce ˇcesk´ych knih o Unixu, ale dnes jsou jiˇzv´ıce nebo m´enˇezastaral´e 2. pokroˇcilejˇs´ıpohled, ale pˇredpokl´ad´apˇredbˇeˇzn´eznalosti, m´ısty tˇeˇzko stravi- teln´a 3. programov´an´ıv C pro UNIX System V, pr´ace se soubory a s procesy, System V IPC, nepopisuje napˇr. vl´akna a s´ıtˇe 4. o Linuxu bylo samozˇrejmˇev ˇceˇstinˇevyd´ano mnoho dalˇs´ıch knih 5. vynikaj´ıc´ıknihy o jazyce C Literatura - design a principy syst´emu 1. Uresh Vahalia: UNIX Internals: The New Frontiers. Prentice Hall; 1st edition, 1995 2. Bach, Maurice J.: The Design of the UNIX Operating System. Prentice Hall, 1986 3. McKusick, M. K., Neville-Neil, G. V.: The Design and Implementation of the FreeBSD Operating System. Addison-Wesley, 2004 4. McDougall, R.; Mauro, J.: Solaris Internals. Prentice Hall; 2nd edition, 2006. 5. Linux Documentation Project. http://tldp.org/ Tyto knihy se zab´yvaj´ıstavbou Unixu, pouˇzit´ymi algoritmy, strukturami apod., nejsou to kniho o programov´an´ıpod t´ımto syst´emem. 1. skvˇel´akniha, zab´yv´ase obecn´ymi myˇslenkami UNIXu a porovn´av´asyst´emy SVR4.2, 4.4BSD, Solarix 2.x a Mach. 12/2005 mˇelo vyj´ıt druh´e, doplnˇen´e vyd´an´ı. Term´ın se vˇsak nˇekolikr´at posunul, a nyn´ı(stav k 12/2007) toto druh´e vyd´an´ıst´ale jeˇstˇenen´ık dispozici a aktu´aln´ıpl´anovan´yterm´ın je 03/2008. Tˇeˇzko ale ˇr´ıci, jestli k tomu jeˇstˇenˇekdy v˚ubec dojde. 2. klasick´akniha o UNIXu, popis struktury a funkc´ıj´adra UNIX System V Rel. 2, ˇc´asteˇcnˇei 3; pˇrestoˇze je to kniha z dneˇsn´ıho pohledu jiˇzzastaral´a, lze ji poˇr´ad jednoznaˇcnˇedoporuˇcit protoˇze to je jedna z nejlepˇs´ıch knih, co byla kdy o UNIXu naps´ana. V roce 1993 vyˇsel ˇcesk´ypˇreklad, Principy operaˇcn´ıho syst´emu UNIX, SAS. 4 3. popis struktury a funkc´ıj´adra FreeBSD 5.2; tato kniha navazuje na klasickou knihu The Design and Implementation of the 4.4 BSD Operating System od stejn´eho autora (resp. jeden ze ˇctyˇr, uveden´yjako prvn´ı) 4. nejlepˇs´ıkniha o operaˇcn´ım syst´emu Solaris. Obsahuje podrobn´einformace o tom, jak tento syst´em funguje vˇcetnˇenejnovˇejˇs´ıch vˇec´ız verze 10 jako jsou z´ony, Crypto Framework, DTrace, Least Privilege model a dalˇs´ı. 5. domovsk´astrana Linux dokumentaˇcn´ıho projektu Literatura - programov´an´ı 1. Stevens, W. R., Rago, S. A.: Advanced Programming in UNIX(r) Environment. Addison-Wesley, 2nd edition, 2005. 2. Rochkind, M. J.: Advanced UNIX Programming, Addison-Wesley; 2nd edition, 2004 3. Stevens, W. R., Fenner B., Rudoff, A. M.: UNIX Network Programming, Vol. 1 – The Sockets Networking API. Prentice Hall, 3rd edition, 2004 4. Butenhof, D. R.: Programming with POSIX Threads, Addison-Wesley; 1st edition, 1997 5. Unixov´especifikace, viz http://www.unix.org 6. manu´alov´estr´anky (zejm. sekce 2, 3) 1. pravdˇepodobnˇenen´ı lepˇs´ıknihy o programov´an´ıpod Unixem (neobsahuje s´ıt’ov´eprogramov´an´ı, to je v knize 3) 2. aktualizovan´evyd´an´ıdalˇs´ız klasick´ych knih o programov´an´ıpod Unixem. Obsahuje i s´ıt’ov´eprogramov´an´ıa aˇcsamozˇrejmˇenen´ı tak podrobn´a jako spojen´ıknih 1 a 3, m˚uˇze to b´yt nˇekdy naopak v´yhodou. Tuto knihu jedno- znaˇcnˇedoporuˇcuji, pokud chcete nˇeco kupovat. 3. klasick´akniha o s´ıt’ov´em programov´an´ı, jedna z nejlepˇs´ıch k tomuto t´ematu; existuje i druh´yd´ıl UNIX Network Programming, Volume 2: In- terprocess Communications, kter´ase zab´yv´akomunikac´ımezi procesy (roury, POSIX IPC, System V IPC, synchronizace vl´aken, RPC). 4. velmi dobr´aa podrobn´akniha o programov´an´ıs vl´akny 5. domovsk´astr´anka posledn´ıch specifikac´ırozhran´ıUNIXu 6. podrobn´ypopis jednotliv´ych funkc´ı (v Linuxu bˇeˇznˇe ne zcela dostaˇcuj´ıc´ı; manu´alov´estr´anky v tomto syst´emu jsou ˇcasto horˇs´ıkvality neˇzu syst´em˚u ostatn´ıch) 5 . a spousta dalˇs´ıch knih, online dokumentac´ıa internetov´ych zdroj˚u, posledn´ı dobou vych´az´ıpomˇernˇehodnˇeknih o Linuxu, zamˇeˇren´ych na pouˇz´ıv´an´ıi programov´an´ı . jdˇete na http://www.amazon.com/ a zadejte kl´ıˇcov´eslovo “unix”. Pokud byste z Amazonu nˇeco kupovali, dejte pozor na to, ˇze mnoho knih m´aaktu- alizovan´avyd´an´ıi po nˇekolika m´alo letech, nˇekdy i levnˇejˇs´ıneˇzta p˚uvodn´ı, kter´ajsou vˇsak st´ale na skladu a v on-line nab´ıdce; tak at’ zbyteˇcnˇenekoup´ıte starˇs´ıvyd´an´ıneˇzto aktu´aln´ı. Nav´ıc se vyplat´ızkontrolovat i u pˇr´ısluˇsn´eho vydavatelstv´ı, ˇze nen´ıv brzk´edobˇenapl´anov´ano vyd´an´ınov´e– tato informace nˇekdy na Amazonu je, nˇekdy ne. na Amazonu se m˚uˇze vyplatit nakoupit knihy z druh´eruky, protoˇze jsou ˇcasto v´yraznˇelevnˇejˇs´ıneˇzknihy nov´e. Probl´em je, ˇze vˇetˇsinou nen´ımoˇzn´eje poslat pˇr´ımo do CR,ˇ ale mus´ıv´am je nˇekdo pˇriv´ezt. Literatura - historie UNIXu • Peter Salus: A Quarter Century of UNIX, Addison-Wesley; 1st edition (1994) • Libes D., Ressler, S.: Life With Unix: A Guide for Everyone, Prentice Hall (1989) • Open Sources: Voices from the Open Source Revolution, kapitola Twenty Years of Berkeley Unix From AT&T-Owned to Freely Redistributable; O’Reilly (1999); on-line na webu . mnoho materi´al˚una webu; ˇcasto vˇsak obsahuj´ıc´ıne zcela pˇresn´e informace • kapitola o BSD Unixu napsan´aMarshallem Kirk McKusickem je opravdu v´yborn´a 6 (Pre)historie UNIXu • 1925 – Bell Telephone Laboratories – v´yzkum v komunikac´ıch (napˇr. 1947: transistor) v r´amci AT&T • 1965 – BTL s General Electric a MIT v´yvoj OS Multics (MULTIplexed Information and Computing System) • 1969 – Bell Labs opouˇst´ıprojekt, Ken Thompson p´ıˇse assembler, z´akladn´ıOS a syst´em soubor˚upro PDP-7 • 1970 – Multi-cs ⇒ Uni-cs ⇒ Uni-x • 1971 – UNIX V1, a portov´an na PDP-11 • prosinec 1971 – prvn´ıedice UNIX Programmer’s Manual • AT&T = American Telephone and Telegraph Company • po odchodu BTL z projektu Multics prodala GE svoji poˇc´ıtaˇcovou divizi firmˇeHoneywell vˇcetnˇeprojektu Multics, kter´yse pak pod jej´ıpatronac´ıd´ale vyv´ıjel (virtu´aln´ı pamˇet’, multiprocesory, . ). Posledn´ı instalace Multics- u fungovala na kanadsk´em Ministerstvu obrany (Canadian Department of National Defence) a syst´em byl napˇr´ıklad jeˇstˇeaktivnˇepouˇz´ıv´an pro vojensk´e operace bˇehem v´alky v Persk´em z´alivu. Definitivn´ı shutdown byl proveden 31. ˇr´ıjna 2000. V´ıce informac´ına http://www.multicians.org. • pˇred poˇc´atkem pr´ace na v´yvojov´em prostˇred´ıpro PDP-7 napsal Thompson program Space Travel, kter´ybyl vyvinut na jin´em prostˇred´ı(Honeywell 635) a na p´asce pˇrenesen na PDP-7.
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages208 Page
-
File Size-