PV065 UNIX -- programování a správa systému I

Fakulta informatiky
podzim 2020
Rozsah
2/0. 2 kr. (plus ukončení). Doporučované ukončení: zk. Jiná možná ukončení: k, z.
Vyučující
RNDr. Jan Kasprzak, Ph.D. (přednášející)
Garance
RNDr. Jan Kasprzak, Ph.D.
Katedra počítačových systémů a komunikací – Fakulta informatiky
Dodavatelské pracoviště: Katedra počítačových systémů a komunikací – Fakulta informatiky
Rozvrh
Po 10:00–11:50 D3
Předpoklady
Vstupní předpoklady: znalost programovacího jazyka C, znalost UNIXu na uživatelské úrovni (nedoporučuje se zapisovat tento předmět studentům, kteří absolvovali předmět PV004 UNIX teprve v minulém semestru).
Omezení zápisu do předmětu
Předmět je nabízen i studentům mimo mateřské obory.
Mateřské obory/plány
předmět má 86 mateřských oborů, zobrazit
Cíle předmětu
Náplní předmětu je seznámení se s principy fungování UNIXového operačního systému a s jeho aplikačním rozhraním (služby jádra, některé knihovní funkce). Studenti se seznámí s architekturou jádra systému, systému souborů, procesy atd., a to jak ze strany implementace uvnitř jádra, tak ze strany aplikačního rozhraní UNIXu.
Výstupy z učení
Student bude po absolvování předmětu schopen:
Rozumět interakci uživatelského programu v C s jádrem systému.
Použít aplikační rozhraní normy POSIX.1 k tvorbě programů v C.
Umět pracovat se soubory, procesy a dalšími nástroji, poskytovanými jádrem UNIXu aplikacím.
Mít základní představu o vnitřním fungování jádra UNIXu, správě paměti a zařízení jádrem, a fungování procesů uvnitř jádra.
Osnova
  • Vývojové prostředí v UNIXu: kompilátory, debuggery, profilery a další nástroje. Druhy knihoven a jejich funkce.
  • Normy API pro jazyk C.
  • Program podle ANSI C: limity, start a ukončení programu, argumenty, proměnné prostředí, práce s pamětí, vzdálené skoky. Dynamické linkování.
  • Jádro: Start jádra, architektura jádra, paměťový model jádra.
  • Proces: atributy procesu, stavy procesu, paměť z hlediska procesu, přístupová práva procesu. Program na disku.
  • Vstupní/výstupní operace: deskriptor, operace nad deskriptory.
  • Organizace souborových systémů: i-uzel a jeho atributy, adresář a práce s adresáři, speciální soubory. Implementace souborových systémů: FAT, S5FS, FFS/UFS, Ext2FS. Moderní souborové systémy.
  • Komunikace mezi procesy: roura, signály, spolehlivé signály.
  • Pokročilé I/O operace: multiplexing pomocí select() a poll(), zamykání souborů, scatter-gather I/O, paměťově mapované I/O operace.
Literatura
  • Information technology :portable operating system interface. New York: Institute of Electrical and Electronics Engineers, 1996, xxxi, 743. ISBN 1-55937-573-6. info
  • STEVENS, W. Richard. Advanced programming in the UNIX environment. Reading, Mass.: Addison-Wesley, 1993, xviii, 744. ISBN 0-201-56317-7. info
  • BACH, Maurice J. Principy operačního systému UNIX. 1. vyd. Praha: Softwarové Aplikace a Systémy, 1993, 514 s. ISBN 80-901507-0-5. info
Výukové metody
přednáška, nepovinné domácí úkoly
Metody hodnocení
Předmět je zakončen písemnou zkouškou/kolokviem. Sestává se z 20 otázek typu výběr z možností, přičemž právě jedna odpověď je správná. Za chybné odpovědi se přidělují záporné body.
Informace učitele
http://www.fi.muni.cz/~kas/p065/
Přednáška předpokládá základní znalosti UNIXu z uživatelského hlediska - spouštění příkazů z příkazové řádky, práce se shellem. Je dobré, aby student měl i praktické zkušenosti s výše uvedeným. Proto nedoporučuji zapisovat tento předmět těm, kteří teprve v minulém semestru absolvovali základní kurz UNIXu P004.
První semestr je zaměřen více na programování a méně na správu systému, druhý semestr (PV077) je zaměřen více na správu systému a zejména sítě.
Položky uvedené v sylabu považujte za maximální možnou náplň přednášky. Ne vše, co je zde uvedeno, bude na přednášce řečeno.
Přednáška je zaměřena na UNIXové systémy obecně, nicméně některé konkrétní části budou demonstrovány na systému Linux.
Další komentáře
Studijní materiály
Předmět je vyučován každoročně.
Předmět je zařazen také v obdobích podzim 2002, podzim 2003, podzim 2004, podzim 2005, podzim 2006, podzim 2007, podzim 2008, podzim 2009, podzim 2010, podzim 2011, podzim 2012, podzim 2013, podzim 2014, podzim 2015, podzim 2016, podzim 2017, podzim 2018, podzim 2019, podzim 2021, podzim 2022, podzim 2023, podzim 2024.