Programování V Unixu

Programování V Unixu

Programov´an´ıv UNIXu (NSWI015) verze: 24. ˇr´ıjna2017 (c) 2011 { 2017 Vladim´ırKotal (c) 2005 { 2011, 2016 { 2017 Jan Pechanec (c) 1999 { 2004 Martin Beran SISAL MFF UK, Malostransk´en´am.25, 118 00 Praha 1 • Toto jsou ofici´aln´ımateri´alypro v´yuku pˇredmˇetu Programov´an´ıv UNIXu (k´odpˇredmˇetuNSWI015) na Matematicko-fyzik´aln´ıfakultˇeUniverzity Kar- lovy. • Tyto materi´alyjsou uveˇrejnˇeny pod licenc´ı Creative Commons BY-NC-SA 3.0. Soubory k uk´azkov´ympˇr´ıklad˚umuveden´ev´yˇsejsou Public Domain, po- kud v nich nen´ıuvedeno jinak. • Tento pˇredmˇetje 2/1, cviˇcen´ıbude jednou za dva t´ydny. • Vˇsechny informace, kter´ebudete potˇrebovat, a materi´alyk pˇredn´aˇscejsou na http://mff.devnull.cz/, vˇcetnˇeaktu´aln´ıverze tˇechto pozn´amkov´ych slajd˚u (http://mff.devnull.cz/pvu/slides/). Dˇr´ıve, neˇzzaˇcnetemateri´alypou- ˇz´ıvat, pˇresvˇedˇctese, ˇzenen´ınovˇejˇs´ıverze! • Uk´azkov´epˇr´ıkladyjsou na http://mff.devnull.cz/pvu/src/, pokud se budu v pozn´amk´ach odkazovat na konkr´etn´ıpˇr´ıklad,link zde uveden´yslouˇz´ıjako koˇrenov´yadres´aˇr. • Je potˇrebase zapsat na cviˇcen´ıv SISu. • Z´apoˇcetje za z´apoˇctov´yprogram. • Zkouˇska m´ap´ısemnoua ´ustn´ıˇc´ast. • Zkouˇsetse bude to, co bude odpˇredneseno(kromˇet´ematna vyplnˇen´ıpˇr´ıpadnˇe zbyl´ehoˇcasu).Vˇetˇsinainformac´ıje ve slajdech, ale ˇradad˚uleˇzit´ych podrob- nost´ım˚uˇzechybˇet. 1 • Pˇredpoklady: { Uˇzivatelsk´aznalost UNIXu, programov´an´ıv shellu na ´urovni pˇredn´aˇsky ,,Uvod´ do UNIXu" (NSWI095) { 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ˇe 242. Upo- zornˇen´ına chyby pros´ımpos´ılejtena kontakty, kter´enajdete na v´yˇseuveden´e str´ance. 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´emsoubor˚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´anopozdˇ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´ımmezi uˇzivatelsk´ymprostorem a j´adrem. • Pˇripopisu API se budeme drˇzetnormy Single UNIX Specification, version 4 (SUSv4). Syst´emy, kter´etuto specifikaci podporuj´ı,mohou pouˇz´ıvat oznaˇcen´ı UNIX V7. Pˇredchoz´ıverzi SUSv3 splˇnuj´ıposledn´ıverze syst´em˚uSolaris, AIX, HP-UX a Mac OS X na r˚uzn´ych architektur´ach (http://www.opengroup.org/ openbrand/register/xy.htm). • Pro konkr´etn´ıpˇr´ıklady budu pouˇz´ıvat vˇetˇsinou syst´emy FreeBSD a Linux. 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´emsoubor˚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´anopozdˇeji,podle toho kolik zbyde ˇcasu Literatura v ˇceˇstinˇe 1. Skoˇcovsk´y,L.: Principy a probl´emy operaˇcn´ıhosyst´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ˇcebnicejazyka C. 2 d´ıly. Kopp, Cesk´eˇ Budˇejovice, 2004 (4., respektive 2. pˇrepracovan´evyd´an´ı) 3 Ohlednˇeunixu doporuˇcujisp´ıˇseliteraturu v anglick´emjazyce. 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´ıcenebo 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´acese soubory a s procesy, Sys- tem V IPC, nepopisuje napˇr.vl´aknaa s´ıtˇe. 4. O Linuxu bylo samozˇrejmˇev ˇceˇstinˇevyd´anomnoho 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´ymialgoritmy, strukturami apod., nejsou to kniho o programov´an´ıpod t´ımto syst´emem. 1. Skvˇel´akniha, zab´yv´ase obecn´ymimyˇslenkami UNIXu a porovn´av´asyst´emy SVR4.2, 4.4BSD, Solarix 2.x a Mach. 12/2005 mˇelovyj´ıtdruh´e,doplnˇen´e vyd´an´ı.Po nˇekolika letech ˇcek´an´ıpˇrestalodruh´evyd´an´ıfigurovat v listingu na amazon.com, a tedy se budeme muset zˇrejmˇesm´ıˇrits t´ım,ˇzenevyjde. 2. Klasick´akniha o UNIXu, popis struktury a funkc´ıj´adraUNIX System V Rel. 2, ˇc´asteˇcnˇei 3; pˇrestoˇzeje to kniha z dneˇsn´ıhopohledu jiˇzzastaral´a, lze ji poˇr´adjednoznaˇcnˇedoporuˇcit,protoˇzeto 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´ıhosyst´emu UNIX, SAS. 4 3. Popis struktury a funkc´ıj´adraFreeBSD 5.2; tato kniha navazuje na klasickou knihu The Design and Implementation of the 4.4 BSD Operating System od stejn´ehoautora (resp. jeden ze ˇctyˇr,uveden´yjako prvn´ı). 4. Nejlepˇs´ıkniha o operaˇcn´ımsyst´emu Solaris. Obsahuje podrobn´einformace o tom, jak tento syst´emfunguje 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´ıhoprojektu. 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´ajako spo- jen´ıknih 1 a 3, m˚uˇzeto b´ytnˇekdynaopak v´yhodou. Tuto knihu jednoznaˇcnˇe doporuˇcuji,pokud chcete nˇecokupovat a chcete m´ıtpro zaˇc´atekjen jednu knihu. Pokud bych ji mˇelcharakterizovat jednou vˇetou,bylo by to, ˇzeautor vid´ıa dok´aˇze uk´azatsouvislosti, coˇzje velmi vz´acn´avlastnost. 3. Klasick´akniha o s´ıt'ov´emprogramov´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. 5 6. Podrobn´ypopis jednotliv´ych funkc´ı (v Linuxu bˇeˇznˇene zcela dostaˇcuj´ıc´ı; manu´alov´estr´ankyv tomto syst´emu jsou ˇcastohorˇs´ıkvality neˇzu syst´em˚u ostatn´ıch). 7. Kniha, kter´ase neveˇslana slajd a kter´apˇrekraˇcujeobsah t´etopˇredn´aˇsky: Gallmeister, B. R.: POSIX.4 Programmers Guide: Programming for the Real World, O'Reilly; 1st edition, 1995. V´yborn´akniha s kr´asnou ob´alkou o real-time rozˇs´ıˇren´ıch POSIXu. Viz tak´estrany 155a 159. ... 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ˇetena http://www.amazon.com/ a zadejte kl´ıˇcov´eslovo \unix". Pokud byste z Amazonu nˇecokupovali, dejte pozor na to, ˇzemnoho knih m´aaktu- alizovan´avyd´an´ıi po nˇekolika m´aloletech, nˇekdyi levnˇejˇs´ıneˇzta p˚uvodn´ı, kter´ajsou vˇsakst´alena skladu a v on-line nab´ıdce;tak at' zbyteˇcnˇenekoup´ıte starˇs´ıvyd´an´ıneˇzto aktu´aln´ı.Nav´ıcse vyplat´ızkontrolovat i u pˇr´ısluˇsn´eho vydavatelstv´ı,ˇzenen´ıv brzk´edobˇenapl´anov´anovyd´an´ınov´e{ tato informace nˇekdyna Amazonu je, nˇekdyne. ... na Amazonu se m˚uˇzevyplatit nakoupit knihy z druh´eruky, protoˇzejsou ˇcasto v´yraznˇelevnˇejˇs´ıneˇzknihy nov´e.Probl´emje, ˇzevˇetˇsinounen´ımoˇzn´eje poslat pˇr´ımodo CR,ˇ ale mus´ıv´amje nˇekdopˇ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: http://oreilly.com/openbook/opensources/book/index.html ... mnoho materi´al˚una webu; ˇcastovˇsakobsahuj´ıc´ıne zcela pˇresn´einformace • Kapitola o BSD Unixu z Open Sources napsan´aMarshallem Kirk McKusic- kem je opravdu v´yborn´a. 6 (Pre)historie UNIXu • 1925 { Bell Telephone Laboratories { v´yzkumv 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´emsoubor˚upro PDP-7 • 1970 { Multi-cs ) Uni-cs ) Uni-x • 1971 { UNIX V1, a portov´anna PDP-11 • prosinec 1971 { prvn´ıedice UNIX Programmer's Manual • AT&T = American Telephone and Telegraph Company • Multics byl syst´em,kter´yv´yznamnˇeovlivnil dalˇs´ıv´yvoj operaˇcn´ıch syst´em˚u.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    246 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us