Programován´I V Unixu

Programován´I V Unixu

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.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    208 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