PředmětyPředměty(verze: 837)
Předmět, akademický rok 2018/2019
   Přihlásit přes CAS
Unix/Linux Programming in C - NSWI015
Anglický název: Unix/Linux Programming in C
Zajišťuje: Středisko informatické sítě a laboratoří (32-SISAL)
Fakulta: Matematicko-fyzikální fakulta
Platnost: od 2018
Semestr: zimní
E-Kredity: 5
Rozsah, examinace: zimní s.:2/1 Z+Zk [hodiny/týden]
Počet míst: neomezen
Minimální obsazenost: neomezen
Stav předmětu: vyučován
Jazyk výuky: angličtina
Způsob výuky: prezenční
Garant: Mgr. Vladimír Kotal
Třída: Informatika Bc.
Kategorizace předmětu: Informatika > Softwarové inženýrství
Prerekvizity : NSWI095
Anotace -
Poslední úprava: Mgr. Lenka Forstová (19.04.2018)
Předmět má za úkol připravit studenty pro vývoj softwaru v prostředí Unixu a Linuxu v programovacím jazyce C. Hlavními cíly je vysvětlit, jak pracuje rozhraní mezi uživatelskými programy a jádrem operačního systému a jaké jsou jeho kontrétní API, jak v těchto API psát složité programy, a také poskytnout znalosti k pochopení toho, jak vnitřně fungují různé projekty ze světa svobodného software napsané v jazyce C, se kterými se studenti mohou setkat. Součástí předmětu je cvičení, které se do hloubky věnuje psaní kódu za pomoci odpřednášených API.
Podmínky zakončení předmětu -
Poslední úprava: Mgr. Vladimír Kotal (07.06.2018)

Předmět je zakončen zápočtem a zkouškou.

Zápočet se uděluje za aktivní účast na cvičení. Tím se myslí vypracování úkolů během cvičení i domácích úkolů. Nebude zápočtový program na závěr.

Zkouška se skládá z vypracování programu a ústní části, ve které se bude zkoušející dotazovat na klíčové principy. Na složení zkoušky má student tři pokusy (jeden řádný a dva opravné termíny).

Literatura -
Poslední úprava: Mgr. Vladimír Kotal (17.10.2011)

Stevens R.: Advanced Programming in the UNIX Environment, Second Edition, Addison Wesley, 2005

Stevens R.: UNIX Network Programming, Volume 1, Third Edition: Networking APIs: Sockets and XTI, Prentice Hall, 2003

Stevens R.: UNIX Network Programming, Volume 2, Second Edition: Interprocess Communications, Prentice Hall, 1999

The Single UNIX Specification, Version 3. The Open Group, 2003

Sylabus -
Poslední úprava: Mgr. Vladimír Kotal (26.03.2015)
  • vývoj a současnost UNIXu, standardy (The Single UNIX Specification), základní nástroje pro jazyk C, API/ABI
  • popis funkce jádra OS z pohledu programátora v jazyce C
  • evidence a kategorizace uživatelů/skupin, přístupová práva
  • základy principů filesystémů, VFS, programování vstupů a výstupů, práce s file deskriptory
  • manipulace s procesy, stavy procesů, spouštění programu, rozvržení virtuální paměti, formát ELF
  • práce s rourami, sdílená paměť, rozhraní dynamického linkeru
  • signály a jejich zpracování
  • komunikace a synchronizace procesů, System V IPC
  • síťová komunikace, rozhraní BSD sockets, převod jmen a IP adres
  • vlákna a jejich vztah k procesům, synchronizace vláken (mutexy, rwlocks, podmínkové proměnné, semafory, bariéry)
 
Univerzita Karlova | Informační systém UK